"You must provide an array of up to 10 record objects, each with an \"id\" ID field and a \"fields\" object for cell values." } }

Hello everyone,

I’m encountering a persistent issue with the Airtable “Update Record” node in my W2-Bis workflow, which is designed to link a contact record to an existing company record.

  1. My data flow up to the Merge node is working correctly: the output of the Merge node successfully contains contact_id_simple (the Contact’s Record ID) and id (the Company’s Record ID).

  2. A subsequent IF node (Enterprise Found?) checks if the company id exists. Its true branch correctly passes the full outputวัตถุ from the Merge node as input to the “Airtable Update” node.

  3. The “Airtable Update” node (Update Contact with Existing Enterprise) is configured in “Map Each Column Manually” mode, targeting the “Contact” table, with “Columns to match on: id”.

  4. In “Values to Update”, for the id (using to match) field, I am using the expression {{ $json.contact_id_simple }}.

  5. In “Values to Update”, for the Entreprise (linked record field), I am using {{ [ $json.id ] }}.

  6. The Problem: Although the INPUT panel of the “Airtable Update” node clearly shows the presence of contact_id_simple (with a valid Record ID string) and id (with a valid Record ID string) within the incoming $json object, the preview успеха under the expression {{ $json.contact_id_simple }} for the id (using to match) field shows undefined. Consequently, the node fails with an “INVALID_RECORDS” error (“You must provide an array of up to 10 record objects, each with an “id” ID field and a “fields” object for cell values.”), presumably because the matching ID is missing. The expression {{ [ $json.id ] }} for the Entreprise field previews correctly with the company’s ID.

  7. I have verified that both the contact and company Record IDs exist and are valid in their respective Airtable tables, and the linked record field name (“Entreprise”) is correct.

  8. I’ve attempted using direct node referencing like {{ $nodes.Merge.json.contact_id_simple }}, which also results in undefined at this stage for the matching ID field.

  9. I have also tried preparing data with a Code node immediately before the Update node, but the issue of the Airtable Update node not correctly reading the contact_id_simple key (or its equivalent) from its $json input for the id (using to match) field persists.

Has anyone encountered this behavior where a key明明 present in the $json input of an Airtable Update node (Map Each Column Manually mode) is not recognized by a {{ $json.myKey }} expression specifically for the id (using to match) field, while other keys in the same $json object are read correctly for other fields?

Workflow (relevant part): Trigger → Code(PrepareIF) → IF1(CheckConditions) → SearchEnt → Merge (with output of Code(PrepareIF)) → IF2(EntFound?) → AirtableUpdate (Problematic Node)

Thank you for your help!

Hey, be handy if u can share the workflow, can try test see if I get same results

n8n attach workflow
u can just paste after clicking the code box, and this will add ure workflow.

thank you I’m really stuck!!! :frowning:

please share workflow :slight_smile: are u still stuck same point?

I did in my post.

1 Like

I found the solution. Thanks

1 Like

ah nice, :slight_smile: feel free to share always trying to learn new things :slight_smile: