Airtable-connector

Verbind je Airtable-bases met Brevo voor CRM-synchronisatie, productcatalogusbeheer en geautomatiseerde marketingworkflows, aangestuurd door gestructureerde data via Tajo.

Overzicht

EigenschapWaarde
PlatformAirtable
CategorieCustom
SetupcomplexiteitEenvoudig
Officiële integratieNee
Gesynchroniseerde dataRecords, Tabellen, Gebruikers
API-typeREST API
AuthenticatiePersonal Access Token / OAuth 2.0
Base URLhttps://api.airtable.com/v0/

Functies

  • Tabel-naar-lijst-sync - Synchroniseer Airtable-tabelrecords rechtstreeks naar Brevo-contactlijsten
  • Productcatalogusbrug - Gebruik Airtable-tabellen als productcatalogi voor e-mailaanbevelingen
  • CRM-synchronisatie - Bidirectionele sync tussen Airtable CRM en Brevo-contacten
  • Formulierinzending-events - Stuur Airtable-formulierinzendingen door als Brevo-events
  • Viewgebaseerde filtering - Synchroniseer specifieke Airtable-views naar gerichte Brevo-lijsten
  • Webhook-automatisering - Trigger Brevo-campagnes wanneer Airtable-records wijzigen

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Airtable-account (Free-plan of hoger)
  2. Een Personal Access Token of geconfigureerde OAuth-app
  3. Toegang tot de bases en tabellen die je wilt synchroniseren
  4. Een Brevo-account met API-toegang
  5. Een Tajo-account met een actief abonnement

Authenticatie

Airtable ondersteunt Personal Access Tokens en OAuth 2.0.

Optie 1: Personal Access Token (aanbevolen)

  1. Ga naar airtable.com/create/tokens
  2. Klik op Create new token
  3. Noem het “Tajo Integration”
  4. Voeg scopes toe:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. Voeg toegang toe tot specifieke bases of alle bases
  2. Klik op Create token

Optie 2: OAuth 2.0

Gebruik voor multi-user-integraties de OAuth 2.0-flow:

  1. Registreer je integratie op airtable.com/create/oauth
  2. Configureer de redirect URI: https://app.tajo.io/callbacks/airtable
  3. Vraag dezelfde scopes aan als hierboven

Token-scoping

Personal Access Tokens kunnen worden beperkt tot specifieke bases. Geef voor de veiligheid alleen toegang tot de bases die je integratie nodig heeft, en selecteer niet “All current and future bases”.

Verbinden met Tajo

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

Configuratie

Basisinstelling

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"

Veldmapping

Map Airtable-velden naar Brevo-contactattributen:

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

Viewgebaseerde sync

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 integreert met de volgende Airtable Web API-endpoints:

EndpointMethodDoel
/v0/{baseId}/{tableIdOrName}GETLijst records in een tabel
/v0/{baseId}/{tableIdOrName}POSTRecords aanmaken
/v0/{baseId}/{tableIdOrName}PATCHRecords bijwerken
/v0/{baseId}/{tableIdOrName}DELETERecords verwijderen
/v0/{baseId}/{tableIdOrName}/{recordId}GETHaal één record op
/v0/meta/basesGETLijst toegankelijke bases
/v0/meta/bases/{baseId}/tablesGETLijst tabellen in een base
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETLijst recordreacties
/v0/bases/{baseId}/webhooksPOSTMaak een webhook aan
/v0/bases/{baseId}/webhooksGETLijst webhooks

Codevoorbeelden

Connector initialiseren

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

Tabel synchroniseren naar 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
// }

Webhooks afhandelen

// 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');
});

Record aanmaken vanuit 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 hanteert rate limits per base:

Type limietWaarde
API rate limit5 requests per seconde per base
Records per requestMax. 100 records (list), max. 10 records (create/update)
Webhook-payloads50 payloads per listWebhookPayloads-call
RequestgroottePayload max. ~2MB

Batch-operaties

Airtable staat toe dat je tot 10 records per request aanmaakt of bijwerkt. Tajo batcht grotere operaties automatisch in meerdere requests en respecteert daarbij de rate limits.

Probleemoplossing

Veelvoorkomende problemen

ProbleemOorzaakOplossing
401 UnauthorizedOngeldig of verlopen tokenRegenereer Personal Access Token
403 ForbiddenToken mist base-toegangVoeg de base toe aan de scope van je token
404 Not FoundOngeldig base- of tabel-IDControleer base-ID en tabelnaam
422 Invalid RequestMismatch in veldtypeControleer of Airtable-veldtypes overeenkomen met je data
Rate limit exceededMeer dan 5 req/s per baseVerlaag de syncfrequentie of spreid base-syncs

Debugmodus

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

Verbinding testen

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

Best practices

  1. Scope tokens tot specifieke bases - Geef geen toegang tot alle bases tenzij nodig
  2. Gebruik views voor gefilterde sync - Synchroniseer specifieke views in plaats van volledige tabellen om datavolume te beperken
  3. Batch record-operaties - Groepeer creates en updates in batches van 10
  4. Handel paginering af - Airtable retourneert 100 records per pagina; itereer met offset
  5. Gebruik webhooks voor realtime - Registreer webhooks in plaats van te pollen op wijzigingen
  6. Map veldtypes nauwkeurig - Laat Airtable-veldtypes (select, number, date) overeenkomen met Brevo-attribuuttypes

Beveiliging

  • Personal Access Tokens - Gescoped tot specifieke bases en operaties
  • OAuth 2.0 - Veilige autorisatieflow met refresh tokens
  • Alleen HTTPS - Alle API-communicatie versleuteld via TLS 1.2+
  • Base-level toegangscontrole - Tokens gescoped tot individuele bases
  • Encrypted storage - Tokens versleuteld opgeslagen bij Tajo
  • Webhook-HMAC-verificatie - Verifieer de echtheid van webhook-notificaties

Gerelateerde bronnen

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.