Airtable-kobling
Koble Airtable-basene dine til Brevo for CRM-synkronisering, administrasjon av produktkatalog og automatiserte markedsføringsarbeidsflyter drevet av strukturerte data gjennom Tajo.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | Airtable |
| Kategori | Custom |
| Oppsettskompleksitet | Enkel |
| Offisiell integrasjon | Nei |
| Synkroniserte data | Poster, tabeller, brukere |
| API-type | REST API |
| Autentisering | Personal Access Token / OAuth 2.0 |
| Base URL | https://api.airtable.com/v0/ |
Funksjoner
- Tabell-til-liste-synkronisering - Synkroniser Airtable-tabellposter direkte til Brevo-kontaktlister
- Produktkatalog-bro - Bruk Airtable-tabeller som produktkataloger for e-postanbefalinger
- CRM-synkronisering - Toveis synkronisering mellom Airtable CRM og Brevo-kontakter
- Hendelser for skjemainnsending - Videresend Airtable-skjemainnsendinger som Brevo-hendelser
- Visningsbasert filtrering - Synkroniser spesifikke Airtable-visninger til målrettede Brevo-lister
- Webhook-automatisering - Utløs Brevo-kampanjer når Airtable-poster endres
Forutsetninger
Før du begynner, sørg for at du har:
- En Airtable-konto (Free-plan eller høyere)
- En Personal Access Token eller OAuth-app konfigurert
- Tilgang til basene og tabellene du vil synkronisere
- En Brevo-konto med API-tilgang
- En Tajo-konto med aktivt abonnement
Autentisering
Airtable støtter Personal Access Tokens og OAuth 2.0.
Alternativ 1: Personal Access Token (anbefalt)
- Gå til airtable.com/create/tokens
- Klikk Create new token
- Gi den navnet “Tajo Integration”
- Legg til scopes:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- Legg til tilgang til spesifikke baser eller alle baser
- Klikk Create token
Alternativ 2: OAuth 2.0
For integrasjoner med flere brukere, bruk OAuth 2.0-flyten:
- Registrer integrasjonen din på airtable.com/create/oauth
- Konfigurer redirect URI:
https://app.tajo.io/callbacks/airtable - Be om de samme scopene som over
Token-scoping
Personal Access Tokens kan begrenses til spesifikke baser. Av sikkerhetshensyn gir du kun tilgang til basene integrasjonen din trenger i stedet for å velge “All current and future bases.”
Koble til Tajo
tajo connectors install airtable \ --token $AIRTABLE_TOKENKonfigurasjon
Grunnleggende oppsett
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
Mapp 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_DATEVisningsbasert 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-endepunkter
Tajo integreres med følgende Airtable Web API-endepunkter:
| Endepunkt | Metode | Formål |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | List poster i en tabell |
/v0/{baseId}/{tableIdOrName} | POST | Opprett poster |
/v0/{baseId}/{tableIdOrName} | PATCH | Oppdater poster |
/v0/{baseId}/{tableIdOrName} | DELETE | Slett poster |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | Hent én post |
/v0/meta/bases | GET | List tilgjengelige baser |
/v0/meta/bases/{baseId}/tables | GET | List tabeller i en base |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | List postkommentarer |
/v0/bases/{baseId}/webhooks | POST | Opprett en webhook |
/v0/bases/{baseId}/webhooks | GET | List webhooks |
Kodeeksempler
Initialiser kobling
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});Synkroniser tabell 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åndter 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');});Opprett 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] } }); }});Hastighetsgrenser
Airtable håndhever hastighetsgrenser per base:
| Type grense | Verdi |
|---|---|
| API-hastighetsgrense | 5 forespørsler per sekund per base |
| Poster per forespørsel | Maks 100 poster (list), maks 10 poster (opprett/oppdater) |
| Webhook-payloader | 50 payloader per listWebhookPayloads-kall |
| Forespørselsstørrelse | Maks payload ~2MB |
Batch-operasjoner
Airtable tillater opprettelse eller oppdatering av opptil 10 poster per forespørsel. Tajo batcher automatisk større operasjoner i flere forespørsler samtidig som hastighetsgrenser respekteres.
Feilsøking
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig eller utløpt token | Generer Personal Access Token på nytt |
| 403 Forbidden | Token mangler base-tilgang | Legg til basen i tokenets scope |
| 404 Not Found | Ugyldig base- eller tabell-ID | Verifiser base-ID og tabellnavn |
| 422 Invalid Request | Felttype-mismatch | Sjekk at Airtable-felttyper matcher dataene dine |
| Hastighetsgrense overskredet | Mer enn 5 req/s per base | Reduser synkroniseringsfrekvens eller stagger base-synkroniseringer |
Feilsøkingsmodus
connectors: airtable: debug: true log_level: verbose log_api_calls: trueTest tilkobling
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableBeste praksis
- Begrens tokens til spesifikke baser - Ikke gi tilgang til alle baser med mindre det er nødvendig
- Bruk visninger for filtrert synkronisering - Synkroniser spesifikke visninger i stedet for hele tabeller for å redusere datavolum
- Batch postoperasjoner - Grupper opprettelser og oppdateringer i batcher på 10
- Håndter paginering - Airtable returnerer 100 poster per side; iterer med
offset - Bruk webhooks for sanntid - Registrer webhooks i stedet for polling for endringer
- Mapp felttyper presist - Match Airtable-felttyper (select, number, date) med Brevo-attributttyper
Sikkerhet
- Personal Access Tokens - Begrenset til spesifikke baser og operasjoner
- OAuth 2.0 - Sikker autorisasjonsflyt med refresh tokens
- Kun HTTPS - All API-kommunikasjon kryptert via TLS 1.2+
- Tilgangskontroll på base-nivå - Tokens begrenset til individuelle baser
- Kryptert lagring - Tokens kryptert i ro i Tajo
- HMAC-verifisering av webhooks - Verifiser ektheten av webhook-varsler