I want to implement a solution where changes in a row from Doc A are synced to Doc B through Zapier. For that I have the following setup:
- In Doc A and Doc B there’s the
Datatable in each. These I want to sync. - Since Zapier can only trigger on new rows, in
Doc AI have a dedicatedEditstable where I copy rows fromDatawhenever they change (via automation or with button, doesn’t matter). - Zapier is set up to listen on new rows in
Doc A / Editstable and upsert those rows intoDoc B / Datatable - The key for the upsert operation is the column
ID.
Expectation:
Both edited rows (that have rows in Doc B / Data with matching ID) and newly added rows (that don’t have matching rows in Doc B / Data yet) are correctly upserted.
Reality:
-
Existing rows are updated correctly, but newly added rows that have multiple entries in
Doc A / Editstable are inserted without overwriting each other. I.e., if I add a row toDoc A / Dataand then edit it, it will appear inDoc B / Dataas two separate rows. See in the video below.
It seems like when Zapier does batch upsert on multiple rows, it does not take into account the rows it has already upserted in previous iterations of the same batch. -
Additionally, Zapier seems to fetch rows from
Doc Ain reverse order. This leads to a problem where when upsert operation is applied, the former edit overwrites latter edits to the same row, and data is lost. -
Additionally there seems to be some lag with either Zapier or Coda API: as you can see in the video below, sometimes it takes to perform the second manual sync to fetch the last lagging row.
Need some assistance with this please. I’m doing this for a client.

