Sapilon becomes publicly available on 15 November 2026: 34 days to go. The core goes open source the same day →

Airtable integration

In short

Read, create and update records in your bases. Connect it on the Integrations page; your app then calls Airtable through Sapilon without ever holding a Airtable credential.

Lets your app list bases and tables and read, create and update records in the bases you grant access to.

Connecting

On the Integrations page choose Connect on Airtable, sign in to Airtable and allow access.

Or connect with a key instead — fill in:

  • Personal access token — airtable.com/create/tokens → create a token with data.records:read/write and schema.bases:read, and add the bases it may use.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

  • Airtable asks which bases to share; your app sees only those.

What your app can do

Only these requests are available; anything else is refused.

  • GET /meta/bases
  • GET /meta/bases/app*/tables
  • GET|POST|PATCH /app*/*
  • GET|PATCH /app*/*/rec*

How the agent uses it

Use integrations.request('airtable', …); paths are relative to https://api.airtable.com/v0.

  • GET /meta/bases — bases the connection can see. Example: { method: 'GET', path: '/meta/bases' }.
  • GET /meta/bases/{baseId}/tables — tables and fields. Example: { method: 'GET', path: '/meta/bases/appXyz/tables' }.
  • GET|POST|PATCH /{baseId}/{table} — list, create (body: { records: [{ fields }] }) or update many records. Example: { method: 'GET', path: '/appXyz/Customers', query: { maxRecords: '50' } }.
  • GET|PATCH /{baseId}/{table}/{recordId} — one record. Example: { method: 'PATCH', path: '/appXyz/Customers/recAbc', body: { fields: { Status: 'Active' } } }.

Base ids start with app, record ids with rec. Deleting records is not allowed.

More from Airtable: https://airtable.com/developers/web/api/introduction

Last updated .

Was this page helpful?