Work top-down. If you use Integration for Airtable, the log is Airtable Sync → Sync Logs.
Symptom, then the first check
| Symptom | Check first |
|---|---|
| Zero posts created | The view or filter returned no records, the base or table is wrong, or auth can’t read the base |
| Some fields blank | Type mismatch, empty Airtable cells, or a map pointed at the wrong column |
| Duplicates each run | ID map lost, two connections, or an unstable match key |
| Updates not applying | Create-only import, or the wrong destination post type |
| Schedule does nothing | WP-Cron, low traffic, or a schedule that was never saved |
| Images missing | Media mapping is Pro and may be unconfigured, or attachment permissions |
| Users not created | Email missing or invalid, or a role the importer remaps—allowed targets are subscriber, contributor, author, editor, and custom non-administrator roles |
Verify the Airtable source
- Open the exact view selected in the connection.
- Confirm records meet the filter, such as Status = Ready.
filterByFormulatypos return an empty set. Test the formula in Airtable.- Linked-record fields may need extra resolution. Test with plain text first.
Verify authentication
- A personal access token includes scopes that can read records for that base.
- The OAuth connection has not been revoked.
- The token belongs to a user who can open the workspace.
Read Sync History line by line
Often a field-level skip. The post exists and one column did not land.
Auth, API limits, or a required WordPress field such as a user email.
Note which record IDs failed. Don’t re-run the whole table until those rows make sense.
Confirm Update existing is on for already-linked objects. Leave it on after the first successful map so later runs refresh the same WordPress IDs.
Use delete-missing on a full-table import. When a view or filter is set, keep Status on the row so later runs can still update those objects.
Click Dry run to see creates and updates in Sync History without writing WordPress objects, then Import now when the counts look right.
Field mapping hygiene
- Posts and terms need a title or name.
- Dates need a format the importer accepts.
- Select options must exist, or be creatable, based on your settings.
- ACF mappings on Pro: confirm field names on a single test post. See mapping Airtable to ACF.
Duplicate diagnosis
- Note WordPress post IDs after run A.
- Change one Airtable field and run B.
- Expected: the same IDs, with updated content.
- New IDs mean the map or match is broken. Pause the schedule and follow publishing without duplicates.
Schedule diagnosis
- Confirm the connection schedule. Free is daily or weekly. Pro is denser.
- Trigger WP-Cron manually and check host cron.
- Make sure testing didn’t leave the connection on manual-only.
API limits, volume, and plan caps
Airtable rate limits and record limits still apply. A large first import may queue. Wait for Sync History to settle before clicking Import now again. Extra clicks add load. They are not always faster.
Free caps imported records per month and connections per entity type. Custom post types, ACF, media, delete-missing, and sub-daily schedules are Pro. Check the counters before you rebuild the connection.
Still blocked
Include Sync History error text with secrets removed, the destination type, and whether a view or formula is applied. Email support@ripplestep.com.
Related reading
Reproduce with two records
Use a two-record view, read Sync History, and fix source, auth, or mapping from the first error.
Install Integration for Airtable free