Watch our latest video available on Youtube.
Tutorials/Tutorial

How to Integrate Airtable with Salesforce

Salesforce is the CRM of record for most enterprise sales teams; Airtable is where everything outside the sales motion lives — delivery, ops, finance, custom workflows Salesforce can't model cheaply. The integration between them is rarely 'sync everything.' This guide walks through the four real patterns: Airtable's native Salesforce sync, Make/Zapier two-way flows, the API for high volume, and the architecture decisions that separate a clean integration from a permanent sync war.

Intermediate15 min readJul 20, 2026

Most teams asking how to integrate Airtable with Salesforce don't actually want to replace one with the other. They want Salesforce to keep running the sales motion and Airtable to handle everything sales hands off — onboarding, delivery, projects, custom client data, billing. The integration is the seam between the two systems.

This guide walks through the four real patterns we build for enterprise clients: Airtable's native Salesforce sync, two-way Make/Zapier flows, custom API integrations for high volume, and the architecture decisions that prevent the integration from becoming a maintenance burden.

For native actions specifically (Salesforce automation actions inside Airtable), see our deeper guide on syncing Airtable to Salesforce with native actions. This guide covers the broader picture.

Pattern 1: Native Salesforce Sync (Salesforce → Airtable)

The simplest setup, available on Airtable's Team plan and above. Salesforce is the source of truth; Airtable mirrors a read-only copy.

How to set it up

  1. In Airtable, click Add or import at the top of the bases list.
  2. Choose Salesforce.
  3. Sign in with a Salesforce user that has API access enabled.
  4. Pick the Salesforce object (Accounts, Contacts, Opportunities, Leads, Cases, or a custom object) or a Salesforce report as the source.
  5. Choose which fields to import.
  6. Set refresh frequency — every 5 minutes on most plans.

Airtable creates a new synced table. The data is read-only on the Airtable side; edits must happen in Salesforce.

What it's good for

  • Linking Salesforce records to Airtable objects. Sync Accounts into Airtable, then build Projects, Invoices, or Tasks that link to those Account records.
  • Reporting layers. Pull Opportunities into Airtable for cross-system dashboards combining sales pipeline with delivery data.
  • Field-restricted teams. Salesforce licenses are expensive; Airtable Editor seats are not. Sync enough Salesforce data to Airtable that ops teams can do their work without needing Salesforce logins.

What it can't do

Native sync is one-way only — you can't push Airtable edits back through this channel. For write-back, use native Salesforce actions in automations or Make/Zapier (covered next).

For Airtable's official docs, see the Salesforce sync integration guide.

Pattern 2: Native Salesforce Actions in Automations (Airtable → Salesforce)

Available on Business and Enterprise plans, native Salesforce automation actions let you create and update Salesforce records from Airtable without Make or Zapier.

The actions available

  • Create Salesforce record — accepts the object type and field values.
  • Update Salesforce record — requires a Salesforce record ID.
  • Find Salesforce record — looks up a record by field criteria.

Common automation: deal-to-Salesforce-opportunity

When a project closes in Airtable, create a renewal opportunity in Salesforce automatically.

  1. Trigger: When record matches conditions — Project Status = "Complete" AND Renewal Likelihood = "High."
  2. Find action: Find Salesforce Account by Account ID stored on the project.
  3. Create action: Create Salesforce Opportunity with stage = "Discovery," amount = project budget × 0.8, close date = 30 days out.
  4. Update Airtable record: write the new Opportunity ID back to the project.

This is the cleanest write pattern because there's no third-party tool to break. It only works on Business+ Airtable plans — for Team plans, fall back to Make/Zapier.

Pattern 3: Make / Zapier for Two-Way Sync

When you need bidirectional flow with conflict logic, transformations, or complex branching, Make and Zapier are the workhorses. We use Make for most client projects because of better error handling.

Salesforce → Airtable: the inbound pattern

  1. Trigger: Make's Salesforce Watch records (Accounts/Contacts/Opportunities) or scheduled Search records.
  2. Search: Airtable Search records by stored Salesforce ID.
  3. Router:
    • If found → Airtable Update record.
    • If not found → Airtable Create record with the Salesforce ID.

Airtable → Salesforce: the outbound pattern

  1. Trigger: Airtable Watch records (or an Airtable automation webhook for low-latency).
  2. Search: Salesforce Search record by stored Airtable ID custom field.
  3. Router:
    • If found → Salesforce Update record.
    • If not found → Salesforce Create record, then write the new ID back to Airtable.

True two-way sync: the conflict resolution problem

If both sides can edit the same field, you have to define what wins. Three patterns:

StrategyHow it worksWhen to use
Last-write-winsMost recent Last Modified winsLow-conflict workflows
Field-level ownershipSpecific fields belong to specific toolsMost enterprise setups
Source of truth + mirrorOne tool is canonical; other is read-onlyRecommended default

Don't build true two-way sync if you can avoid it. The maintenance cost is real.

Pattern 4: Custom API Integration for High Volume

