E-commerce
Connect Shopify and Airtable
Not a one-way order dump. A synced operational base that survives refunds, partial fulfilment and edits.
- Data flows
- 4 automated, two-way where safe
- Built with
- Shopify Admin API, Shopify webhooks, Airtable API
- Timeline
- Live in 3 to 5 business days from scope
- Owned by
- You. Accounts, credentials and code in your name.
In short
Connecting Shopify to Airtable means mirroring orders, inventory and customers into an operational base your team can work in. The hard part is not the initial push, it is keeping records correct when orders are edited, partially fulfilled, or refunded. SBD builds this with reconciliation rather than fire-and-forget triggers.
The workflows
What runs between Shopify and Airtable.
Each line is one automated workflow. An event in one tool, the checks and mapping in between, the action in the other, and the person who hears about it.
-
Ops team working orders in Airtable instead of the Shopify admin
WhenOrder created, updated, cancelled or refunded in Shopify
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenUpsert the order record in Airtable by Shopify order ID, and rewrite its linked line items so the base always matches current state
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Per-SKU inventory visibility with reorder alerts
WhenInventory level changes in Shopify
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenUpdate the SKU record and raise a reorder flag if it crosses threshold
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Fulfilment pipelines with owner assignment and SLA tracking
WhenFulfilment status changes
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenMove the order through your ops pipeline and notify the assigned owner
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Reporting joined against data Shopify does not hold
WhenRecord edited in Airtable
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenWrite the permitted fields back to Shopify, guarded so the write does not re-trigger the inbound sync
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
Every record passes through the same stages
- 1Receive
Webhook or polling from the source tool, with a signed payload and a replay log.
- 2Validate
Required fields present, types right, record key found. Anything else goes to the review queue.
- 3Map
Fields translated to the destination schema. Enumerations, currencies and dates normalised.
- 4Upsert
Written against the record key, so a retry updates rather than duplicates.
- 5Confirm
Outcome logged. Alert if the count goes quiet. Reconciliation run nightly.
Read this first
Why the obvious route breaks.
A one-step Zap connects Shopify and Airtable in an afternoon. This is what goes wrong once real volume and real edge cases arrive.
A "new order" trigger only fires once
Zapier and most native connectors push a record when the order is created and never look at it again. Shopify orders are mutable, they get edited, partially fulfilled, cancelled and refunded, so your Airtable base is accurate for about an hour and then quietly drifts.
Retries create duplicate rows
If a run fails midway and re-fires, a plain "create record" step makes a second copy. Without an idempotency key matched on Shopify order ID, you end up deduplicating by hand every few weeks.
Line items do not fit one row
An order with five line items is one Shopify object and five Airtable records in a linked table. Flat one-row-per-order sync loses per-SKU visibility, which is exactly what ops needs for picking and stock.
Per-task pricing punishes volume
Task-billed tools charge per operation, so cost scales with order count. At a few thousand orders a month, a purpose-built sync is usually cheaper than the automation subscription it replaces.
What it costs today
The gap, as the team feels it and as the engineer sees it.
In the team
- Orders are re-typed into a spreadsheet so operations can see them
- Nobody knows which orders were edited after they were picked
- Stock on the shelf and stock on the site disagree
- Refunds are reconciled by hand at month end
- Reports need an export and an hour of cleaning
Under the hood
- A "new order" trigger never sees edits, cancellations or refunds
- Retries create duplicate rows with no idempotency key
- Line items do not fit one row per order
- Rate limits on bulk product updates drop records silently
- No reconciliation, so drift is invisible until someone counts
What we wire up
The data flows.
- 01 When
Order created, updated, cancelled or refunded in Shopify
ThenUpsert the order record in Airtable by Shopify order ID, and rewrite its linked line items so the base always matches current state
- 02 When
Inventory level changes in Shopify
ThenUpdate the SKU record and raise a reorder flag if it crosses threshold
- 03 When
Fulfilment status changes
ThenMove the order through your ops pipeline and notify the assigned owner
- 04 When
Record edited in Airtable
ThenWrite the permitted fields back to Shopify, guarded so the write does not re-trigger the inbound sync
Used for
- Ops team working orders in Airtable instead of the Shopify admin
- Per-SKU inventory visibility with reorder alerts
- Fulfilment pipelines with owner assignment and SLA tracking
- Reporting joined against data Shopify does not hold
- Shopify order sync to Airtable
- Airtable inventory management for Shopify
- Shopify refunds and edits reflected in Airtable
- Picking and packing lists from Airtable
- Shopify customer records in Airtable CRM
- Reorder alerts from live Shopify stock
Built with
Data map
What becomes what, and what it is keyed on.
| In Shopify | In Airtable | Matched on | Direction |
|---|---|---|---|
| Orders and line items | Orders table and linked Line items table | Shopify order ID | two-way |
| Products and variants | Products table | SKU | one-way |
| Inventory levels | Stock field per SKU, reorder flag | SKU and location | one-way |
| Customers | Customers table | Shopify customer ID | one-way |
Field-level mapping is agreed in the blueprint and written into the runbook. Two-way rows carry loop protection so a write from the sync never re-triggers the sync.
In every build
What you get with the sync, whichever pair.
Under the hood
- Upserts keyed on the record
Every write is matched on the source ID. A retry or a re-fire updates the existing record instead of creating a second one.
- Retries with backoff
Rate limits and timeouts are retried with increasing delays, then parked for review, never dropped.
- Idempotent, loop-safe writes
Two-way flows carry a marker so a change written by the sync does not re-trigger the sync.
- Reconciliation
A nightly job compares counts and totals on both sides and lists any record that differs.
- Audit log
Every run records input, mapping result, action taken and who or what triggered it. Searchable by record.
- Error monitoring
Loud failures alert within minutes. Quiet ones are caught by an outcome count that alerts when it stops moving.
- Review queue
Records the sync is not sure about land in a screen a person can read, correct and release.
- Scoped credentials
One credential per connection, limited to the objects it needs, stored encrypted, in your account.
For the team
- Slack or email notifications
The alerts go to a named person, not a channel nobody reads. You choose Slack, email, WhatsApp or all three.
- A runbook
One document per integration: what it does, what each alert means, and what to do in the first ten minutes.
- Training
A live session with the people who will use the review queue, recorded for whoever joins later.
- Handover
Admin access, billing and code sit in accounts in your name from day one. If we leave, it keeps running.
- Sixty days of hypercare
The engineers who built it stay on call after go-live, fix what breaks and tune what the team asks for.
- A monthly report
Runs, records synced, exceptions handled, and what changed. Plain language, one page.
Security and your data
Where the data goes, and who holds the keys.
- Accounts
- Every platform account is created in your name. We work through managed access you can revoke.
- Credentials
- Stored encrypted in the orchestration layer. Scoped per connection. Rotated on handover.
- Data in transit
- TLS everywhere. Webhooks verified by signature before anything is processed.
- Data at rest
- Only what the sync needs. No copies of your customer data on our machines.
- AI steps
- Where an integration uses a model, it is through a business API that does not train on your data.
- Retention
- Run logs kept 90 days by default, adjustable. Payloads redacted of card and ID numbers.
- Agreements
- DPA and NDA on request. Regional rules covered in our privacy policy.
Keys and sensitive data
How API keys, tokens and personal data are handled.
- Keys live in a vault, never in code
API keys and tokens are stored in the orchestration layer's encrypted credential store or the platform's secret manager. None are written into workflows, repos, spreadsheets or chat.
- One credential per connection
Each integration gets its own key, scoped to the objects and actions it needs. A lead sync cannot read invoices. Revoking one key stops one thing.
- Service accounts, not personal logins
Connections use a dedicated service user in your account, so nothing breaks when a person leaves and nothing runs under someone's name.
- Two-factor on every account
Every platform account we set up has two-factor authentication on, with recovery codes handed to you, not kept by us.
- Rotation on handover and on request
Keys are rotated when the build is handed over, when anyone with access leaves, and at any time you ask.
- Secrets never reach the logs
Audit logs redact tokens, card numbers, government IDs and anything you flag as sensitive before a line is written.
- Webhooks verified before processing
Inbound calls are checked against the sending tool's signature. Unsigned or stale payloads are dropped and counted.
- Access you can see and revoke
Our access is through managed roles in your accounts. You can list it, limit it, and remove it in one click without touching the build.
Engineering decisions
Decided before the first workflow is written.
- Rate limits and backoff
Every API has a ceiling. Calls are batched, queued and retried with increasing delays so a busy hour does not become a failed one.
- Backfill and pagination
The first run has to load history, not just new events. Backfills page through the source in order, resume after interruption, and never double-write.
- Out-of-order and duplicate events
Webhooks arrive twice and out of sequence. Each event carries a version or timestamp, and older versions never overwrite newer state.
- Schema changes
A renamed field or a new dropdown value is the most common silent failure. Payloads are validated against a contract, and a mismatch stops the run and raises a flag.
- Time zones, currencies, units
Dates are stored in UTC and shown local. Money carries its currency. Quantities carry their unit. Conversions happen once, in the map step.
- Sandbox first
Builds run against sandbox or test accounts with seeded data before they touch production. Go-live is a switch, not a rewrite.
- Versioned and reversible
Workflows and code are version-controlled. A release can be rolled back in minutes without losing the records processed since.
- API deprecations watched
Tools retire API versions on a schedule. We track the dates for every connection in the runbook and upgrade before the cut-off.
- Cost per run known
Each workflow has a cost per execution, including any model calls, logged alongside the run. You see the bill before it arrives.
- Metrics, not just errors
Runs per hour, records in and out, exception rate and latency are charted. Trends show a problem before an alert does.
Proof
Where we have done this.
The offer
Hire SBD to connect Shopify and Airtable.
A fixed scope, agreed in a thirty-minute call, and live in three to five business days. Accounts in your name. The engineers who built it on call for sixty days after.
- ScopeThirty minutes to agree the flows, the fields and the owner. Written up the same day.
- Build4 workflows, the data map above, validation, upserts, retries and reconciliation.
- Go-liveSandbox first, then a switch. Day three to five from scope for most pairs; longer only if a tool needs approval, such as WhatsApp templates.
- HandoverRunbook, training session, alerts to a named owner, admin access and code in your accounts.
- AfterSixty days of hypercare, then a care plan or run it yourself.
Questions
What people ask about this pair.
Why not just use Zapier for this?
Zapier is fine for a genuinely one-way, low-volume push. It struggles here because Shopify orders change after creation and Zapier steps are stateless, there is no built-in upsert, so edits and refunds either duplicate or go missing. It is also billed per task, so cost rises with order volume. We often keep Zapier for simple notifications and build the order sync properly alongside it.
Can data flow both ways?
Yes, with care. Two-way sync creates feedback loops unless writes are guarded, a change in Airtable triggers a Shopify update, which fires the Shopify webhook, which updates Airtable again. We scope which fields are writable from which side and add loop protection so that cycle cannot start.
How long does this take to build?
A one-way order and inventory sync with proper upsert handling is typically one to two weeks. Adding two-way writes, line-item tables and reorder logic usually takes it to two to three weeks.
Related
-
Shopify and eBay
One source of truth for stock, so the same unit is never sold twice on two channels.
-
Shopify and QuickBooks
Books that reconcile to the payout, not just to the order total.
-
Airtable and Retool
Airtable is a good database and a limited interface. Retool fixes the second half.
- Solution
Service and e-commerce
Every workflow we automate for this kind of team.
Shopify and Airtable
An operations base that matches the store.
Orders, edits, refunds and stock, mirrored into Airtable your team can work in, kept right by reconciliation, built in three to five business days.
Start with a thirty-minute call