Help

Re: Mapping to Multi-Select Fields with Integromat

Solved
Jump to Solution
4159 0
cancel
Showing results for 
Search instead for 
Did you mean: 
Alexander_Stump
5 - Automation Enthusiast
5 - Automation Enthusiast

I have a scenario where i lookup a list of values for an item in a google sheet and want to add them as complementary values in one multiselect field for the item in airtable. in the shown example these are 12 category values coming from gsheet, which should all be added in a multiselect field for the user in airtable.

2021-04-19 08_54_13-Window

The lookup in google sheets and the JSON creation and parsing work as expected - I get a JSON with the categories like the one in the screenshot below:

2021-04-19 09_00_42-Window

The update in airtable works as well - as long as I have the JSON list elements mapped individually as single entries for the multiselect field, like indicated here:

2021-04-19 09_07_44-Window

The problem with this approach is, that if my Gsheet Lookup and resulting JSON send less list elements to airtable than I have specified in the integromat flow, the extra fields will be sent as “null” and this causes an error in the Scenario.

This is exactly the same problem as described in this post 10 months ago: Mapping Multi-Select Fields with Integromat

Within that post @cor proposed the solution to make sure that “Smart Links” is checked on the “Create a record” Module and to map the array (ex: Channel: ) rather than mapping the individual array elements. This would be a great solution for me as well:)

If i now map the array instead of the individual elements -
2021-04-19 09_15_37-Window

then the integromat flow works well and iterates in the flow thru all 12 elements from the JSON -

2021-04-19 09_19_11-Window

but the 12 elements are not added as complementary multiselect values in the airtable, but each of the 12 flow iterations overwrites the value in the multiselect field - so that at the end only one value (instead of the intended 12 in the example) is stored in airtable:

2021-04-19 09_20_46-Window

I tested this extensively, but am stuck now - any ideas what I am missing here?

THX FOR YOUR HELP!

1 Solution

Accepted Solutions
Alexander_Stump
5 - Automation Enthusiast
5 - Automation Enthusiast

solution after checkin w integromat support: use the map() function in integromat to write back to airtable

2021-04-23 16_39_58-Window

The map function contains the array, plus the raw id of the array element that I want to map

2021-04-23 16_41_52-Window

in my case this is “4”.

Now the multiselect field gets updated with the dynamic results from sheet as intended, really glad now;)

thx again for your support!

See Solution in Thread

12 Replies 12

You don’t need any of those JSON modules. But regardless of whether you delete them or not, you’ll need to use the Text Aggregator tool before sending your data to Airtable, in order to aggregate the multiple bundles into a single array.

Here are some articles on the many different types of aggregator tools in Integromat, but you will want to use the Text Aggregstor:

Alexander_Stump
5 - Automation Enthusiast
5 - Automation Enthusiast

Thx for your answer Scott, appreciated.

If i use the text aggregator, then I get a string as input into the multiselect field - makes sense, similar to a csv. But how should that string look like, to update the multiselect field with an integromat formula properly? I have researched and tested a myriad of different delimiter combinations, but struggle to find a solution here. Airtable doesn´t split the string coming from integromat properly into separate multiselect options as i want it.

To make it more concrete and avoid misunderstanding - GSheets contains 3 categories:

crm
hr
logistics

i want to update those 3 in a multiselect field in airtable which already has exactly these categories predefined as options.

How should the final integromat formula look like to update the airtable field properly with 3 separate multiselect entries?

THX!!

You will put a comma between the values.

Thx Scott, i already had this idea as well;)

Pasting a comma separated string manually within airtable works, but input from integromat unfortunately doesn´t work that simple (at least not for me) - airtable does always only recognize one string and doesn´t split it into multiple values as intended. Result is then one value like e.g. “crm,hr,logistics”.

I have tried all combinations of Pre- and Suffixes (–> ["…","…"]) but the comma separated string gets never split into multiple values if I input it from integromat.

It works for me. Do you have “Smart Links” enabled in Integromat?

strange, yes, thats enabled.

output of the text aggregator looks like this:
2021-04-21 18_23_09-95 Talent  Company Settings Update _ Integromat

config of update for airtable looks like this:
2021-04-21 18_24_30-95 Talent  Company Settings Update _ Integromat 2021-04-21 18_24_20-95 Talent  Company Settings Update _ Integromat

If I deselect “mapping” function for the categories filed, then this doesn´t change anything - result in airtable looks like this

2021-04-21 18_27_34-Talents_ Talent_ Company Settings - Airtable

A simple test of a one-step “update record in airtable” or “create record in airtable” module in integromat reveals the same problem:

if I enter comma separated values in the integromat function, then is is not converted into multiple values in the multiselect field in airtable. If I paste the same text string manually in airtable then it works as intended.

The only way to write successfully into a multiselect field in airtable that works for me is to define the values individually in integromat…:
2021-04-19 09_07_44-Window

and this leads to the problem, that in our use case the dynamic search result of a heterogeneous number of entries from Google sheets (step 1) runs in an error if we predefine such a fix number of values for the multiselect field within the airtable update module in integromat

Very weird… let me look into this. I will ask Integromat Support. I think they’re sending the data to Airtable’s API incorrectly.

@Alexander_Stump Oh okay, my bad! :stuck_out_tongue_closed_eyes:

All that time above when I was talking about using the “Text Aggregator” tool, I actually meant that you should be using the “Array Aggregator” tool! :crazy_face:

Multi-Select fields (and linked record fields and attachment fields) are expecting an array (not text) and only the array aggregator will turn your values into an actual array.

Sorry about that! This is why I shouldn’t be responding to posts first thing in the morning when I wake up! :sleeping:

No worries, thx for your help Scott!

I did initially start with the array aggregator before writing this post. The Array was build correctly, smart Links was enabled, and the array is added via mapping to the multiselect field in airtable:

2021-04-22 09_40_48-Window

…but this runs into an error within the airtable update step:

2021-04-22 09_33_42-Window

→ Error Message: “Collection can’t be converted to text for parameter ‘Value’.”

→ After this I initially switched to test the JSON modules instead of the array aggregator, yet this resulted in the “overwrite” problem that I have started this post with… :grimacing:

I’m sure it’s something very easy that you’re missing. Just write Integromat support, and post back here with their answer!

Alexander_Stump
5 - Automation Enthusiast
5 - Automation Enthusiast

solution after checkin w integromat support: use the map() function in integromat to write back to airtable

2021-04-23 16_39_58-Window

The map function contains the array, plus the raw id of the array element that I want to map

2021-04-23 16_41_52-Window

in my case this is “4”.

Now the multiselect field gets updated with the dynamic results from sheet as intended, really glad now;)

thx again for your support!