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

EgenskapVerdi
PlattformAirtable
KategoriCustom
OppsettskompleksitetEnkel
Offisiell integrasjonNei
Synkroniserte dataPoster, tabeller, brukere
API-typeREST API
AutentiseringPersonal Access Token / OAuth 2.0
Base URLhttps://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:

  1. En Airtable-konto (Free-plan eller høyere)
  2. En Personal Access Token eller OAuth-app konfigurert
  3. Tilgang til basene og tabellene du vil synkronisere
  4. En Brevo-konto med API-tilgang
  5. En Tajo-konto med aktivt abonnement

Autentisering

Airtable støtter Personal Access Tokens og OAuth 2.0.

Alternativ 1: Personal Access Token (anbefalt)

  1. Gå til airtable.com/create/tokens
  2. Klikk Create new token
  3. Gi den navnet “Tajo Integration”
  4. Legg til scopes:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. Legg til tilgang til spesifikke baser eller alle baser
  2. Klikk Create token

Alternativ 2: OAuth 2.0

For integrasjoner med flere brukere, bruk OAuth 2.0-flyten:

  1. Registrer integrasjonen din på airtable.com/create/oauth
  2. Konfigurer redirect URI: https://app.tajo.io/callbacks/airtable
  3. 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

Terminal window
tajo connectors install airtable \
--token $AIRTABLE_TOKEN

Konfigurasjon

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_DATE

Visningsbasert 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: true

API-endepunkter

Tajo integreres med følgende Airtable Web API-endepunkter:

EndepunktMetodeFormål
/v0/{baseId}/{tableIdOrName}GETList poster i en tabell
/v0/{baseId}/{tableIdOrName}POSTOpprett poster
/v0/{baseId}/{tableIdOrName}PATCHOppdater poster
/v0/{baseId}/{tableIdOrName}DELETESlett poster
/v0/{baseId}/{tableIdOrName}/{recordId}GETHent én post
/v0/meta/basesGETList tilgjengelige baser
/v0/meta/bases/{baseId}/tablesGETList tabeller i en base
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETList postkommentarer
/v0/bases/{baseId}/webhooksPOSTOpprett en webhook
/v0/bases/{baseId}/webhooksGETList 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 list
await 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 cursor
app.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 converts
tajo.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 grenseVerdi
API-hastighetsgrense5 forespørsler per sekund per base
Poster per forespørselMaks 100 poster (list), maks 10 poster (opprett/oppdater)
Webhook-payloader50 payloader per listWebhookPayloads-kall
ForespørselsstørrelseMaks 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ÅrsakLøsning
401 UnauthorizedUgyldig eller utløpt tokenGenerer Personal Access Token på nytt
403 ForbiddenToken mangler base-tilgangLegg til basen i tokenets scope
404 Not FoundUgyldig base- eller tabell-IDVerifiser base-ID og tabellnavn
422 Invalid RequestFelttype-mismatchSjekk at Airtable-felttyper matcher dataene dine
Hastighetsgrense overskredetMer enn 5 req/s per baseReduser synkroniseringsfrekvens eller stagger base-synkroniseringer

Feilsøkingsmodus

connectors:
airtable:
debug: true
log_level: verbose
log_api_calls: true

Test tilkobling

Terminal window
tajo connectors test airtable
# ✓ API authentication successful
# ✓ Base access verified
# ✓ Table schema readable
# ✓ Record listing operational
# ✓ Webhook registration available

Beste praksis

  1. Begrens tokens til spesifikke baser - Ikke gi tilgang til alle baser med mindre det er nødvendig
  2. Bruk visninger for filtrert synkronisering - Synkroniser spesifikke visninger i stedet for hele tabeller for å redusere datavolum
  3. Batch postoperasjoner - Grupper opprettelser og oppdateringer i batcher på 10
  4. Håndter paginering - Airtable returnerer 100 poster per side; iterer med offset
  5. Bruk webhooks for sanntid - Registrer webhooks i stedet for polling for endringer
  6. 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

Relaterte ressurser

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-assistent

Hei! Spør meg om dokumentasjonen.