Airtable
Bring structured data to Chainabit with record CRUD and base access.
| Family | Category | Sub-type | Auth type | Trending score |
|---|---|---|---|---|
| Productivity | database | no-code-db | bearer_token | 79 |
Overview
| Product URL | API docs | Supported features |
|---|---|---|
| https://www.airtable.com/ | https://www.airtable.com/developers/web/api/introduction | tool_discovery, health_check, approval_gated_writes |
Setup
- Install the connector instance.
- Store the provider token or connection secret.
- Sync the tools and test the connection.
- Review approval-gated write tools before running them.
Auth & Configuration
| Field | Required | Type | Notes |
|---|---|---|---|
baseId | Yes | string | Default Airtable base ID used by the instance. |
Example config
json
{
"baseId": "appXXXXXXXXXXXX"
}- Set
baseIdin the instance config before syncing tools.
Available Tools
| Tool | Requires approval | Description |
|---|---|---|
list_tables | No | List tables in a base using Airtable metadata. |
list_records | No | List records from a table with optional filtering. |
get_record | No | Retrieve a single Airtable record by ID. |
create_record | Yes | Create a new record in Airtable. |
update_record | Yes | Update an existing Airtable record. |
delete_record | Yes | Delete an Airtable record by ID. |
Use list_tables for the main execution example below because it is safe to run without approval.
Examples
Install
bash
chainabit connectors install airtable --name "Airtable" --config '{"baseId":"appXXXXXXXXXXXX"}'bash
curl -X POST "$BASE_URL/connectors/instances" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"connectorKey": "airtable",
"displayName": "Airtable",
"config": {
"baseId": "appXXXXXXXXXXXX"
}
}'javascript
const response = await fetch(`${BASE_URL}/connectors/instances`, {
method: 'POST',
headers: {
Authorization: `Bearer ${TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"connectorKey": "airtable",
"displayName": "Airtable",
"config": {
"baseId": "appXXXXXXXXXXXX"
}
}),
});Credentials
bash
chainabit connectors auth <instance-id>bash
curl -X POST "$BASE_URL/connectors/instances/<instance-id>/credentials" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"credType": "bearer_token",
"credentials": {
"token": "YOUR_BEARER_TOKEN"
}
}'javascript
await fetch(`${BASE_URL}/connectors/instances/<instance-id>/credentials`, {
method: 'POST',
headers: {
Authorization: `Bearer ${TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"credType": "bearer_token",
"credentials": {
"token": "YOUR_BEARER_TOKEN"
}
}),
});Execute
bash
chainabit connectors exec <instance-id> list_tables --input '{}'bash
curl -X POST "$BASE_URL/connectors/instances/<instance-id>/tools/tool_list_tables/execute" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"input": {}
}'javascript
const response = await fetch(
`${BASE_URL}/connectors/instances/<instance-id>/tools/tool_list_tables/execute`,
{
method: 'POST',
headers: {
Authorization: `Bearer ${TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"input": {}
}),
},
);Security Notes
- Keep tokens, API keys, and connection strings in the encrypted credentials vault.
- Do not allow arbitrary server URLs for remote MCP connectors.
- Mutating tools are approval-gated. Review the payload before executing them.
- Set
baseIdin the instance config before syncing tools.
Troubleshooting
- If the health check fails, verify the token scope or credential payload and try again.
- If the tool list is empty, re-run sync-tools after storing the latest credentials.