Airtable Connector
Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.
Illustration · eksempeldata
Eksempel på synkronisering
Kilde
Airtable
Connectorstatus: Planlagt
Destination
Dit andet værktøj
Connectorstatus: Eget værktøj
Feltmapping
| Kildefelt | Destinationsfelt | Eksempelværdi |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Udkast
- Gennemse én post
- Godkend denne version
Status gælder den enkelte connector og garanterer ikke, at denne synkronisering er klar. Felterne er illustrative. Tjek det faktiske skema og tilladelser før en synkronisering.
Forbind dine Airtable-baser med Brevo for CRM-synkronisering, produktkatalogstyring og automatiserede marketing-workflows drevet af strukturerede data gennem Tajo.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Airtable |
| Kategori | Brugerdefineret |
| Opsætningskompleksitet | Let |
| Officiel integration | Nej |
| Synkroniserede data | Poster, tabeller, brugere |
| API-type | REST API |
| Autentifikation | Personal Access Token / OAuth 2.0 |
| Base-URL | https://api.airtable.com/v0/ |
Funktioner
- Tabel-til-liste-synkronisering - Synkronisér Airtable-tabelposter direkte til Brevo-kontaktlister
- Produktkatalogsbro - Brug Airtable-tabeller som produktkataloger til e-mailanbefalinger
- CRM-synkronisering - Tovejssynkronisering mellem Airtable CRM og Brevo-kontakter
- Formularindsendelseshændelser - Videresend Airtable-formularindsendelser som Brevo-hændelser
- Visningsbaseret filtrering - Synkronisér specifikke Airtable-visninger til målrettede Brevo-lister
- Webhook-automatisering - Udløs Brevo-kampagner, når Airtable-poster ændres
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Airtable-konto (Free-plan eller derover)
- Et Personal Access Token eller en OAuth-app konfigureret
- Adgang til de baser og tabeller, du vil synkronisere
- En Brevo-konto med API-adgang
- En Tajo-konto med aktivt abonnement
Autentifikation
Airtable understøtter Personal Access Tokens og OAuth 2.0.
Mulighed 1: Personal Access Token (anbefalet)
- Gå til airtable.com/create/tokens
- Klik på Create new token
- Navngiv det “Tajo Integration”
- Tilføj scopes:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- Tilføj adgang til specifikke baser eller alle baser
- Klik på Create token
Mulighed 2: OAuth 2.0
Til integrationer med flere brugere skal du bruge OAuth 2.0-flowet:
- Registrér din integration på airtable.com/create/oauth
- Konfigurér redirect-URI:
https://app.tajo.io/callbacks/airtable - Anmod om de samme scopes som ovenfor
Token-scoping
Personal Access Tokens kan scopes til specifikke baser. Af hensyn til sikkerheden bør du kun give adgang til de baser, din integration har brug for, i stedet for at vælge “All current and future bases”.
Forbind til Tajo
tajo connectors install airtable \ --token $AIRTABLE_TOKENKonfiguration
Grundlæggende opsætning
connectors: airtable: enabled: true
sync: records: true comments: false
tables: - base_id: "appXXXXXXXXXXXXXX" table_name: "Customers" view: "Active Customers" sync_to_list: 28 - base_id: "appXXXXXXXXXXXXXX" table_name: "Products" sync_as: "catalog"Feltmapping
Kortlæg Airtable-felter til Brevo-kontaktattributter:
field_mapping: # Airtable field -> Brevo attribute Name: FIRSTNAME Email: email Phone: SMS Company: COMPANY Status: LEAD_STATUS Revenue: TOTAL_REVENUE "Last Contact": LAST_CONTACT_DATE Tags: TAGS Notes: NOTES "Created Time": SIGNUP_DATEVisningsbaseret synkronisering
views: - base_id: "appXXXXXXXXXXXXXX" table_name: "Customers" view: "High Value" sync_to_list: 29 filter_by_view: true
- base_id: "appXXXXXXXXXXXXXX" table_name: "Customers" view: "Churned" sync_to_list: 30 filter_by_view: trueAPI-endpoints
Tajo integrerer med følgende Airtable Web API-endpoints:
| Endpoint | Metode | Formål |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | Vis poster i en tabel |
/v0/{baseId}/{tableIdOrName} | POST | Opret poster |
/v0/{baseId}/{tableIdOrName} | PATCH | Opdatér poster |
/v0/{baseId}/{tableIdOrName} | DELETE | Slet poster |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | Hent en enkelt post |
/v0/meta/bases | GET | Vis tilgængelige baser |
/v0/meta/bases/{baseId}/tables | GET | Vis tabeller i en base |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | Vis postkommentarer |
/v0/bases/{baseId}/webhooks | POST | Opret en webhook |
/v0/bases/{baseId}/webhooks | GET | Vis webhooks |
Kodeeksempler
Initialisér connector
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
await tajo.connectors.connect('airtable', { token: process.env.AIRTABLE_TOKEN});Synkronisér tabel til Brevo
// Sync an Airtable table to a Brevo listawait tajo.connectors.sync('airtable', { type: 'full', resources: ['records'], baseId: 'appXXXXXXXXXXXXXX', tableName: 'Customers', view: 'Active Customers', targetList: 28});
const status = await tajo.connectors.status('airtable');console.log(status);// {// connected: true,// lastSync: '2024-03-15T15:00:00Z',// recordsSynced: 2340,// tablesMonitored: 2,// basesConnected: 1// }Håndtér webhooks
// Airtable webhooks notify of changes; fetch details with cursorapp.post('/webhooks/airtable', async (req, res) => { const { base, webhook, timestamp } = req.body;
// Fetch changed records using webhook cursor const changes = await tajo.connectors.getWebhookPayloads('airtable', { baseId: base.id, webhookId: webhook.id, cursor: timestamp });
for (const change of changes) { await tajo.connectors.handleEvent('airtable', { type: change.actionType, payload: change }); }
res.status(200).send('OK');});Opret post fra Brevo
// Create an Airtable record when a Brevo contact convertstajo.events.on('contact.attribute_updated', async (event) => { if (event.attribute === 'LIFECYCLE_STAGE' && event.value === 'customer') { await tajo.connectors.create('airtable', { baseId: 'appXXXXXXXXXXXXXX', tableName: 'Customers', fields: { Name: event.contact.name, Email: event.contact.email, Status: 'Customer', 'Converted Date': new Date().toISOString().split('T')[0] } }); }});Rate limits
Airtable håndhæver rate limits pr. base:
| Grænsetype | Værdi |
|---|---|
| API-rate-limit | 5 anmodninger pr. sekund pr. base |
| Poster pr. anmodning | Maks. 100 poster (list), maks. 10 poster (opret/opdatér) |
| Webhook-payloads | 50 payloads pr. listWebhookPayloads-kald |
| Anmodningsstørrelse | Maks. payload ~2 MB |
Batch-operationer
Airtable tillader oprettelse eller opdatering af op til 10 poster pr. anmodning. Tajo batcher automatisk større operationer i flere anmodninger, samtidig med at rate limits respekteres.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldigt eller udløbet token | Regenerér Personal Access Token |
| 403 Forbidden | Token mangler base-adgang | Tilføj basen til dit tokens scope |
| 404 Not Found | Ugyldigt base- eller tabel-ID | Verificér base-ID og tabelnavn |
| 422 Invalid Request | Felttypemismatch | Kontrollér, at Airtable-felttyper matcher dine data |
| Rate limit overskredet | Mere end 5 anmodninger/sek. pr. base | Reducér synkroniseringsfrekvensen eller fordel base-synkroniseringer |
Debug-tilstand
connectors: airtable: debug: true log_level: verbose log_api_calls: trueTestforbindelse
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableBedste praksis
- Scopes tokens til specifikke baser - Giv ikke adgang til alle baser, medmindre det er nødvendigt
- Brug visninger til filtreret synkronisering - Synkronisér specifikke visninger i stedet for fulde tabeller for at reducere datamængden
- Batch postoperationer - Gruppér oprettelser og opdateringer i batches på 10
- Håndtér paginering - Airtable returnerer 100 poster pr. side; itérér med
offset - Brug webhooks til realtid - Registrér webhooks i stedet for at polle efter ændringer
- Kortlæg felttyper præcist - Match Airtable-felttyper (select, number, date) til Brevo-attributtyper
Sikkerhed
- Personal Access Tokens - Scopes til specifikke baser og operationer
- OAuth 2.0 - Sikkert autorisationsflow med refresh-tokens
- Kun HTTPS - Al API-kommunikation krypteres via TLS 1.2+
- Adgangskontrol på base-niveau - Tokens scopes til individuelle baser
- Krypteret opbevaring - Tokens krypteres i hvile i Tajo
- Webhook-HMAC-verifikation - Verificér ægtheden af webhook-notifikationer