Skip to content
Airtable to WordPress

Import Airtable records as WordPress posts and pages

Map Airtable columns to post fields, scope with a view or formula, and re-run without duplicates. The ID map updates the same WordPress object.

If Airtable is your editorial calendar, product copy sheet, or landing-page inventory while WordPress is what the public sees, you should not be copying titles and body HTML every time a row changes.

This guide covers Airtable → WordPress posts and pages with Integration for Airtable: choose a table (optional view or visual filter), map columns to post fields, Dry run before you import, and rely on the Airtable ↔ WordPress ID map so re-runs update the same content instead of spawning duplicates. Unchanged mapped values are skipped.

Who this is for

  • Publishers keeping drafts and status in Airtable, then pushing to WordPress.
  • Teams managing landing pages or resource libraries in a base.
  • Anyone comparing import-only tools who also wants forms → Airtable in the same plugin later.
Real WordPress objects

This is not “embed an Airtable view on a page.” It creates real WordPress posts and pages.

What you need

  • WordPress 5.9+ / PHP 8.0+
  • An Airtable base with a table of content rows (title and body at minimum)
  • Integration for Airtable installed
  • Editor-level access in WordPress to create posts and pages

Optional Pro destinations such as custom post types, ACF, and featured images are noted below. They are not available on Free.

Import posts and pages, step by step

Step 1
Connect Airtable

Go to Airtable Sync → Airtable Config. Connect with OAuth, which is recommended for most sites, or use a Personal Access Token (PAT).

Option 1 Connect with OAuth Recommended
  1. Click Connect with Airtable
  2. Sign in to the account that can access your content base
  3. Choose the bases to share and grant access
  4. Confirm Connected via OAuth in WordPress
Connecting Airtable with OAuth in Airtable Config
Option 2 Connect with a Personal Access Token

Use a PAT if you prefer to create and manage the token yourself.

  1. Create a personal access token
  2. Add schema.bases:read and data.records:read. Add write permissions only if the same connection also uses a workflow that writes to Airtable.
  3. Under Access, include the content base
    Creating a Personal Access Token in Airtable
  4. Paste the PAT into Airtable Config and save
    Pasting a Personal Access Token into the plugin
Step 2
Add a Posts/Pages connection

An import connection links one Airtable table to WordPress posts or pages. Mapped rows become real WordPress objects. Free allows one active Posts/Pages connection; Pro supports more.

  1. Go to Airtable Sync → Import
  2. Click Add Import Connection
  3. Choose Posts (posts, pages, and custom post types)
  4. Set Destination to Posts or Pages. Custom post types are Pro.
  5. Select the Airtable base and table
  6. Optionally select a view so only rows in that view import
  7. Optionally open Filter records and add visual rules. An advanced formula is optional if the rules are not enough
  8. Optionally add a connection name so you can find it later

If bases or tables do not load, reconnect under Airtable Config and confirm the token or OAuth grant includes this base.

Adding a Posts import connection in Airtable Sync
Step 3
Map columns to WordPress fields

Map at least the fields you need to publish. Unmapped Airtable columns are ignored, which is useful for internal fields such as owner, checklist, or “ready?”.

  1. In Field Mappings, click Add Field for each pair you need
  2. Choose the Airtable column, then the matching WordPress post field
  3. Skip internal ops columns you do not want in WordPress
  4. Use Custom Fields only when you need meta keys or ACF. Those destinations are Pro
  5. Save after the required mappings look correct
Mapping Airtable columns to WordPress post fields in the import connection
Airtable column WordPress field
Single line text Title
Rich text or long text Content
Long text or text Excerpt
Text Slug
Single select Status
Date Date
Linked record or text Parent (pages)
Email or username Author (Pro)
Attachment Featured image (Pro)
Any Custom fields / ACF (Pro)

Title is required for sensible permalinks. Status values should be draft, publish, pending, private, or future. Rich text, and long text that looks like Markdown, is converted to HTML. Plain text stays plain text.

Step 4
Configure matching, updates, and schedule
  • ID map (default safety): after the first successful import, later runs update the same WordPress object for that Airtable record instead of creating duplicates. If the mapped values have not changed, that row is skipped.
  • Optional match by slug: useful when posts already exist in WordPress and you want the first import to attach to them by slug.
  • Set default status behavior if a row omits status.
  • Free schedules: manual, daily, weekly. Pro: as frequent as every 15 minutes, plus other intervals through twice daily.

