enhancementgood first issueintegrationnew-featurenew-integration
Métriques du dépôt
- Stars
- (1 930 étoiles)
- Métriques de merge PR
- (Merge moyen 3h 2m) (10 PRs mergées en 30 j)
Description
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