Watch our latest video available on Youtube.
Tutorials/Tutorial

How to Connect Airtable to Webflow for Dynamic Websites

Webflow's native CMS is great until you need to manage content from somewhere other than Webflow — a non-technical team that already lives in Airtable, a multi-channel publishing setup, an editorial workflow with approvals. The fix is to make Airtable the source of truth and Webflow the rendering layer. This guide walks through the full pipeline: setting up matching schemas, building the Make sync, handling images and rich text, and publishing automatically when records are approved.

Intermediate14 min readAug 7, 2026

Webflow is a designer's dream and an editor's headache. The Designer is built for visual design, not for managing 500 blog posts or 200 product pages. Most teams hit the wall around 50 CMS items and start looking for a better way to manage content — without rebuilding the site.

Using Airtable as a headless CMS for Webflow is the cleanest answer. Editors work in Airtable (where they already live), an automation pushes published records into Webflow CMS, and Webflow renders them through its templates. The site keeps Webflow's design polish; the content keeps Airtable's editorial workflow.

This guide walks through the full pipeline.

The Architecture: Airtable Owns Content, Webflow Renders It

The mental model:

  • Airtable is the source of truth. Each content type (Blog Posts, Case Studies, Products, Team Members) is an Airtable table with all the fields needed for the site plus editorial fields (Status, Author, Approval Date, Internal Notes).
  • Webflow CMS Collections are the rendering layer. They mirror only the fields that need to appear on the public site. Webflow's templates render the CMS items as live pages.
  • The sync is one-way (Airtable → Webflow). Edits never happen in Webflow's CMS — if a typo needs fixing, fix it in Airtable.

When you set the architecture up this way:

  1. Editorial workflows live in Airtable. Drafts, approvals, scheduled publishes, multi-author contributions — none of these have to fit in Webflow's UI.
  2. Schema changes are safe. Add fields in Airtable that aren't synced to Webflow without breaking anything.
  3. Migrating away from Webflow is possible. When you change rendering tools, only the sync target changes.

Step 1: Set Up Matching Schemas

The first decision is the field mapping between an Airtable table and a Webflow CMS Collection. They must match closely for the sync to work cleanly.

Webflow CMS field types and Airtable equivalents

Webflow FieldAirtable FieldNotes
Plain TextSingle line textRequired for Name (slug source)
Rich TextLong text with rich textWebflow accepts HTML
ImageAttachment or URLPass attachment URL or external URL
Multi-ImageMultiple attachmentsWebflow expects array of URLs
LinkURLOne-to-one
Date/TimeDateFormat as ISO 8601
NumberNumberOne-to-one
Switch (boolean)CheckboxOne-to-one
ColorSingle line textFormat as hex #RRGGBB
Option (single-select)Single selectMatch option names exactly
ReferenceLinked record + Webflow ID lookupSee Step 4
Multi-ReferenceLinked records + Webflow ID lookupSee Step 4

Editorial fields (Airtable only)

Fields that live in Airtable but are not synced to Webflow:

  • Status (single select: Draft / In Review / Approved / Published / Archived) — drives the sync filter.
  • Author (collaborator field).
  • Editor Notes (long text).
  • Webflow Item ID (single line text) — populated by the sync, used as the join key.
  • Last Synced At (date) — populated by the sync.

Step 2: Build the Sync with Make

The Make scenario that pushes Airtable records into Webflow CMS.

Trigger

Two options:

  • Event-driven: Airtable automation fires a webhook when Status changes to "Approved" or content is updated.
  • Scheduled: Make runs every 15 minutes, searches Airtable for records with Last Modified > Last Synced At AND Status = "Approved".

For low-volume bases, event-driven is cleaner. For batch publishing (e.g. a content team approves 20 articles at once on Monday), scheduled is more efficient.

Steps

  1. Trigger: Webhook or scheduled search.
  2. Iterator: Loop through each Airtable record.
  3. Router:
    • If Webflow Item ID is emptyCreate Item branch.
    • If Webflow Item ID is not emptyUpdate Item branch.
  4. Webflow action: Create or Update Live Item with the field mapping.
  5. Airtable action: Update the record's Webflow Item ID (if newly created) and Last Synced At.

Create vs Update vs Live

Webflow's API distinguishes three states:

  • Draft Item — exists in the CMS but not published. Visible only in Webflow Designer.
  • Live Item — published and visible on the live site within 30–60 seconds.
  • Staged Item — exists in published mode but needs a "publish site" call to go live.

For most workflows, write directly as Live Items when Status = "Approved." For sites that need batch publishing, write as Draft and call Webflow's Publish Site endpoint at scheduled intervals.

