> ## Documentation Index
> Fetch the complete documentation index at: https://university.triggr-app.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Airtable

> Connect Airtable to Triggr with an Airtable OAuth integration, authorised for your own account and each client's.

Triggr lists, reads, creates, updates and deletes Airtable records, and lists bases with their tables and fields.

## Set up Airtable

Register the integration in an Airtable account your team will keep. Whoever authorises it needs Owner or Creator permissions on the bases Triggr should use.

<Steps>
  <Step title="Register the integration">
    Go to [airtable.com/create/oauth](https://airtable.com/create/oauth), click **Register new OAuth integration**, enter a name users will recognise and this redirect URL, then click Register integration:

    ```text theme={null}
    https://app.triggr-app.com/oauth/callback
    ```
  </Step>

  <Step title="Select the scopes">
    Under Permission scopes, select all four: `data.records:read`, `data.records:write`, `schema.bases:read` and `schema.bases:write`.
  </Step>

  <Step title="Add your sharing details">
    Fill in Support email, Privacy policy URL and Terms of service URL, then click Save changes. Without them, only you can authorise the integration.
  </Step>

  <Step title="Generate a client secret">
    Click Generate client secret, then copy the secret and the client ID. Airtable shows the secret only once.
  </Step>
</Steps>

See Airtable's guide to [OAuth integrations](https://airtable.com/developers/web/guides/oauth-integrations).

## Connect it in Triggr

<Steps>
  <Step title="Open the integration">
    Go to **Integrations > Airtable** and click **Configure** on the Base Configuration card.

    <Frame>
      <img src="https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/base-configuration.png?fit=max&auto=format&n=nyuVXZ1rouDTTEvu&q=85&s=bb81acb082055015f91beda7b4876f35" alt="The Base Configuration card with Status Not Configured, Admin Consent Not Required and a Configure button." width="2272" height="330" data-path="images/integrations-common/base-configuration.png" />
    </Frame>
  </Step>

  <Step title="Enter the credentials">
    Enter the ClientID and ClientSecret, then click **Save Configuration**. Every client uses these.

    <Frame>
      <img src="https://mintcdn.com/triggr/MwzXHG3UWzFixdSz/images/airtable/configure.png?fit=max&auto=format&n=MwzXHG3UWzFixdSz&q=85&s=a94b6f713af2dba9b8186a51cd3627b0" alt="The Airtable configuration window with ClientID and ClientSecret fields, an Allow insecure TLS switch under Advanced, and a Save Configuration button." width="1344" height="1126" data-path="images/airtable/configure.png" />
    </Frame>
  </Step>

  <Step title="Authorize your own account">
    For workflows that don't run for a client, click **Authorize** on the Base Configuration card. In Airtable, click Add a base, choose the bases or workspaces Triggr can reach, then click Authorize.
  </Step>

  <Step title="Authorize each client">
    On the Per-Client Configuration card, click Configure on the client's row and click Save Configuration (there are no fields). Then click **Authorize** on the row and grant only that client's bases or workspaces.

    <Frame>
      <img src="https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/per-client-configuration.png?fit=max&auto=format&n=nyuVXZ1rouDTTEvu&q=85&s=11464b4946bea0b580c73330d9114a41" alt="The Per-Client Configuration card listing Acme Corp and Globex, each Not Configured with Admin Consent Not Required and a Configure button." width="2272" height="646" data-path="images/integrations-common/per-client-configuration.png" />
    </Frame>
  </Step>
</Steps>

Airtable signs in as whoever your browser is signed in as, so sign out of Airtable first to authorise someone else. Per-client integrations never fall back to the Base Configuration, so each client needs its own authorised row.

## Use Airtable in workflows

The baseId (`app…`), tableIdOrName (`tbl…`) and recordId (`rec…`) are in the browser's address bar in Airtable. List Records returns up to 100 records; pass the returned `offset` for the next page. The update actions change only the fields you send; their (Destructive) versions clear every field you leave out.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authorization fails">
    If Airtable shows an error, check OAuth redirect URI is exactly `https://app.triggr-app.com/oauth/callback`. If Triggr shows Missing required OAuth parameters with `invalid_scope`, select all four scopes; with `access_denied`, add your sharing details or ask the client's Airtable enterprise admin to allow the integration.
  </Accordion>

  <Accordion title="Failed to process authorization callback">
    ClientID and ClientSecret don't match the Airtable integration, or the secret was regenerated. Paste the current values in via Edit on the Base Configuration card, then click Authorize and finish within 10 minutes.
  </Accordion>

  <Accordion title="A client has no Airtable integration configured, or no refresh token">
    Configure the client on the Per-Client Configuration card, then click Authorize on its row.
  </Accordion>

  <Accordion title="Authentication errors (401)">
    The authorisation was revoked in Airtable or went unused for 60 days. Click Authorize again.
  </Accordion>

  <Accordion title="Permission errors (403)">
    Check the baseId and tableIdOrName, and that the base was granted. List Bases shows only the bases Triggr can reach; click Authorize again to add one.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.