airtable-automation
npx machina-cli add skill davepoon/buildwithclaude/airtable-automation --openclawAirtable Automation via Rube MCP
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/airtable
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Airtable connection via
RUBE_MANAGE_CONNECTIONSwith toolkitairtable - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitairtable - If connection is not ACTIVE, follow the returned auth link to complete Airtable auth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Records
When to use: User wants to create, read, update, or delete records
Tool sequence:
AIRTABLE_LIST_BASES- Discover available bases [Prerequisite]AIRTABLE_GET_BASE_SCHEMA- Inspect table structure [Prerequisite]AIRTABLE_LIST_RECORDS- List/filter records [Optional]AIRTABLE_CREATE_RECORD/AIRTABLE_CREATE_RECORDS- Create records [Optional]AIRTABLE_UPDATE_RECORD/AIRTABLE_UPDATE_MULTIPLE_RECORDS- Update records [Optional]AIRTABLE_DELETE_RECORD/AIRTABLE_DELETE_MULTIPLE_RECORDS- Delete records [Optional]
Key parameters:
baseId: Base ID (starts with 'app', e.g., 'appXXXXXXXXXXXXXX')tableIdOrName: Table ID (starts with 'tbl') or table namefields: Object mapping field names to valuesrecordId: Record ID (starts with 'rec') for updates/deletesfilterByFormula: Airtable formula for filteringtypecast: Set true for automatic type conversion
Pitfalls:
- pageSize capped at 100; uses offset pagination; changing filters between pages can skip/duplicate rows
- CREATE_RECORDS hard limit of 10 records per request; chunk larger imports
- Field names are CASE-SENSITIVE and must match schema exactly
- 422 UNKNOWN_FIELD_NAME when field names are wrong; 403 for permission issues
- INVALID_MULTIPLE_CHOICE_OPTIONS may require typecast=true
2. Search and Filter Records
When to use: User wants to find specific records using formulas
Tool sequence:
AIRTABLE_GET_BASE_SCHEMA- Verify field names and types [Prerequisite]AIRTABLE_LIST_RECORDS- Query with filterByFormula [Required]AIRTABLE_GET_RECORD- Get full record details [Optional]
Key parameters:
filterByFormula: Airtable formula (e.g.,{Status}='Done')sort: Array of sort objectsfields: Array of field names to returnmaxRecords: Max total records across all pagesoffset: Pagination cursor from previous response
Pitfalls:
- Field names in formulas must be wrapped in
{}and match schema exactly - String values must be quoted:
{Status}='Active'not{Status}=Active - 422 INVALID_FILTER_BY_FORMULA for bad syntax or non-existent fields
- Airtable rate limit: ~5 requests/second per base; handle 429 with Retry-After
3. Manage Fields and Schema
When to use: User wants to create or modify table fields
Tool sequence:
AIRTABLE_GET_BASE_SCHEMA- Inspect current schema [Prerequisite]AIRTABLE_CREATE_FIELD- Create a new field [Optional]AIRTABLE_UPDATE_FIELD- Rename/describe a field [Optional]AIRTABLE_UPDATE_TABLE- Update table metadata [Optional]
Key parameters:
name: Field nametype: Field type (singleLineText, number, singleSelect, etc.)options: Type-specific options (choices for select, precision for number)description: Field description
Pitfalls:
- UPDATE_FIELD only changes name/description, NOT type/options; create a replacement field and migrate
- Computed fields (formula, rollup, lookup) cannot be created via API
- 422 when type options are missing or malformed
4. Manage Comments
When to use: User wants to view or add comments on records
Tool sequence:
AIRTABLE_LIST_COMMENTS- List comments on a record [Required]
Key parameters:
baseId: Base IDtableIdOrName: Table identifierrecordId: Record ID (17 chars, starts with 'rec')pageSize: Comments per page (max 100)
Pitfalls:
- Record IDs must be exactly 17 characters starting with 'rec'
Common Patterns
Airtable Formula Syntax
Comparison:
{Status}='Done'- Equals{Priority}>1- Greater than{Name}!=''- Not empty
Functions:
AND({A}='x', {B}='y')- Both conditionsOR({A}='x', {A}='y')- Either conditionFIND('test', {Name})>0- Contains textIS_BEFORE({Due Date}, TODAY())- Date comparison
Escape rules:
- Single quotes in values: double them (
{Name}='John''s Company')
Pagination
- Set
pageSize(max 100) - Check response for
offsetstring - Pass
offsetto next request unchanged - Keep filters/sorts/view stable between pages
Known Pitfalls
ID Formats:
- Base IDs:
appXXXXXXXXXXXXXX(17 chars) - Table IDs:
tblXXXXXXXXXXXXXX(17 chars) - Record IDs:
recXXXXXXXXXXXXXX(17 chars) - Field IDs:
fldXXXXXXXXXXXXXX(17 chars)
Batch Limits:
- CREATE_RECORDS: max 10 per request
- UPDATE_MULTIPLE_RECORDS: max 10 per request
- DELETE_MULTIPLE_RECORDS: max 10 per request
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List bases | AIRTABLE_LIST_BASES | (none) |
| Get schema | AIRTABLE_GET_BASE_SCHEMA | baseId |
| List records | AIRTABLE_LIST_RECORDS | baseId, tableIdOrName |
| Get record | AIRTABLE_GET_RECORD | baseId, tableIdOrName, recordId |
| Create record | AIRTABLE_CREATE_RECORD | baseId, tableIdOrName, fields |
| Create records | AIRTABLE_CREATE_RECORDS | baseId, tableIdOrName, records |
| Update record | AIRTABLE_UPDATE_RECORD | baseId, tableIdOrName, recordId, fields |
| Update records | AIRTABLE_UPDATE_MULTIPLE_RECORDS | baseId, tableIdOrName, records |
| Delete record | AIRTABLE_DELETE_RECORD | baseId, tableIdOrName, recordId |
| Create field | AIRTABLE_CREATE_FIELD | baseId, tableIdOrName, name, type |
| Update field | AIRTABLE_UPDATE_FIELD | baseId, tableIdOrName, fieldId |
| Update table | AIRTABLE_UPDATE_TABLE | baseId, tableIdOrName, name |
| List comments | AIRTABLE_LIST_COMMENTS | baseId, tableIdOrName, recordId |
Powered by Composio
Source
git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/airtable-automation/SKILL.mdView on GitHub Overview
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP. This skill covers creating, reading, updating, and deleting records, plus managing bases, tables, fields, and views. Always start by calling RUBE_SEARCH_TOOLS to fetch current tool schemas.
How This Skill Works
Connect to Airtable through Rube MCP using the airtable toolkit and verify the connection with RUBE_MANAGE_CONNECTIONS. Begin by ensuring RUBE_SEARCH_TOOLS is available to fetch current schemas, then use tool sequences like AIRTABLE_LIST_BASES, AIRTABLE_GET_BASE_SCHEMA, and CRUD actions (CREATE_RECORDS, UPDATE_RECORD, DELETE_RECORD) to perform tasks. The workflow follows the core workflows in the skill: manage records, search/filter records, and manage fields/schema.
When to Use It
- Create, read, update, or delete Airtable records across bases
- Query and filter records using filterByFormula with optional sorting
- Inspect and modify table schemas and fields
- Bulk create or update multiple records (respecting the 10-record per request limit)
- Validate base schemas before automations to prevent field/mapping errors
Quick Start
- Step 1: Verify Rube MCP is available by calling RUBE_SEARCH_TOOLS
- Step 2: Call RUBE_MANAGE_CONNECTIONS with toolkit airtable and complete Airtable auth if prompted
- Step 3: Run a test sequence (e.g., AIRTABLE_LIST_BASES, AIRTABLE_GET_BASE_SCHEMA) to validate setup
Best Practices
- Always verify RUBE_SEARCH_TOOLS responds before executing actions
- Use AIRTABLE_GET_BASE_SCHEMA to confirm field names and types prior to updates
- Respect the 10-record limit for CREATE_RECORDS and chunk larger imports
- Field names are CASE-SENSITIVE and must match the schema exactly
- Handle Airtable rate limits (approx 5 requests/sec) and 429 responses with Retry-After
Example Use Cases
- Create a new customer record in a Customers base after a signup event
- Update order status across multiple records in an Orders table
- Filter active projects and retrieve full details for reporting
- Bulk import a batch of records by chunking into multiple CREATE_RECORDS calls
- Rename a field or update its description via the manage Fields and Schema workflow
Frequently Asked Questions
Related Skills
box-automation
davepoon/buildwithclaude
Automate Box cloud storage operations including file upload/download, search, folder management, sharing, collaborations, and metadata queries via Rube MCP (Composio). Always search tools first for current schemas.
dropbox-automation
davepoon/buildwithclaude
Automate Dropbox file management, sharing, search, uploads, downloads, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.
google-drive-automation
davepoon/buildwithclaude
Automate Google Drive file operations (upload, download, search, share, organize) via Rube MCP (Composio). Upload/download files, manage folders, share with permissions, and search across drives programmatically.
notion-automation
davepoon/buildwithclaude
Automate Notion tasks via Rube MCP (Composio): pages, databases, blocks, comments, users. Always search tools first for current schemas.
one-drive-automation
davepoon/buildwithclaude
Automate OneDrive file management, search, uploads, downloads, sharing, permissions, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.
confluence-automation
davepoon/buildwithclaude
Automate Confluence page creation, content search, space management, labels, and hierarchy navigation via Rube MCP (Composio). Always search tools first for current schemas.