Airtable Bubble
Airtable integration for managing records in bases and tables
Quick Start
import { AirtableBubble } from '@bubblelab/bubble-core';
import { CredentialType } from '@bubblelab/shared-schemas';
const result = await new AirtableBubble({
operation: 'list_records',
credentials: {
[CredentialType.AIRTABLE_CRED]: process.env.AIRTABLE_CRED as string,
},
}).action();
Operation Details
list_records
- Input Schema
- Output Schema
operation'list_records' required- List records from an Airtable table with filtering and sorting
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
fieldsstring[]- Array of field names to include in results (returns all fields if not specified)
filterByFormulastring- Airtable formula to filter records (e.g., "{Status} = 'Done'")
maxRecordsnumber- Maximum number of records to return (1-100, returns all if not specified)
pageSizenumber- Number of records per page for pagination (1-100)
sortobject[]- Array of sort specifications to order records
viewstring- View name or ID to use (includes view's filters and sorts)
cellFormat'json' | 'string'- Format for cell values: json (structured) or string (formatted)
timeZonestring- Time zone for date/time fields (e.g., "America/Los_Angeles")
userLocalestring- Locale for formatting (e.g., "en-US")
offsetstring- Pagination offset from previous response
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'list_records' required- List records from an Airtable table with filtering and sorting
okboolean required- Whether the Airtable API call was successful
recordsobject[]- Array of record objects
offsetstring- Pagination offset for retrieving next page of results
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
get_record
- Input Schema
- Output Schema
operation'get_record' required- Retrieve a single record by its ID
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
recordIdstring required- Record ID to retrieve (starts with rec)
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'get_record' required- Retrieve a single record by its ID
okboolean required- Whether the Airtable API call was successful
recordobject- Record object
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
create_records
- Input Schema
- Output Schema
operation'create_records' required- Create one or more new records in an Airtable table
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
recordsobject[] required- Array of records to create (max 10 per request)
typecastboolean- Automatically convert field values to the appropriate type
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'create_records' required- Create one or more new records in an Airtable table
okboolean required- Whether the Airtable API call was successful
recordsobject[]- Array of created record objects
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
update_records
- Input Schema
- Output Schema
operation'update_records' required- Update existing records in an Airtable table
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
recordsobject[] required- Array of records to update (max 10 per request)
typecastboolean- Automatically convert field values to the appropriate type
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'update_records' required- Update existing records in an Airtable table
okboolean required- Whether the Airtable API call was successful
recordsobject[]- Array of updated record objects
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
delete_records
- Input Schema
- Output Schema
operation'delete_records' required- Delete one or more records from an Airtable table
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
recordIdsstring[] required- Array of record IDs to delete (max 10 per request)
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'delete_records' required- Delete one or more records from an Airtable table
okboolean required- Whether the Airtable API call was successful
recordsobject[]- Array of deletion confirmation objects
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
list_bases
- Input Schema
- Output Schema
operation'list_bases' required- List all bases accessible with the current API key
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'list_bases' required- List all bases accessible with the current API key
okboolean required- Whether the Airtable API call was successful
basesobject[]- Array of base objects
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
get_base_schema
- Input Schema
- Output Schema
operation'get_base_schema' required- Get the schema for a specific base including all tables and fields
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'get_base_schema' required- Get the schema for a specific base including all tables and fields
okboolean required- Whether the Airtable API call was successful
tablesobject[]- Array of table schemas
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
create_table
- Input Schema
- Output Schema
operation'create_table' required- Create a new table in an Airtable base
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
namestring required- Name for the new table
descriptionstring- Optional description for the table
fieldsobject[] required- Array of field definitions for the table
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'create_table' required- Create a new table in an Airtable base
okboolean required- Whether the Airtable API call was successful
tableobject- Created table object
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
update_table
- Input Schema
- Output Schema
operation'update_table' required- Update table properties like name and description
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
namestring- New name for the table
descriptionstring- New description for the table
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'update_table' required- Update table properties like name and description
okboolean required- Whether the Airtable API call was successful
tableobject- Updated table object
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
create_field
- Input Schema
- Output Schema
operation'create_field' required- Create a new field in an Airtable table
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
namestring required- Name for the new field
type'singleLineText' | 'multilineText' | 'richText' | 'email' | 'url' | 'phoneNumber' | 'number' | 'percent' | 'currency' | 'rating' | 'duration' | 'singleSelect' | 'multipleSelects' | 'singleCollaborator' | 'multipleCollaborators' | 'date' | 'dateTime' | 'checkbox' | 'multipleRecordLinks' | 'multipleAttachments' | 'barcode' | 'button' | 'formula' | 'createdTime' | 'lastModifiedTime' | 'createdBy' | 'lastModifiedBy' | 'autoNumber' | 'externalSyncSource' | 'count' | 'lookup' | 'rollup' required- Field type
descriptionstring- Field description
optionsRecord<string,unknown>- Field-specific options
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'create_field' required- Create a new field in an Airtable table
okboolean required- Whether the Airtable API call was successful
fieldobject- Created field object
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful
update_field
- Input Schema
- Output Schema
operation'update_field' required- Update field properties like name, type, or description
baseIdstring required- Airtable base ID (e.g., appXXXXXXXXXXXXXX)
tableIdOrNamestring required- Table ID (e.g., tblXXXXXXXXXXXXXX) or table name
fieldIdOrNamestring required- Field ID (e.g., fldXXXXXXXXXXXXXX) or field name
namestring- New name for the field
descriptionstring- New description for the field
credentialsRecord<CredentialType,string>- Object mapping credential types to values (injected at runtime)
operation'update_field' required- Update field properties like name, type, or description
okboolean required- Whether the Airtable API call was successful
fieldobject- Updated field object
errorstring- Error message if operation failed
successboolean required- Whether the operation was successful