← All integrations
Airtable → Salesforce

Airtable Salesforce integration

In short

An Airtable to Salesforce integration turns the records your team manages in a base - leads, companies, contacts, pipeline - into matched Salesforce Leads, Accounts, Contacts, and Opportunities, and writes Salesforce IDs and closed-won status back into Airtable. Done properly it is not a Zapier zap: it resolves Airtable linked records to Salesforce lookups, maps single-select values onto restricted picklists, upserts against an external ID so nothing duplicates, respects Airtable's 5-requests-per-second and Salesforce's daily API limits, and reports per-record failures instead of silently dropping them.

What a Airtable to Salesforce integration actually does

Airtable is where a lot of real go-to-market work actually happens. Marketing runs the lead list, partnerships tracks companies, an ops team manages a pipeline in a base because it is faster and more flexible than the CRM. Salesforce is the system of record - the place where forecasts, reporting, and the rest of the company expect that data to live.

The gap between them is manual re-keying. Someone copies a promising lead from a base into Salesforce, guesses which Account it belongs to, picks a stage from memory, and forgets to write the Salesforce ID back so nobody knows it was already done. An Airtable to Salesforce integration closes that gap: it reads the records you manage in Airtable, matches or creates the right Salesforce objects, maps every field correctly, and keeps both sides pointing at the same truth.

What data moves

Airtable recordBecomes in SalesforceNotes
Lead / inbound recordLead (or Contact + Account)Routed by your qualification rule; converted or created directly
Company / account recordAccountMatched on domain or external ID before insert to avoid duplicates
Person / contact recordContact under its AccountLinked-record company resolved to the correct AccountId
Deal / pipeline recordOpportunitySingle-select stage mapped to the exact StageName picklist value
Single-select & multi-selectRestricted picklist / multi-picklistValues mapped to API names, not free text
Collaborator / assigneeOwnerIdAirtable collaborator email mapped to a Salesforce User
Salesforce record IDWritten back to AirtableField on the row, so the next sync upserts instead of duplicating
Closed-won / stage changeWritten back to AirtableBase reflects Salesforce reality without manual updates

The field mapping, matching keys, and picklist alignment are agreed once and encoded in the pipeline. After that, nobody maps a field or picks a stage by hand.

The details that break naive syncs

A Zapier zap or the built-in connector gets you 80% of the way and leaves the expensive 20% on your desk:

How we build and run it

We treat this as a pipeline, not a zap. Airtable records are pulled on a schedule or by webhook, validated, matched against Salesforce, transformed into your agreed field mapping, and written through the Salesforce API - upserting on an external ID so a retry or a re-run never creates a duplicate. The Salesforce ID and any write-back fields go straight back into the base.

The pipeline is idempotent: every Airtable record carries a stable identifier and its Salesforce counterpart is keyed, so nothing is ever written twice. It runs on cloud-native, fully EU-hosted AWS infrastructure, so lead and contact data never leaves the EU - which keeps your DPA / AVV and your GDPR obligations clean.

And then we keep it running. Monitoring, alerting, incident response, and - critically - watching for Airtable Web API and Salesforce release changes are our responsibility under contract. You get a named owner and an SLA. The CRM stops depending on someone remembering to copy rows across.

When this integration is worth building

If one person pushes a handful of records a week and a duplicate here or there is no big deal, the built-in sync or a simple zap is genuinely fine, and we will tell you so. The integration earns its place when volume climbs, when duplicate Accounts and mismatched stages start corrupting your Salesforce reporting, when linked records and owner assignment have to be right every time, or when your revenue team is spending real hours re-keying and reconciling data that a pipeline should have delivered correctly in the first place.

Frequently asked questions

Can I not just use Zapier, Make, or the built-in Airtable Salesforce sync?
You can, and for a low-volume one-way push of new records it is fine. It breaks down on the parts that matter: matching a record to an existing Salesforce Account instead of creating a duplicate, resolving an Airtable linked record to the right AccountId, and mapping a free-text single-select onto a restricted picklist without an INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST error. Those tools also have no real answer for partial batch failures or Salesforce validation rules. The integration moves that logic into a pipeline we own and operate.
How do you stop duplicate Accounts and Contacts in Salesforce?
We upsert against a Salesforce external ID field rather than blind-inserting. Every Airtable record that has been synced carries its Salesforce record ID back in a dedicated field, so a re-sync updates the same record instead of creating a second one. For first-time matches we key on a stable attribute you choose - company domain, email, or an external reference - and we align with your Salesforce duplicate and matching rules so the pipeline does not fight them.
How do Airtable single-select and linked-record fields map to Salesforce?
Single-select and multi-select values are mapped explicitly onto your Salesforce picklist API names, so an Airtable stage like Negotiation lands on the exact StageName your org expects. Linked records are the harder part: an Airtable link to a Company record is resolved to that company's Salesforce AccountId before the Contact or Opportunity is written, so the lookup relationship is correct rather than blank. We agree the mapping once and encode it.
Is it one-way, or can Salesforce write back to Airtable?
Either. Most setups push from Airtable into Salesforce and write a few fields back - the Salesforce ID, the sync timestamp, and often the opportunity stage or closed-won flag so the Airtable base reflects reality. Full bidirectional sync is possible too, but it needs a clear rule for which system wins on a conflict. We scope that with you rather than pretending both directions are free.
Who operates it after it goes live?
We do. The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. If Airtable changes its Web API or Salesforce ships a release that alters a field or a limit, that is our problem to fix under contract, not a surprise your revenue team discovers when records stop arriving. You get a named owner, alerting, and an SLA rather than a zap somebody has to babysit.

Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.

Request a scoping call