When Make/Zapier costs add up (typically above 50,000 syncs/month) or you need sub-second latency, build a custom integration against the Salesforce REST or Bulk API and Airtable REST API.

When the API is worth it

  • Bulk operations. 100K+ records per month. Salesforce Bulk API handles 10,000 records per batch; Airtable bulk endpoints handle 10. Plan accordingly.
  • Sub-second latency. Salesforce platform events → AWS Lambda → Airtable write, in under 500ms end-to-end.
  • Compliance. Integration runs inside your own infrastructure with full audit trails.
  • Complex transformations. Joining multiple Salesforce objects into denormalized Airtable rows is easier in code than in Make.

Architecture sketch

Salesforce Platform Event
        ↓
   AWS Lambda / Cloud Function
        ↓
   Airtable Bulk API
        ↓
Airtable Record (with Salesforce ID)

For the reverse direction, an Airtable webhook automation calls the same Lambda, which calls the Salesforce REST API.

Comparison: Which Pattern Fits Which Job

NeedBest PatternPlan Required
Mirror Salesforce Accounts in AirtableNative syncTeam+
Create Salesforce Opportunity from AirtableNative actionBusiness+
Two-way sync of Contacts with conflict logicMake/ZapierAny
Sync 100K+ records monthlyCustom APIAny (eng resources)
Cross-system reportingNative sync into AirtableTeam+
Real-time platform event reactionsCustom API with LambdaAny

Architecture Decisions That Matter

Pick a source of truth per object

For every object you sync, decide which tool owns it.

  • Accounts and Contacts: Usually Salesforce. Sales and marketing own them.
  • Opportunities (in pipeline): Salesforce. Until they close-won.
  • Projects (post-close): Airtable. Delivery owns them.
  • Custom objects beyond Salesforce schema: Airtable. Cheaper and more flexible than Salesforce custom objects.

Use Salesforce IDs as join keys

Every Airtable record mirroring a Salesforce object needs a Salesforce ID field (Single line text, 18-character format preferred). Every Salesforce object mirroring an Airtable record needs an Airtable Record ID custom field. Sync on IDs, never on email or name.

Use Salesforce External ID fields for upserts

Salesforce supports designating a custom field as an "External ID" — this enables the Upsert API, which creates-or-updates in a single call based on the External ID value. Add an Airtable Record ID External ID field on every synced Salesforce object. Make's Salesforce Upsert module uses this directly.

One scenario per direction per object

Don't build "the everything syncer." Build:

  • Salesforce Accounts → Airtable Companies
  • Salesforce Contacts → Airtable Contacts
  • Salesforce Closed-Won Opportunities → Airtable Projects
  • Airtable Project Status → Salesforce Opportunity Custom Field

Each is independently testable, debuggable, and changeable.

Common Mistakes

Mistake 1: Trying to replace Salesforce with Airtable for an enterprise sales team. Airtable is not Salesforce. If your sales motion depends on territory management, complex forecasting, or AppExchange tools, stay on Salesforce. Integrate, don't migrate.

Mistake 2: Syncing every field. Sync only the fields downstream workflows need. The more fields, the more conflict logic, the more breakage.

Mistake 3: Blowing through Salesforce API limits. Professional Edition has 1,000 calls/day. A naïve Make scenario polling every 5 minutes burns through that in a day. Use the Bulk API for batches, and trigger-based webhooks (Salesforce Outbound Messages or Platform Events) instead of polling.

Mistake 4: Not handling Salesforce required fields. When you Create a record from Airtable, Salesforce rejects the call if required fields are missing. Map every required field, or your automation silently fails.

Mistake 5: Forgetting Person Accounts vs. Standard Accounts. If your Salesforce org uses Person Accounts, the Contact object has different behavior. Confirm your sync handles both models.

Troubleshooting

Sync returns "INVALID_LOGIN" errors. The Salesforce user's password changed, or the connected app's OAuth token expired. Reconnect in the integration tool.

Records created in Airtable but not appearing in Salesforce. The Create action is running but failing — open the automation run history. Most often it's a required field missing or a validation rule blocking the insert.

Duplicate records in Airtable after re-syncing. The native sync re-imported records as new because the source field changed. The Salesforce ID column should always be your join key — confirm it's set as the unique field.

Native Salesforce actions greyed out in Airtable Automations. You're on the Team plan or lower. Native actions require Business or Enterprise.

Make scenario hits rate limits intermittently. Add a throttle module set to 5 requests/second for Airtable and 10 requests/second for Salesforce. For batch syncs, switch to the Bulk API module.

Next Steps

Salesforce integration is rarely a single project — most enterprise setups grow 4–8 distinct scenarios over a year. Start with one direction on one object, run it for a month, and add the next.

For complementary patterns, see our HubSpot integration guide, build a CRM in Airtable, and native Salesforce actions deep dive. When the integration design needs to span sales, ops, finance, and reporting cleanly, we scope and build the full pipeline. Get in touch.

Frequently Asked Questions

Common questions about this tutorial.

Ready to Transform Your Business Operations?

Join 100+ companies that have automated their way to success. Get started today and see the difference.