Airtable
This page contains the setup guide and reference information for the Airtable source connector.
Prerequisites
- An active Airtable account
- Personal Access Token with the following scopes:
data.records:readdata.recordComments:readschema.bases:read
Setup guide
Step 1: Set up Airtable
For Calabi Connect:
-
Go to https://airtable.com/create/tokens to create new token.
-
Add following scopes:
data.records:readdata.recordComments:readschema.bases:read
-
Select required bases or allow access to all available and press the
Create Tokenbutton. -
Save token from the popup window.
Step 2: Set up Airtable connector in Calabi Connect
For Calabi Connect:
-
Log into your Calabi Connect account.
-
Click Sources and then click + New source.
-
On the Set up the source page, select Airtable from the Source type dropdown.
-
Enter a name for the Airtable connector.
-
You can use OAuth or a Personal Access Token to authenticate your Airtable account. We recommend using OAuth for Calabi Connect.
- To authenticate using OAuth, select OAuth2.0 from the Authentication dropdown click Authenticate your Airtable account to sign in with Airtable, select required workspaces you want to sync and authorize your account.
- To authenticate using a Personal Access Token, select Personal Access Token from the Authentication dropdown and enter the Access Token for your Airtable account.
info
When using OAuth, you may see a
400or401error causing a failed sync. You can re-authenticate your Airtable connector to solve the issue temporarily. We are working on a permanent fix that you can follow here.
-
Click Set up source.
For Calabi Connect:
- Navigate to the Calabi Connect dashboard.
- In the left navigation bar, click Sources. In the top-right corner, click +new source.
- On the Set up the source page, enter the name for the Airtable connector and select Airtable from the Source type dropdown.
- Select Personal Access Token from the Authentication dropdown and enter the Access Token for your Airtable account.
- Click Set up source.
Configuration options
The Airtable connector provides the following optional configuration settings:
- Number of Concurrent Threads: Controls the number of concurrent threads used for syncing (default: 5, minimum: 2, maximum: 40). Higher values can improve sync performance when syncing multiple bases or when there is I/O wait time. The connector automatically respects Airtable's rate limit of 5 requests per second per base, so increasing this value will not cause rate limit errors.
- Add Base ID to Stream Name: When enabled, includes the Airtable base ID in stream names to ensure uniqueness. This is useful if you have cloned Airtable bases with tables that share the same name. Enabling this option changes stream names and requires a full refresh of your data.
Note on changed table names and deleted tables
Please keep in mind that if you start syncing a table via Calabi Connect, then rename it in your Airtable account, the connector will not continue syncing that table until you reset your connection schema and select it again. At that point, the table will begin syncing to a table with the new name in the destination. This is because there is no way for Airtable to tell Calabi Connect which tables have been renamed. Similarly, if you delete a table that was previously syncing, the connector will stop syncing it.
Supported sync modes
The Airtable source connector supports the following sync modes:
Supported Streams
This source allows you to pull all available tables and bases using Metadata API for a given authenticated user. In case you rename or add a column to any existing table, you will need to recreate the source to update the Calabi Connect catalog.
Performance Considerations
See information about rate limits here.
Data type map
| Integration Type | Calabi Connect Type | Nullable |
|---|---|---|
multipleAttachments | string | Yes |
autoNumber | string | Yes |
barcode | string | Yes |
button | string | Yes |
checkbox | boolean | Yes |
singleCollaborator | string | Yes |
count | number | Yes |
createdBy | string | Yes |
createdTime | datetime, format: date-time | Yes |
currency | number | Yes |
email | string | Yes |
date | string, format: date | Yes |
duration | number | Yes |
lastModifiedBy | string | Yes |
lastModifiedTime | datetime, format: date-time | Yes |
multipleRecordLinks | array with strings | Yes |
multilineText | string | Yes |
multipleCollaborators | array with strings | Yes |
multipleSelects | array with strings | Yes |
number | number | Yes |
percent | number | Yes |
phoneNumber | string | Yes |
rating | number | Yes |
richText | string | Yes |
singleLineText | string | Yes |
externalSyncSource | string | Yes |
url | string | Yes |
formula | string, number or array with any | Yes |
lookup | array with any | Yes |
multipleLookupValues | array with any | Yes |
rollup | array with any | Yes |
- All the fields are
nullableby default, meaning that the field could be empty. - The
array with any- represents the classic array with one of the other Airtable data types inside, such as:- string
- number/integer
- nested lists/objects