How to Connect Airtable to TableCrafter

TableCrafter can pull data directly from any Airtable base and render it as a filterable, sortable table on your WordPress site. This guide walks through every step: generating a personal access token, locating your base ID, configuring the TableCrafter data source, mapping your fields, and placing the shortcode. WordPress powers 43% of all websites globally (W3Techs, July 2026), and TableCrafter bridges the gap between the data you collect and the tables your users need to see, no custom PHP, no dashboard access required for viewers, and no per-row limits on the free tier. The free version on WordPress.org supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV/PDF, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block.
What You Need Before You Start?
Airtable has over 450,000 organizations as customers (Airtable, 2024). Airtable serves over 450,000 organizations worldwide, with users reporting an average of 40% reduction in spreadsheet maintenance time (Airtable, 2024). TableCrafter connects these two ecosystems without requiring a custom integration.
Before touching TableCrafter, gather three things from Airtable:
- A personal access token with read (or read/write) scope on your base
- Your base ID (starts with
app) - The exact table name as it appears in Airtable
You will also need TableCrafter installed and activated on your WordPress site. The Airtable integration requires TableCrafter Pro; it is not available in the free plugin.
After completing this step, verify the result by viewing the page as a logged-out visitor in an incognito window. This confirms the table behaves correctly for public visitors rather than reflecting admin-level permissions that may hide configuration issues during initial setup. Check both the rendered output and the browser console for any JavaScript errors.
Step 1: How Do I Create an Airtable Personal Access Token?
Airtable uses personal access tokens (PATs) instead of a single API key. Here is how to create one scoped to exactly what TableCrafter needs.
The column mapping you define here is stored as a JSON configuration in the WordPress database. You can export this configuration using the TableCrafter export tool and import it to another table or another site. This is useful when replicating a table layout across multiple pages or when migrating a table to a staging environment for testing before going live.
- Go to airtable.com/create/tokens while logged into your Airtable account.
- Click Create new token.
- Give it a recognizable name, such as
TableCrafter WordPress. - Under Scopes, add
data.records:read. If you plan to use inline editing, also adddata.records:write. - Under Access, choose All current and future bases in workspace or select only the specific base you are connecting.
- Click Create token and copy the token immediately. Airtable only shows it once.
Step 2: How Do I Find Your Base ID and Table Name?
The base ID is embedded in the URL when you have a base open in Airtable.
TableCrafter re-fetches this data on each page load by default. If your data source updates infrequently and your site has significant traffic, enable the built-in caching option in the table's Performance tab. This stores the fetched data for a configurable number of minutes and serves it from WordPress transients, reducing API calls to the source and improving page load time for visitors.
- Open your Airtable base in the browser.
- Look at the URL. It follows the pattern:
https://airtable.com/appXXXXXXXXXXXXXX/tblYYYYYYYYYYYYYY/viwZZZZ - The segment starting with
appis your base ID: copy everything fromappthrough the next forward slash (not including the slash). - The segment starting with
tblis the table ID, but TableCrafter accepts the human-readable table name instead. Use the name exactly as it appears on the tab in Airtable, including capitalization and any spaces.
Member Directory.Step 3: How Do I Configure the Airtable Source in TableCrafter?
Now open the TableCrafter admin panel in WordPress.
- Navigate to TableCrafter → Add New Table.
- Under Data Source, select Airtable.
- Paste your personal access token into the API Token field.
- Enter your base ID (the
appXXX...string). - Enter the table name exactly as it appears in Airtable.
- Optionally enter a view name if you want TableCrafter to pull from a specific Airtable view rather than the default grid view. Leave blank to use the default.
- Click Test Connection.
A successful test returns a green confirmation and shows the first few field names detected in your table. If the test fails, double-check that the token scope includes data.records:read and that the base ID has no trailing spaces.
The configuration you set here applies to every visitor who loads a page containing this table, regardless of whether they are logged in. Role-specific overrides for columns and rows are a separate layer and do not replace these global display settings. Apply global settings first, then add role restrictions as needed for tables that serve multiple user types.
Step 4: How Do I Map Airtable Fields to Table Columns?
After a successful connection test, TableCrafter loads all field names from your Airtable table. You now configure which fields appear as columns and how they render.
- In the Columns section, you will see a list of detected Airtable fields.
- Toggle each field on or off to include or exclude it from the table.
- Set a column label for each included field. This is the heading visitors see, and it can differ from the Airtable field name.
- Choose a column type. TableCrafter auto-detects most types, but you can override: Text, Number, Date, Image URL, Select, or Multi-select.
- Set column width, sort order, and whether the column is filterable.
For a detailed breakdown of how each Airtable field type renders, see How to Map Airtable Fields to Table Columns in TableCrafter.
This step completes the connection between your data source and the TableCrafter table engine. Once saved, the plugin caches the connection credentials in the WordPress options table and uses them on every subsequent page load. If you update the source configuration later, for example rotating an API key or changing a sheet URL, return to this step, enter the new value, and save again. The table updates immediately on next load without any shortcode changes.
Step 5: How Do I Configure Display and Behavior Settings?
With columns mapped, configure the table behavior before publishing.
- Rows per page: Set how many records appear per page. Default is 25.
- Search: Enable the live search bar to let visitors search across all text columns.
- Filter bar: Enable column-level dropdown filters for Select and Multi-select fields.
- Sort: Enable clickable column headers for sorting.
- Export: Enable a CSV export button if visitors should be able to download data.
- Edit: Enable inline editing only if your PAT includes write scope and you want visitors to update Airtable records directly from WordPress.
Save the table configuration. TableCrafter assigns it a numeric ID, visible in the admin list.
If this step produces unexpected output, check the source data directly in the connected system. TableCrafter passes data through without modification; if a cell displays an unexpected value, the source record contains that value. Use the TableCrafter debug log (Settings > Advanced > Debug Mode) to trace the exact query sent to the source and the raw response received, which narrows the diagnosis to either a source-side or rendering-side issue.
Step 6: How Do I Place the Shortcode?
TableCrafter uses a simple shortcode to embed the table anywhere on your WordPress site: a page, post, or widget area.
[tablecrafter id="1"]
Replace 1 with the actual table ID assigned by TableCrafter. For a table with search, filters, and export enabled at the shortcode level:
[tablecrafter id="1" filter="true" search="true" export="true"]
Paste the shortcode into the WordPress block editor using a Shortcode block, or directly into a Classic Editor page. The table renders on page load and fetches live data from Airtable.
The shortcode accepts all column and filter settings defined in the table builder as defaults, but you can override individual parameters inline. For example, `[tablecrafter id="1" per_page="25"]` overrides the default rows-per-page setting for this specific embed without changing the saved table configuration. This lets you reuse one table definition across multiple pages with different display requirements.
How Does Troubleshooting Common Connection Issues Work?
403 Forbidden from Airtable API
A 403 from the Airtable API has three common causes. First, the PAT is missing the required scope. For read-only display, the token needs at least data.records:read. If you have inline editing enabled in TableCrafter, it also needs data.records:write. Second, the token may not have been granted access to the specific base you are connecting. When you created the token, you selected either "All current and future bases" or specific bases by name. If you selected specific bases and did not include this one, Airtable returns 403 regardless of whether the scope is correct. Third, the token may have been revoked. To diagnose, go to airtable.com/create/tokens and review both the scopes and the base access list on the token. Note that Airtable does not allow editing an existing token's scopes after creation. If the scopes need to change, create a new token with the correct permissions, paste the new token into the PAT field in the TableCrafter data source config, and click Test Connection again. Airtable enforces a rate limit of 5 requests per second per base; a 429 response is a separate issue from a 403 and is handled automatically by TableCrafter's built-in rate limiter.
No Fields Detected After Test
When the connection test returns a success response but no fields appear, the most common cause is a table name mismatch. Airtable table names are case-sensitive: "Projects" and "projects" are treated as different tables. Do not retype the table name from memory. Instead, open your Airtable base and read the exact name from the tab visible at the bottom of the grid view. Common mistakes include trailing spaces introduced during copy-paste, wrong capitalization on the first letter, and using the table ID (which starts with tbl) instead of the human-readable name. TableCrafter expects the name, not the ID.
A wrong base ID can produce the same symptom. If the base ID points to a different base, Airtable may return a 200 response with no matching table, leaving the field list empty. Confirm the base ID (starts with app) in the TableCrafter source config matches the app segment in the URL of the Airtable base you have open. Finally, verify the PAT has been granted access to the correct base. A token scoped only to a different base will authenticate without error but will find no tables in the target base, producing the same empty field result.
Stale Data After Editing Records in Airtable
TableCrafter stores Airtable responses in WordPress transients to avoid hitting Airtable's rate limit of 5 requests per second per base. Edits made in Airtable appear on your WordPress site only after the cached response expires. The cache TTL is configurable in the data source settings; a shorter TTL means fresher data but more API requests against the rate limit. To force an immediate refresh, go to TableCrafter, open Data Sources, and click Clear Cache next to the Airtable source; this discards the transient and triggers a live fetch on the next page load.
If the data still looks stale after that, a page-level cache may be serving old HTML. Plugins such as WP Rocket, LiteSpeed Cache, and W3 Total Cache store the full rendered page, and flushing the TableCrafter transient does not touch it, so clear the page cache as well. Also note that a sync pulls up to 10,000 rows (100 pages of 100 records); rows beyond that limit will not appear. See How to Keep an Airtable Table in Sync with Your WordPress Site for details on sync scheduling.
What Are the Next Steps?
Once your Airtable data is live on your WordPress site, explore the rest of the TableCrafter Airtable documentation:
The permission check runs server-side on every request. Frontend users cannot bypass column restrictions by modifying the HTML or disabling JavaScript, because TableCrafter evaluates the current user's role before the data leaves the server.
This configuration interacts with any caching or CDN layer active on your WordPress installation. If you use WP Rocket, LiteSpeed Cache, or a CDN such as Cloudflare, flush the page cache after making this change to ensure the updated configuration is reflected in the cached HTML served to visitors. TableCrafter's server-side output is regenerated on the next uncached request.
- How to Map Airtable Fields to Table Columns, detailed field type behavior
- How to Filter an Airtable Table on Your WordPress Site, column filters and search
- How to Build an Airtable-Powered Member Directory, full end-to-end recipe
Frequently Asked Questions
What do you need before you start?
Before connecting, you need a Personal Access Token (PAT) with at least data.records:read scope, your Airtable base ID (starts with app), and the exact table name as it appears in the Airtable tab. TableCrafter Pro is also required; Airtable is not available in the free plugin.
What Is TableCrafter?
TableCrafter is a WordPress plugin that turns data from Gravity Forms, Google Sheets, Airtable, Notion, REST APIs, CSV files, and WooCommerce into interactive, sortable, filterable frontend tables. Embed any table on any WordPress page with the [tablecrafter] shortcode or the native Gutenberg block. No PHP or custom development required. The free version supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV and PDF, role-based column visibility, and auto-refresh.
Does this require PHP or developer skills?
No. TableCrafter is configured entirely through the WordPress admin interface. You choose your data source, map fields to columns, and set display preferences using point-and-click controls. Embedding uses the [tablecrafter] shortcode or the native Gutenberg block.
Is the free version sufficient or do I need Pro?
The free plugin on WordPress.org supports CSV, JSON, Google Sheets, and Excel sources with unlimited tables, rows, and columns. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST API sources, inline cell editing, bulk row actions, export to CSV and PDF, role-based column visibility, and auto-refresh every N seconds.
Ready to try it?
TableCrafter is free on WordPress.org. Pro unlocks inline editing, role-based permissions, and advanced data sources.
If the expected behavior does not appear after saving, clear any page or object caches active on your site. Caching plugins such as WP Rocket, W3 Total Cache, or LiteSpeed Cache may serve a stale version of the page that predates your configuration change.
After completing this step, verify the result by viewing the page as a logged-out visitor in an incognito window. This confirms the table behaves correctly for public visitors rather than reflecting admin-level permissions that may hide configuration issues during initial setup. Check both the rendered output and the browser console for any JavaScript errors.