Airtable Source
Configure Airtable as a source for bases, tables, and records available to the connected account or token. Each table can use full refresh or, when it contains a Last modified time field, incremental sync.
For capabilities and use cases, see the Airtable connector page. For the Snowflake-specific workflow, see Airtable to Snowflake.
Prerequisites
Before you begin, ensure you have:
- An Airtable account with access to the bases you want to sync
- Either permission to complete the OAuth authorization flow or an Airtable personal access token
- For a personal access token, the
data.records:readandschema.bases:readscopes, plus access to each required base
What Gets Synced
Supaflow discovers the bases included in the connection's access grant, the tables inside those bases, and the fields returned by Airtable. Each selected Airtable table becomes a destination table.
Common field mappings include:
| Airtable field | Destination representation |
|---|---|
| Text, URL, email, phone, single select | String |
| Number, currency, percent | Numeric |
| Checkbox | Boolean |
| Date | Date |
| Created time, Last modified time | Timestamp |
| Multiple select, linked records, attachments | JSON array |
| Formula, lookup, rollup, count | Based on the result Airtable returns |
| Created by, Last modified by | String |
Sync Modes
Full refresh reads the current records in the selected table. Use it for small tables and tables without a reliable Last modified time field.
Incremental sync is available when a table contains an Airtable Last modified time field. Supaflow reads records within a bounded modification-time window and saves progress after a successful run.
The connector does not receive hard-delete events from Airtable. If downstream deletion state matters, model it with a soft-delete or status field in the base.
Configure a Last modified time field
- In Airtable, add a field to the table.
- Choose Last modified time as the field type.
- Select the editable fields whose changes should advance the timestamp.
- Save the field.
- Refresh the source schema in Supaflow and reselect the table if needed.
Computed values such as formulas and lookups do not themselves act as editable fields. Configure the Last modified time field to watch the underlying editable fields that should trigger the incremental read.
Authentication
OAuth
OAuth opens Airtable's authorization flow and manages token refresh automatically. During authorization, grant access only to the bases the pipeline should read.
Personal Access Token
Use a personal access token for a service-style connection where your team manages the credential and its base access. Create and maintain tokens from Airtable's token page.
The token needs the data.records:read and schema.bases:read scopes, plus access to each base you want Supaflow to discover.
Configuration
Authentication Method*How Supaflow connects to Airtable.
Options:
- oauth — Browser-based authorization with automatic token refresh
- personal_access_token — Token managed by your team
Default: oauth
Personal Access Token*Shown when Authentication Method is personal_access_token. Paste the token created in Airtable.
Stored encrypted
How often Supaflow rediscovers bases, tables, and fields.
Options:
- 0 — Refresh before every pipeline execution
- -1 — Disable automatic schema refresh
- Positive value — Refresh interval in minutes
Default: 60
After configuring the connection, click Test & Save. Supaflow verifies the credential and discovers the Airtable schema available to it.
Rate Limiting
Airtable applies API rate limits. Supaflow retries transient throttling and server failures with backoff. Large bases can take longer, especially when other integrations share the same Airtable request budget. Narrow the selected tables or separate busy workloads when needed.
Troubleshooting
OAuth authorization fails
- Confirm the Airtable user can access at least one required base.
- Confirm your organization allows the authorization.
- Retry the flow in a browser window that allows the Airtable sign-in and redirect.
- Reconnect the source if the previous grant was revoked.
Personal access token is rejected
- Confirm the token is active and was copied without extra spaces.
- Confirm it has the
data.records:readandschema.bases:readscopes. - Confirm the required bases are included in the token's access list.
- Create a replacement token if the original was revoked.
Bases or tables are missing
- Confirm the OAuth grant or token includes the base.
- Confirm the connected Airtable account can read the table.
- Set Schema Refresh Interval to 0, then test and save the source again.
- Review the source's Job Details if Airtable rejects access to a specific base or table.
A table keeps running full refresh
- Confirm the table has a Last modified time field.
- Confirm the field watches the editable columns whose changes should be captured.
- Refresh the Supaflow schema after adding or changing the field.
- Use full refresh if the table cannot provide a reliable modification timestamp.
A deleted record remains in the destination
The connector does not receive hard-delete events from Airtable. Add a soft-delete or status field when downstream models must reflect removals, and update that field before deleting or archiving records in the base.
A sync is slowed by rate limiting
Supaflow retries transient throttling automatically. If rate limiting persists, reduce the selected table scope, avoid overlapping schedules that use the same base, or run large syncs during a quieter period. See Airtable's rate-limit documentation for current source limits.
Related Pages
- Airtable connector overview
- Move Airtable data to Snowflake
- Google Drive source
- HubSpot source
- Create an ingestion pipeline
- Snowflake destination
Support
Need help? Contact us at support@supa-flow.io