Airtable Manager
Create, read, update, and delete records in Airtable — manage data, CRM, and project tracking.
You have access to Airtable through the OpenLabor connector API.
How to Execute Airtable Actions
use airtable <TOOL_NAME> '<json_args>'
Getting Started
List All Bases
- Tool:
AIRTABLE_LIST_BASES
- Args:
{}
Get Base Schema
- Tool:
AIRTABLE_GET_BASE_SCHEMA
- Args:
{ "baseId": "appXXXXXXXXXXXXXX" }
Get User Info
- Tool:
AIRTABLE_GET_USER_INFO
- Args:
{}
Records
List Records
- Tool:
AIRTABLE_LIST_RECORDS
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table Name", "pageSize": "100" }
- Optional:
"filterByFormula", "sort", "fields", "view", "maxRecords"
- Filter example:
"filterByFormula": "{Status} = 'Active'"
- Sort example:
"sort": [{"field": "Created", "direction": "desc"}]
Get Single Record
- Tool:
AIRTABLE_GET_RECORD
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordId": "recXXX" }
Create Records (up to 10)
- Tool:
AIRTABLE_CREATE_RECORDS
- Args:
{
"baseId": "appXXX",
"tableIdOrName": "Table Name",
"records": [
{ "fields": { "Name": "John", "Email": "john@example.com", "Status": "New" } }
]
}
Create Record from Natural Language
- Tool:
AIRTABLE_CREATE_RECORD_FROM_NATURAL_LANGUAGE
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Contacts", "nl_query": "Add John Smith, email john@smith.com, status is new lead" }
Update Records
- Tool:
AIRTABLE_UPDATE_RECORD
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordId": "recXXX", "fields": { "Status": "Contacted" } }
- PATCH update — only modifies specified fields
Update Multiple Records
- Tool:
AIRTABLE_UPDATE_MULTIPLE_RECORDS
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table Name", "records": [{ "id": "recXXX", "fields": { "Status": "Done" } }] }
Delete Record
- Tool:
AIRTABLE_DELETE_RECORD
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordId": "recXXX" }
Delete Multiple Records
- Tool:
AIRTABLE_DELETE_MULTIPLE_RECORDS
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordIds": ["recXXX", "recYYY"] }
Tables & Fields
Create Table
- Tool:
AIRTABLE_CREATE_TABLE
- Args:
{ "baseId": "appXXX", "name": "Leads", "fields": [{ "name": "Name", "type": "singleLineText" }, { "name": "Email", "type": "email" }] }
Create Field
- Tool:
AIRTABLE_CREATE_FIELD
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Leads", "name": "Score", "type": "number" }
Comments
Add Comment
- Tool:
AIRTABLE_CREATE_COMMENT
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table", "recordId": "recXXX", "text": "Following up on this" }
List Comments
- Tool:
AIRTABLE_LIST_COMMENTS
- Args:
{ "baseId": "appXXX", "tableIdOrName": "Table", "recordId": "recXXX" }
Use Cases
As a CRM
- Track leads, contacts, deals in Airtable tables
- Filter by status:
"filterByFormula": "{Stage} = 'Qualified'"
- Update deal stages as they progress
- Add notes via comments on records
As a Content Calendar
- Create records for each piece of content
- Track status (Draft → Review → Published)
- Filter by date and platform
- Link to published posts
As a Project Tracker
- List tasks by assignee or status
- Update completion status
- Add comments for updates
Guidelines
- Rate limit: 5 requests/second per base
- Max 10 records per create/update/delete batch
- Use
AIRTABLE_CREATE_RECORDS (not the deprecated singular versions)
- Always get the base schema first to understand available tables and fields
- If you get a 400 "not connected" error, tell the user to connect Airtable in the Apps tab
1---2name: airtable-manager3description: Create, read, update, and delete records in Airtable bases — manage data, CRM, and project tracking via Composio4---56<!-- openlabor-connector: airtable, api_key={{INTERNAL_API_KEY}}, employee={{EMPLOYEE_ID}}, base={{API_BASE_URL}} -->78# Airtable Manager910Create, read, update, and delete records in Airtable — manage data, CRM, and project tracking.1112You have access to Airtable through the OpenLabor connector API.1314## How to Execute Airtable Actions1516```17use airtable <TOOL_NAME> '<json_args>'18```1920## Getting Started2122### List All Bases23- Tool: `AIRTABLE_LIST_BASES`24- Args: `{}`2526### Get Base Schema27- Tool: `AIRTABLE_GET_BASE_SCHEMA`28- Args: `{ "baseId": "appXXXXXXXXXXXXXX" }`2930### Get User Info31- Tool: `AIRTABLE_GET_USER_INFO`32- Args: `{}`3334## Records3536### List Records37- Tool: `AIRTABLE_LIST_RECORDS`38- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table Name", "pageSize": "100" }`39- Optional: `"filterByFormula"`, `"sort"`, `"fields"`, `"view"`, `"maxRecords"`40- Filter example: `"filterByFormula": "{Status} = 'Active'"`41- Sort example: `"sort": [{"field": "Created", "direction": "desc"}]`4243### Get Single Record44- Tool: `AIRTABLE_GET_RECORD`45- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordId": "recXXX" }`4647### Create Records (up to 10)48- Tool: `AIRTABLE_CREATE_RECORDS`49- Args:50```json51{52 "baseId": "appXXX",53 "tableIdOrName": "Table Name",54 "records": [55 { "fields": { "Name": "John", "Email": "john@example.com", "Status": "New" } }56 ]57}58```5960### Create Record from Natural Language61- Tool: `AIRTABLE_CREATE_RECORD_FROM_NATURAL_LANGUAGE`62- Args: `{ "baseId": "appXXX", "tableIdOrName": "Contacts", "nl_query": "Add John Smith, email john@smith.com, status is new lead" }`6364### Update Records65- Tool: `AIRTABLE_UPDATE_RECORD`66- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordId": "recXXX", "fields": { "Status": "Contacted" } }`67- PATCH update — only modifies specified fields6869### Update Multiple Records70- Tool: `AIRTABLE_UPDATE_MULTIPLE_RECORDS`71- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table Name", "records": [{ "id": "recXXX", "fields": { "Status": "Done" } }] }`7273### Delete Record74- Tool: `AIRTABLE_DELETE_RECORD`75- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordId": "recXXX" }`7677### Delete Multiple Records78- Tool: `AIRTABLE_DELETE_MULTIPLE_RECORDS`79- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table Name", "recordIds": ["recXXX", "recYYY"] }`8081## Tables & Fields8283### Create Table84- Tool: `AIRTABLE_CREATE_TABLE`85- Args: `{ "baseId": "appXXX", "name": "Leads", "fields": [{ "name": "Name", "type": "singleLineText" }, { "name": "Email", "type": "email" }] }`8687### Create Field88- Tool: `AIRTABLE_CREATE_FIELD`89- Args: `{ "baseId": "appXXX", "tableIdOrName": "Leads", "name": "Score", "type": "number" }`9091## Comments9293### Add Comment94- Tool: `AIRTABLE_CREATE_COMMENT`95- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table", "recordId": "recXXX", "text": "Following up on this" }`9697### List Comments98- Tool: `AIRTABLE_LIST_COMMENTS`99- Args: `{ "baseId": "appXXX", "tableIdOrName": "Table", "recordId": "recXXX" }`100101## Use Cases102103### As a CRM104- Track leads, contacts, deals in Airtable tables105- Filter by status: `"filterByFormula": "{Stage} = 'Qualified'"`106- Update deal stages as they progress107- Add notes via comments on records108109### As a Content Calendar110- Create records for each piece of content111- Track status (Draft → Review → Published)112- Filter by date and platform113- Link to published posts114115### As a Project Tracker116- List tasks by assignee or status117- Update completion status118- Add comments for updates119120## Guidelines1211. Rate limit: 5 requests/second per base1222. Max 10 records per create/update/delete batch1233. Use `AIRTABLE_CREATE_RECORDS` (not the deprecated singular versions)1244. Always get the base schema first to understand available tables and fields1255. If you get a 400 "not connected" error, tell the user to connect Airtable in the Apps tab