Save the connection.

Step 5
Run a dry run, then import
  1. Click Dry run to preview the import without writing posts or pages
  2. Open Airtable Sync → Sync Logs and review the dry-run result
  3. Check for missing titles, unexpected status values, and the row count you expect
  4. When the dry run looks right, return to the connection and click Import now

Dry-run and import results both appear in Sync Logs. Large tables process through background queues, so every row may not finish in one browser request. Recheck Sync Logs after the queue completes.

Step 6
Verify in Sync History
  1. Stay in Airtable Sync → Sync Logs and open the Import now run
  2. Check the import run status (success, warning, or error)
  3. Drill into record-level detail when something failed (empty title, invalid status, attachment errors on Pro)
  4. In WordPress, open a sample post or page and confirm title, content, slug, and status
  5. Change one Airtable cell, run again, and confirm the same post updates
Need help with a Sync History error?

Send the error text and a screenshot to support@ripplestep.com. We’ll help you identify what failed.

Keep Airtable as the source of truth

  1. Editors change copy or status in Airtable.
  2. Schedule daily (Free) or tighter Pro intervals.
  3. WordPress reflects updates via the ID map.
  4. Optional Pro delete-missing can trash previously imported posts only when no Airtable view or filter scopes the connection. Enable it only when the full table is authoritative and removal is intentional.

Forms can still feed other tables (leads, applications) via Airtable Sync → Forms while content imports run separately. See Forms to Airtable.

Free vs Pro

CapabilityFreePro
DestinationsPosts, pages, users, categories, tagsAdds CPTs, custom taxonomies, ACF, media
Import connectionsOne active per entity typeUnlimited
Imported recordsUp to 300 / monthUnlimited
SchedulesManual, daily, weeklyFrom every 15 minutes
ScopeViews, visual filters, optional formulaSame
Duplicate safetyID map, optional matchAdds delete-missing

Full pricing is on Import from Airtable. Form limits are separate. See Forms to Airtable. Pro is $99/year.

Troubleshooting

Choose the symptom you see to view the likely cause and next step.

Import finishes with warnings

Open Airtable Sync → Sync Logs and read the per-record message. Invalid status strings and empty titles are common.

Duplicates appeared

This usually follows a broken ID map relationship or manually recreated posts. Use match by slug once to reconnect, then rely on the ID map.

Schedule did not run

Confirm the connection schedule is saved, WP-Cron runs on the host, and you have not exhausted the Free monthly import limit of 300 records.

Only some rows import

Check the Airtable view and Filter records rules. Open the same view in Airtable and compare its rows with the import.

Custom post types, ACF, or images are unavailable

Those destinations are Pro. See Import from Airtable.

FAQ: Airtable to WordPress posts and pages

Will re-importing create duplicate posts?

No. When the Airtable to WordPress ID map is in place, later syncs update the same post or page. Optional slug matching helps link pre-existing WordPress content on first connect.

Can I import only some Airtable rows?

Yes. Use an Airtable view, the visual Filter records rules, or an optional advanced formula.

Does Free support custom post types?

No. Free imports posts and pages (core fields). Custom post types, ACF or meta, and featured images are Pro.

How often can imports run?

Free: manual, daily, weekly. Pro: intervals from every 15 minutes up to twice daily, plus the Free frequencies.

Where do I see per-record errors?

Airtable Sync → Sync Logs. Import runs include record-level success, warning, or error detail.

Is this the same as embedding Airtable?

No. Embedding shows Airtable in an iframe or block. This importer creates native WordPress posts and pages you can theme, cache, and SEO as usual.

Can one plugin both import posts and send form leads to Airtable?

Yes. That two-way design is the point of Integration for Airtable versus import-only plugins.

Next steps

  1. Install Integration for Airtable free.
  2. Create a Posts/Pages connection under Airtable Sync → Import.
  3. Run a dry run, review the result in Sync Logs, then import.
  4. For custom post types, ACF, or media, see Import from Airtable.

Also useful

Need help with a Sync History error?

Send the error text and a screenshot to support@ripplestep.com. We’ll help you identify what failed.

Publish from the base, not the clipboard

Install the free plugin, map one table to posts or pages, and confirm the ID map updates the same object on a second run.

Install Integration for Airtable free