Airtable lets you register an OAuth integration in Builder Hub, on any plan. This guide covers registering it, choosing scopes, and connecting it to Caddi.
Airtable refresh tokens expire after 60 days of non-use. If a connection sits idle past that, the authorization is effectively revoked and the user has to reconnect — there's no silent recovery. Worth knowing if you set up a loop that only runs occasionally.
Before you start
You'll need:
Owner or Creator permissions in Airtable — available on all plan types
Owner or Admin access to your Caddi organization
On Airtable Enterprise: API access for third-party integrations enabled in the admin panel, or the integration will not work regardless of configuration
Step 1: Register the OAuth integration in Builder Hub
Go to airtable.com/create/oauth, or from the Airtable home screen click your profile icon → Builder Hub → OAuth integrations → Register an OAuth integration.
Integration name —
CaddiRedirect URL — enter
https://app.trycaddi.com/oauth-callback. HTTPS is required; multiple URLs are allowed.Select the Scopes (see below).
Fill in the support information fields. Other users cannot authorize the integration until these are complete — an easy thing to skip and then puzzle over.
Copy the Client ID.
Click Generate a client secret and copy it immediately. Airtable states the secret is not recoverable.
Step 2: Choose scopes
Airtable's scope names are explicit about what they grant. The set below gives full read and write on data and schema without touching enterprise administration.
Do not request anything prefixed enterprise., and avoid workspacesAndBases:write, :manage, or .shares:manage. Those are the administration tier.
data.records:readanddata.records:write— see and modify record datadata.recordComments:readanddata.recordComments:write— record commentsschema.bases:readandschema.bases:write— read and modify base structurewebhook:manage— only if a loop uses webhooksworkspacesAndBases:read— add this if Caddi needs to list your bases for a pickeruser.email:read— add this only if you need to identify the user
If you skip schema.bases:write, Caddi can read and write records but cannot add fields or tables.
Step 3: Configure Airtable in Caddi
This step must be completed by a Caddi organization owner or admin.
In Caddi, open Integrations in the left sidebar, then click the Integration Setup tab at the top of the page. This tab is only visible to organization owners and admins.
Find Airtable in the list and click Configure.
Enter the following values:
Client ID — from your Airtable OAuth integration
Client Secret — the value shown once when you generated it
OAuth Scopes — space-separated list matching what you selected on the integration. Leave blank to use Caddi's defaults.
Click Save Configuration. Caddi validates the credentials immediately — if something is wrong you'll see an error right away, and nothing is stored until validation passes.
Step 4: Connect your account
Go back to the My Connections tab and find Airtable.
Click Connect + and sign in to Airtable.
Choose what to grant. Airtable lets the user pick individual bases, one or more whole workspaces (covering current and future bases in them), or everything. Selecting workspaces rather than individual bases means new bases work without reconnecting.
Approve the request. You'll be returned to Caddi with the connection active.
How the connection behaves
Grants are user-chosen and can be narrow. Caddi sees only the bases the user picked. If a base is missing, the user needs to reconnect and widen the grant.
Access tokens last 60 minutes and refresh automatically.
Refresh tokens rotate on every use and expire after 60 days of non-use. An idle connection past 60 days requires a fresh authorization, not a refresh.
A custom connection replaces the standard one. Members of your organization will only see the option to connect through your app.
Revoking access. Delete the integration in Builder Hub, or have users revoke it from their Airtable account. Enterprise admins can also revoke grants from the admin panel.
Troubleshooting
Other users can't authorize the integration
The support information fields in Builder Hub aren't complete. Airtable gates third-party authorization on them.
A loop can't find a base the user has access to
That base wasn't included in the grant. Have the user reconnect and select the base, or select the whole workspace so future bases are covered too.
A connection that hadn't run in a couple of months stopped working
The refresh token passed its 60-day idle expiry. The user needs to reconnect. If the loop runs infrequently by design, consider scheduling a lightweight run inside the window.
The client secret was lost
Airtable secrets are not recoverable. Generate a new one in Builder Hub and update the configuration in Caddi.
The integration doesn't work at all on an Enterprise plan
API access for third-party integrations is disabled in the Airtable enterprise admin panel. An Airtable admin needs to enable it.
Still stuck? Contact Caddi support with the exact error message you're seeing and the time it occurred.
Automation ideas
Law Firms
Intake form → tracked matter row
Caddi writes new enquiries into your Airtable intake base with the fields normalized, and creates the follow-up task.
Airtable status change → downstream action
When a record's status changes, Caddi carries out the next step — creating the matter, sending the engagement letter, or updating the DMS.
RIAs
Prospect pipeline → CRM sync
Caddi keeps your Airtable pipeline and CRM records aligned so the same prospect isn't tracked twice with different detail.
