Skip to main content

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:read and schema.bases:read scopes, 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 fieldDestination representation
Text, URL, email, phone, single selectString
Number, currency, percentNumeric
CheckboxBoolean
DateDate
Created time, Last modified timeTimestamp
Multiple select, linked records, attachmentsJSON array
Formula, lookup, rollup, countBased on the result Airtable returns
Created by, Last modified byString

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

  1. In Airtable, add a field to the table.
  2. Choose Last modified time as the field type.
  3. Select the editable fields whose changes should advance the timestamp.
  4. Save the field.
  5. 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

Schema Refresh Interval

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

  1. Confirm the Airtable user can access at least one required base.
  2. Confirm your organization allows the authorization.
  3. Retry the flow in a browser window that allows the Airtable sign-in and redirect.
  4. Reconnect the source if the previous grant was revoked.

Personal access token is rejected

  1. Confirm the token is active and was copied without extra spaces.
  2. Confirm it has the data.records:read and schema.bases:read scopes.
  3. Confirm the required bases are included in the token's access list.
  4. Create a replacement token if the original was revoked.

Bases or tables are missing

  1. Confirm the OAuth grant or token includes the base.
  2. Confirm the connected Airtable account can read the table.
  3. Set Schema Refresh Interval to 0, then test and save the source again.
  4. Review the source's Job Details if Airtable rejects access to a specific base or table.

A table keeps running full refresh

  1. Confirm the table has a Last modified time field.
  2. Confirm the field watches the editable columns whose changes should be captured.
  3. Refresh the Supaflow schema after adding or changing the field.
  4. 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.



Support

Need help? Contact us at support@supa-flow.io