Airtable Connector

Forbind dine Airtable-baser med Brevo for CRM-synkronisering, produktkatalogstyring og automatiserede marketing-workflows drevet af strukturerede data gennem Tajo.

Oversigt

EgenskabVærdi
PlatformAirtable
KategoriBrugerdefineret
OpsætningskompleksitetLet
Officiel integrationNej
Synkroniserede dataPoster, tabeller, brugere
API-typeREST API
AutentifikationPersonal Access Token / OAuth 2.0
Base-URLhttps://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:

  1. En Airtable-konto (Free-plan eller derover)
  2. Et Personal Access Token eller en OAuth-app konfigureret
  3. Adgang til de baser og tabeller, du vil synkronisere
  4. En Brevo-konto med API-adgang
  5. En Tajo-konto med aktivt abonnement

Autentifikation

Airtable understøtter Personal Access Tokens og OAuth 2.0.

Mulighed 1: Personal Access Token (anbefalet)

  1. Gå til airtable.com/create/tokens
  2. Klik på Create new token
  3. Navngiv det “Tajo Integration”
  4. Tilføj scopes:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. Tilføj adgang til specifikke baser eller alle baser
  2. Klik på Create token

Mulighed 2: OAuth 2.0

Til integrationer med flere brugere skal du bruge OAuth 2.0-flowet:

  1. Registrér din integration på airtable.com/create/oauth
  2. Konfigurér redirect-URI: https://app.tajo.io/callbacks/airtable
  3. 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

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

Konfiguration

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_DATE

Visningsbaseret 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-endpoints

Tajo integrerer med følgende Airtable Web API-endpoints:

EndpointMetodeFormål
/v0/{baseId}/{tableIdOrName}GETVis poster i en tabel
/v0/{baseId}/{tableIdOrName}POSTOpret poster
/v0/{baseId}/{tableIdOrName}PATCHOpdatér poster
/v0/{baseId}/{tableIdOrName}DELETESlet poster
/v0/{baseId}/{tableIdOrName}/{recordId}GETHent en enkelt post
/v0/meta/basesGETVis tilgængelige baser
/v0/meta/bases/{baseId}/tablesGETVis tabeller i en base
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETVis postkommentarer
/v0/bases/{baseId}/webhooksPOSTOpret en webhook
/v0/bases/{baseId}/webhooksGETVis 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 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åndtér 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');
});

Opret 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]
}
});
}
});

Rate limits

Airtable håndhæver rate limits pr. base:

GrænsetypeVærdi
API-rate-limit5 anmodninger pr. sekund pr. base
Poster pr. anmodningMaks. 100 poster (list), maks. 10 poster (opret/opdatér)
Webhook-payloads50 payloads pr. listWebhookPayloads-kald
AnmodningsstørrelseMaks. 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ÅrsagLøsning
401 UnauthorizedUgyldigt eller udløbet tokenRegenerér Personal Access Token
403 ForbiddenToken mangler base-adgangTilføj basen til dit tokens scope
404 Not FoundUgyldigt base- eller tabel-IDVerificér base-ID og tabelnavn
422 Invalid RequestFelttypemismatchKontrollér, at Airtable-felttyper matcher dine data
Rate limit overskredetMere end 5 anmodninger/sek. pr. baseReducér synkroniseringsfrekvensen eller fordel base-synkroniseringer

Debug-tilstand

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

Testforbindelse

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

Bedste praksis

  1. Scopes tokens til specifikke baser - Giv ikke adgang til alle baser, medmindre det er nødvendigt
  2. Brug visninger til filtreret synkronisering - Synkronisér specifikke visninger i stedet for fulde tabeller for at reducere datamængden
  3. Batch postoperationer - Gruppér oprettelser og opdateringer i batches på 10
  4. Håndtér paginering - Airtable returnerer 100 poster pr. side; itérér med offset
  5. Brug webhooks til realtid - Registrér webhooks i stedet for at polle efter ændringer
  6. 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

Relaterede ressourcer

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Spørg mig om dokumentationen.