This question keeps coming up here, and the old threads are closed to replies, so here's a rundown for whoever lands here next. I make Airtable to Sheets, a Google Sheets add-on, so read it knowing that.
Why the built-in automation makes duplicates: the Google Sheets action in Airtable automations can only add a row. It can't find a row and update it. So "When record updated" plus "Add row" gives you a new row on every edit.
The options:
- CSV export. Download the view and import it into Sheets. Fine once a month. Attachment links in the file expire within hours.
- Make or Zapier. Put the Airtable record ID in a sheet column and search for it. Update the row when it's found and add one when it isn't. It works. Deletes won't carry over unless you build that path too.
- A sync add-on inside Sheets. It lives in the Sheets sidebar: choose a base, table and view, and the records come in. That's what I build.
Limits that apply whichever tool you go with:
- Google lets a Sheets add-on run on its own about once an hour at most. If an add-on promises 5-minute updates, ask it how. The honest way past that limit is an Airtable webhook that tells a server when a record changes. Airtable to Sheets runs every 3 hours on a schedule, and its live sync uses a webhook.
- Airtable's API allows 5 requests a second per base, so a big first sync takes a while.
- For edits going back to Airtable: formula, rollup, lookup and count fields are read-only in Airtable itself, so nothing can write to them.
What mine does: one-way sync on every plan, a schedule every 3 hours from $19 a month, and on the $39 plan, live sync within seconds plus edits back to Airtable. Live sync relays changes through my server, so pick scheduled if that matters to you. Renaming a field in Airtable doesn't break the sync, because it tracks field IDs. Write-back skips linked records, attachments and collaborators. Deleting a row in the sheet doesn't delete the record. 7-day trial, no card.
Questions about any of these options are welcome, the other tools included.
