enhancementgood first issueintegrationnew-featurenew-integration
Repository-Metriken
- Stars
- (1.930 Sterne)
- PR-Merge-Metriken
- (PR-Metriken ausstehend)
Beschreibung
Description
Add Airtable integration to sync bases, tables, records, and views data into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/google-sheets/- Similar spreadsheet/database integrationintegrations/notion/- Similar database/workspace integrationintegrations/linear/- Project management integration
Required Files Structure
integrations/airtable/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Airtable API utilities
│ ├── account-create.ts # OAuth / PAT setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Airtable Web API Integration
OAuth Setup
- Use OAuth 2.0 or Personal Access Token (PAT)
- OAuth 2.0 for third-party integrations
- Required scopes:
data.records:read,data.recordComments:read,schema.bases:read - Base URL:
https://api.airtable.com/v0
Key Endpoints
GET /v0/meta/bases- List all basesGET /v0/meta/bases/{baseId}/tables- List tables in a baseGET /v0/{baseId}/{tableIdOrName}- List records in a tableGET /v0/{baseId}/{tableIdOrName}/{recordId}- Get a specific recordGET /v0/meta/bases/{baseId}/views- List views in a baseGET /v0/{baseId}/{tableIdOrName}/comments- List record comments
Events to Track
- Records - Created, updated, deleted records across tables
- Tables - New tables, schema changes, field additions
- Bases - New bases created, base updates
- Comments - Comments added to records
- Views - New views created, view configuration changes
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 / PAT authentication in
account-create.ts - Create API utilities in
utils.tswith Airtable Web API client - Implement sync logic in
schedule.tsfor bases, tables, records - Convert Airtable data to CORE activity format
- Add error handling and rate limiting (5 req/sec/base)
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- REST API with JSON responses
- Rate limit: 5 requests per second per base (applies across all pricing tiers)
- Pagination returns max 100 records per request, use
offsetparameter for next page - Supports
filterByFormulafor server-side filtering - Supports
sortparameter for server-side sorting - Interactive API documentation available at
https://airtable.com/api(base-specific) - Official JavaScript client:
airtable.json npm - Field types include text, number, attachments, linked records, formulas, etc.
- Use
returnFieldsByFieldIdparameter for stable field references - Webhooks available for real-time change notifications
Resources
- Airtable Web API Introduction
- Airtable Developers Portal
- Getting Started with Airtable API
- Airtable API Support
- Airtable.js Client Library
Labels
enhancement, integration, new-feature