Step 3: Handling Images

Webflow CMS image fields accept URLs, not file uploads. Two patterns work:

Option A: Airtable attachment URLs (simplest)

Airtable's attachment URLs are public by default. Pass them directly to Webflow:

https://v5.airtableusercontent.com/v3/u/30/30/...

Webflow fetches the image and serves it through its CDN. Caveat: Airtable rotates attachment URLs periodically (every few hours in some cases) — the URL Webflow originally fetched stops resolving, but Webflow's cached copy keeps serving. This is fine for most cases.

Option B: Third-party host (production)

For production sites, upload images to Cloudinary, AWS S3, or another stable host. Build a Make step that uploads the Airtable attachment to the chosen host and writes the new URL to a Public Image URL field, then pass that URL to Webflow. More resilient, more setup.

Step 4: Handling References (Linked Collections)

Webflow CMS supports References — a field on one Collection pointing at items in another Collection (e.g. Blog Post → Author).

The pattern

  1. Sync the parent Collection first (Authors).
  2. Store the Webflow Author Item ID on the Airtable Author record.
  3. When syncing child records (Blog Posts), look up the linked Airtable Author record, get its Webflow Item ID, and pass that ID to Webflow's Reference field.

Multi-reference fields work the same way but with arrays of IDs.

Step 5: Publish-on-Approval Workflow

The full editorial loop:

  1. Author drafts a Blog Post in Airtable. Status = "Draft."
  2. Editor reviews, changes Status to "In Review."
  3. Editor-in-chief approves, changes Status to "Approved."
  4. Airtable automation fires the Make sync.
  5. Make creates or updates the Webflow CMS Item, publishes Live.
  6. Make updates the Airtable record: Status = "Published," Last Synced At = now.

This loop, end-to-end, takes 30–60 seconds. The team never touches Webflow.

Comparison: Headless Airtable vs Native Webflow CMS

FactorNative Webflow CMSAirtable Headless
Editor UXWebflow CMS interfaceAirtable grid + interfaces
Editorial workflowLimitedFull (status, approvals, scheduling)
Schema complexityLimited field typesRich (linked records, rollups, formulas)
Multi-channel publishingSingle (Webflow only)Web + email + app + API
Setup timeMinutes1–2 days
Best forSmall teams, simple sitesMulti-team content ops

Common Mistakes

Mistake 1: Two-way sync. Don't do it. Once you allow edits in Webflow, conflict logic gets ugly fast. Make Airtable the only edit surface.

Mistake 2: Not storing the Webflow Item ID. Every sync run creates duplicate items. The site grows phantom records nobody can clean up.

Mistake 3: Forgetting Webflow's CMS limits. Webflow plans cap CMS Items per site (10,000 on most plans). For sites with more content, split into multiple sites or upgrade.

Mistake 4: Hardcoding the Collection ID. When Collections get rebuilt during a Webflow redesign, the ID changes. Store it as a Make variable so updates are one-place.

Mistake 5: Syncing too aggressively. Webflow's CMS API rate-limits at 60 requests/minute. Bulk syncs need throttling — Make's throttle module set to 50 req/min handles this.

Troubleshooting

Items create successfully but don't appear on the site. They're in Draft mode. Set the Live flag on the Webflow action, or call Publish Site after creation.

Update action fails with "item not found." The stored Webflow Item ID is stale — the item was deleted in Webflow. Add a fallback: on update failure, fall back to create.

Rich Text fields render as plain text. Webflow expects HTML in Rich Text fields, not Markdown. Convert Airtable Markdown to HTML in a Make text-parser step.

Slug conflicts ("slug already exists"). Webflow requires unique slugs per Collection. Either let Webflow auto-generate from the Name, or build slug generation logic in your sync (lowercase, hyphens, dedup with -2 suffix).

Reference field fails to set. The Webflow Item ID for the linked record is missing — that record hasn't been synced yet. Sync parent Collections (Authors, Categories) before child Collections (Blog Posts).

Next Steps

Headless Airtable + Webflow is a common pattern in marketing-led organizations because it lets content teams move fast without touching the Webflow Designer. Once the sync is solid, the obvious next steps:

  • Add scheduled publishing (Status = "Scheduled" + Publish Date in the future → automation publishes at the right time).
  • Add multi-channel content distribution — same Airtable record powers web, email newsletter, and social posts.
  • Add AI-generated content drafts that flow into the same approval pipeline.

For broader patterns, see our Airtable automation guide, Make automation guide, and client onboarding with Make. If you're building a multi-site, multi-channel content stack on top of Airtable, get in touch and we can architect it.

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.