Keep an Airtable CRM current with upsert
An Airtable CRM stops being trusted the moment it holds three versions of the same customer. Upserting on a stable key from the source system means every run updates the record people are already working in, keeping their notes, assignments and links intact.
How to set it up
- 1
Pick a key that cannot change
A Stripe customer ID or a database primary key. Not an email address — people change those, and upsert then creates the duplicate you were avoiding.
- 2
Set the field types first
Airtable is typed. A number landing in a text field will not sum, and a date as text will not sort.
- 3
Write only what you own
Restrict the written columns so the fields your team maintains by hand — owner, status, notes — are never overwritten by a sync.
- 4
Upsert, then schedule
Run it twice by hand first. If the record count doubles, the key is wrong, and it is far cheaper to learn that on run two than on run thirty.
The connectors this uses
Questions
Will this overwrite notes my team has added?
Not if you restrict the written columns. Sync the fields that come from the source system, and leave the human-maintained fields out of the mapping entirely — they will be left alone on every run.
How many records can it handle?
Airtable accepts 10 records per request at roughly 4 requests a second, so about 2,400 a minute. Comfortable for tens of thousands; worth scheduling off-peak beyond that.