Skip to content
Airtable to WordPress users

Create WordPress users from an Airtable table

Map email, login, names, and non-admin roles. Re-sync with the ID map, or match existing accounts by email or username, instead of uploading another CSV.

Membership lists, speaker directories, internal staff sheets, and community rosters often start in Airtable. WordPress still needs real user accounts for logins, authors, or members-only content.

This guide shows how to import rows from a contacts or members table in Airtable into WordPress users with Integration for Airtable: map email and profile fields, restrict roles to non-administrator destinations, match existing accounts by email or username when needed, and verify every run in Sync History. It does not import Airtable workspace collaborators.

The problem

  • Maintaining a members table in Airtable while manually creating WordPress users from CSV.
  • Drifting data: Airtable has the current email; WordPress has last year’s spelling.
  • Fear of duplicates every time you re-upload a CSV.

The importer’s ID map (and optional email or username matching) is what makes re-sync safe.

What you need

  • WordPress with permission to create users
  • An Airtable table with at least a reliable email (and ideally name or login)
  • Integration for Airtable connected under Airtable Config

Users import, 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

OAuth lets you authenticate on Airtable’s site and choose which bases the plugin can access.

  1. Click Connect with Airtable
  2. Sign in to the Airtable account that can access your people base
  3. Choose the bases to share, then click Grant access
  4. Return to WordPress and confirm the status shows Connected via OAuth
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. It must include read access and Access to the base you will import.

  1. In Airtable, 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 people base
    Creating a Personal Access Token in Airtable
  4. Click Use a personal access token, paste the PAT, then save
    Pasting a Personal Access Token into the plugin
Step 2
Open Import

Airtable Sync → Import → add a connection → entity type Users.

Step 3
Select the Airtable source
  • Base and table.
  • Optional view (for example “Active members only”).
  • Optional filterByFormula (for example status equals Active).
Step 4
Map columns to user fields
  • Email: Email. Primary identity. Must be valid and unique.
  • Username or login: Text. Optional if you match or generate from email.
  • Display name: Text. What appears publicly.
  • First and last name: Text. Map these when your table splits them.
  • Role: Single select or text. Use subscriber, contributor, author, editor, or a custom non-administrator role already defined by your site.
  • Password: Text. Optional. Sets the WordPress password from that column.
  • Nickname, website, and locale: Text or URL. Locale is Pro.
  • Bio: Long text. Profile description.
  • Avatar: Attachment. Pro.
Step 5
Configure matching and updates
  • ID map: once an Airtable record has been imported, later runs update that same WordPress user.
  • Optional match by email or username attaches records to users that already exist. This is useful when accounts were created at checkout or registration before Airtable sync.
  • Decide what happens when email changes in Airtable. Test on staging if your process renames logins.
  • Send new-user email on create sends the standard WordPress welcome email for new accounts. Leave it off for a bulk first import.
  • Pro delete-missing is available only when no Airtable view or filter scopes the connection. If it removes a user who owned posts, set Reassign content on delete so those posts move to another user.
Step 6
Schedule and run

Free: manual, daily, weekly. Pro: down to every 15 minutes. Save, then Import now.

Step 7
Verify in Sync History
  1. Open Airtable Sync → Sync Logs and confirm the import run.
  2. Open Users → All Users in WordPress and spot-check role, email, and display name.
  3. Re-run after an Airtable edit. The same user should update, not duplicate.
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.

Before you import

Fix these in Airtable first. They are the usual reasons a Users import creates duplicates, rejects a row, or emails the wrong people.

One email per WordPress user

WordPress rejects a second account with the same email. Deduplicate the Email column in Airtable before you run Import now.

Logins must be unique and WordPress-safe

If you map a username column, drop spaces and odd characters. If the table is messy, leave username unmapped and let WordPress build it from email.

Leave welcome emails off for the first bulk run

Send new-user email on create fires the standard WordPress welcome email. Keep it off until you have confirmed the first import in Sync Logs.

Map the role your membership plugin expects

MemberPress, Restrict Content Pro, and similar plugins own the role list. Use that slug, and import one test row before the full table.

Free is one Users connection and 300 records a month

Plan Pro if the table is larger, you need a second Users connection, or you want avatars from Airtable attachments.

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 and filterByFormulaSame
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.

Invalid email in Sync History

Clean the Airtable Email column, trim spaces, and fix duplicates. WordPress rejects malformed addresses.

User created with the wrong role

Confirm the Airtable role value matches a non-administrator role slug or name your site expects, such as subscriber or customer. Custom roles must already exist in WordPress.

Existing member duplicated

Enable optional match by email or username, run again once to link, then rely on the ID map. Remove accidental duplicates manually in Users.

Bulk import sent unwanted emails

Turn off Send new-user email on create before the first large run. Turn it on later if new accounts should get the welcome email.

Avatar is not importing

Avatars from Airtable attachments require Pro. Core profile fields still import on Free.

FAQ: Airtable to WordPress users

Can I import Airtable rows as WordPress users without CSV?

Yes. Create a Users import connection, map fields, and run Import now or a schedule.

How do I avoid duplicate users?

Use the built-in Airtable to WordPress ID map for re-imports, and enable optional match by email or username when users already exist.

Can imports create administrator accounts?

The product supports non-administrator roles for imported users. Keep privileged roles manual.

Can I limit which Airtable people get accounts?

Yes. Use Airtable views and filterByFormula on the connection.

Where do failed user imports show up?

Airtable Sync → Sync Logs, including record-level errors (invalid email, role issues, collisions).

Does Free include scheduled user sync?

Yes. Free includes manual, daily, and weekly runs. Pro adds faster frequencies.

Can form submissions still create Airtable leads while users import runs?

Yes. Forms → Airtable and Import are separate connections under the same plugin.

Next steps

  1. Install Integration for Airtable free.
  2. Create a Users connection under Airtable Sync → Import, then run Import now.
  3. Confirm row-level results in Sync History.
  4. When you need more connections, faster schedules, or Pro profile fields, see Import from Airtable.

Also useful

Need the Sync History error?

Email support@ripplestep.com with the error text and a screenshot if you have one.

Stop creating users from a CSV

Install the free plugin, map one members table, and confirm the first user in Sync History before you run the rest.

Install Integration for Airtable free