- Add date_added to all 950+ skills for complete tracking - Update version to 6.5.0 in package.json and README - Regenerate all indexes and catalog - Sync all generated files Features from merged PR #150: - Stars/Upvotes system for community-driven discovery - Auto-update mechanism via START_APP.bat - Interactive Prompt Builder - Date tracking badges - Smart auto-categorization All skills validated and indexed. Made-with: Cursor
175 lines
6.5 KiB
Markdown
175 lines
6.5 KiB
Markdown
---
|
|
name: airtable-automation
|
|
description: "Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas."
|
|
risk: unknown
|
|
source: community
|
|
date_added: "2026-02-27"
|
|
---
|
|
|
|
# Airtable Automation via Rube MCP
|
|
|
|
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
|
|
|
|
## Prerequisites
|
|
|
|
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
|
|
- Active Airtable connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `airtable`
|
|
- Always call `RUBE_SEARCH_TOOLS` first 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.
|
|
|
|
|
|
1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
|
|
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `airtable`
|
|
3. If connection is not ACTIVE, follow the returned auth link to complete Airtable auth
|
|
4. 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**:
|
|
1. `AIRTABLE_LIST_BASES` - Discover available bases [Prerequisite]
|
|
2. `AIRTABLE_GET_BASE_SCHEMA` - Inspect table structure [Prerequisite]
|
|
3. `AIRTABLE_LIST_RECORDS` - List/filter records [Optional]
|
|
4. `AIRTABLE_CREATE_RECORD` / `AIRTABLE_CREATE_RECORDS` - Create records [Optional]
|
|
5. `AIRTABLE_UPDATE_RECORD` / `AIRTABLE_UPDATE_MULTIPLE_RECORDS` - Update records [Optional]
|
|
6. `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 name
|
|
- `fields`: Object mapping field names to values
|
|
- `recordId`: Record ID (starts with 'rec') for updates/deletes
|
|
- `filterByFormula`: Airtable formula for filtering
|
|
- `typecast`: 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**:
|
|
1. `AIRTABLE_GET_BASE_SCHEMA` - Verify field names and types [Prerequisite]
|
|
2. `AIRTABLE_LIST_RECORDS` - Query with filterByFormula [Required]
|
|
3. `AIRTABLE_GET_RECORD` - Get full record details [Optional]
|
|
|
|
**Key parameters**:
|
|
- `filterByFormula`: Airtable formula (e.g., `{Status}='Done'`)
|
|
- `sort`: Array of sort objects
|
|
- `fields`: Array of field names to return
|
|
- `maxRecords`: Max total records across all pages
|
|
- `offset`: 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**:
|
|
1. `AIRTABLE_GET_BASE_SCHEMA` - Inspect current schema [Prerequisite]
|
|
2. `AIRTABLE_CREATE_FIELD` - Create a new field [Optional]
|
|
3. `AIRTABLE_UPDATE_FIELD` - Rename/describe a field [Optional]
|
|
4. `AIRTABLE_UPDATE_TABLE` - Update table metadata [Optional]
|
|
|
|
**Key parameters**:
|
|
- `name`: Field name
|
|
- `type`: 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**:
|
|
1. `AIRTABLE_LIST_COMMENTS` - List comments on a record [Required]
|
|
|
|
**Key parameters**:
|
|
- `baseId`: Base ID
|
|
- `tableIdOrName`: Table identifier
|
|
- `recordId`: 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 conditions
|
|
- `OR({A}='x', {A}='y')` - Either condition
|
|
- `FIND('test', {Name})>0` - Contains text
|
|
- `IS_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 `offset` string
|
|
- Pass `offset` to 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 |
|
|
|
|
## When to Use
|
|
This skill is applicable to execute the workflow or actions described in the overview.
|