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
Data
table in each. These I want to sync. - Since Zapier can only trigger on new rows, in
Doc A
I have a dedicatedEdits
table where I copy rows fromData
whenever they change (via automation or with button, doesn’t matter). - Zapier is set up to listen on new rows in
Doc A / Edits
table and upsert those rows intoDoc B / Data
table - 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 / Edits
table are inserted without overwriting each other. I.e., if I add a row toDoc A / Data
and then edit it, it will appear inDoc B / Data
as 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 A
in 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.