Oct 30, 2021 09:39 AM
Hi,
I’ve been stuck with this for almost 2 days now and have exhausted all experimentation and research. Looking for any help I can get.
I have a field in Airtable called @EventRegistration, which is a linked reference field but allows linking to multiple records from another table.
In Integromat I’m using the Update record module for Airtable and what I want to do is that each time a new form response is submitted, I want to add an item , i.e. append a new linked reference item.
Unfortunately, I can’t seem to find a way to do this. With each run, Integromat simply updates the original linked record when instead I want to keep appending to this multi-reference linked field dynamically. I cannot predict how many items will be added. I just want items to be appended when my scenario is triggered but instead Integromat overwrites this field with the latest value from the current run.
How can I have Integromat append to my multi-reference linked field instead of overwriting it?
Thanks in advance
Sean
Solved! Go to Solution.
Oct 30, 2021 05:09 PM
In that case, just merge the pre-existing array (your pre-existing field value) with a brand new array of only one value. You’ll need to get the record information in a previous step in order to have the pre-existing field value accessible to you:
Oct 30, 2021 02:38 PM
You can’t append using the Airtable API, so you’ll need to send all the values to the field — both the old and the new.
A linked record field with multiple values is an array, so you’d have to send your multiple records to that field as an array.
Here’s a quick example of how I created an array with 2 hardcoded values, but you would need to replace these hardcoded values with the references to the old value and the new value:
Also, be sure to turn on “smart links” if you’ll be adding new values that have never before appeared in your linked table.
However, an easier method of doing all of this would probably be to just create the new linked record in the other table, instead of updating the existing record in the current table.
Oct 30, 2021 04:57 PM
Thanks so much, Scott. I think I understand your approach, but a few follow-up/clarification questions.
So in my case, the elements that will need to be fed into the array are record IDs, one for each new form response. This means that the number of elements – each one of which a form response ID – will be ever increasing in the array. I’m thinking this would mean that I’d need another intermediary array to act as a memory container saving all the record IDs ever processed so as to keep a list of the ‘old’ items being added to the multi select. This is so that when a new form response is received and I need to map the multi-reference linked field in Integromat, I have a list of all the ‘old’ ones that need to be added again to this new operation.
So for your approach,
add(empty array ; recordID1 ; recordID2 ; recordID3 ……) the number of items or elements in the array will be ever increasing — a new element will get added for each new form response.
So would I have to do something like this?
But then how would the ever growing memoryArray elements get listed out within the mapping field in Integromat? memoryArray itself is a list of elements, so how would I reference that as a list of all the ‘old’ elements + the one new element being appended to in the current operation.
Apologies if I’m overcomplicating this or have a blind spot and there’s a much simpler way to do this, but I’ve been stuck at this problem for 2 days now so it’s possible that I’m not seeing the obvious.
Thanks a ton once again for your suggestion.
Oct 30, 2021 05:09 PM
In that case, just merge the pre-existing array (your pre-existing field value) with a brand new array of only one value. You’ll need to get the record information in a previous step in order to have the pre-existing field value accessible to you:
Oct 30, 2021 05:11 PM
Yessss!!! That’s it. Thanks a ton, Scott. Really appreciate it. I’m going to go try set that up.
Cheers once again.