Airtable-koppling

Anslut dina Airtable-baser till Brevo för CRM-synkronisering, hantering av produktkatalog och automatiserade marknadsföringsflöden som drivs av strukturerad data via Tajo.

Översikt

EgenskapVärde
PlattformAirtable
KategoriAnpassad
InstallationskomplexitetEnkel
Officiell integrationNej
Data som synkasPoster, tabeller, användare
API-typREST API
AutentiseringPersonal Access Token / OAuth 2.0
Bas-URLhttps://api.airtable.com/v0/

Funktioner

  • Synk från tabell till lista - Synka Airtables tabellposter direkt till Brevo-kontaktlistor
  • Brygga för produktkatalog - Använd Airtable-tabeller som produktkataloger för e-postrekommendationer
  • CRM-synkronisering - Dubbelriktad synk mellan Airtable CRM och Brevo-kontakter
  • Händelser för formulärsvar - Vidarebefordra Airtable-formulärsvar som Brevo-händelser
  • Vy-baserad filtrering - Synka specifika Airtable-vyer till målinriktade Brevo-listor
  • Webhook-automation - Utlös Brevo-kampanjer när Airtable-poster ändras

Förutsättningar

Innan du börjar, se till att du har:

  1. Ett Airtable-konto (Free-plan eller högre)
  2. En Personal Access Token eller OAuth-app konfigurerad
  3. Åtkomst till baserna och tabellerna du vill synkronisera
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto med aktivt abonnemang

Autentisering

Airtable stöder Personal Access Tokens och OAuth 2.0.

Alternativ 1: Personal Access Token (rekommenderas)

  1. Gå till airtable.com/create/tokens
  2. Klicka på Create new token
  3. Namnge den “Tajo Integration”
  4. Lägg till scopes:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. Lägg till åtkomst till specifika baser eller alla baser
  2. Klicka på Create token

Alternativ 2: OAuth 2.0

För integrationer med flera användare, använd OAuth 2.0-flödet:

  1. Registrera din integration på airtable.com/create/oauth
  2. Konfigurera redirect-URI: https://app.tajo.io/callbacks/airtable
  3. Begär samma scopes som ovan

Scope för tokens

Personal Access Tokens kan scopas till specifika baser. Av säkerhetsskäl ska du endast bevilja åtkomst till de baser din integration behöver istället för att välja “All current and future bases.”

Ansluta till Tajo

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

Konfiguration

Grundinställning

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"

Fältmappning

Mappa Airtable-fält till Brevo-kontaktattribut:

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

Vy-baserad synk

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 integrerar med följande endpoints i Airtables Web API:

EndpointMetodSyfte
/v0/{baseId}/{tableIdOrName}GETLista poster i en tabell
/v0/{baseId}/{tableIdOrName}POSTSkapa poster
/v0/{baseId}/{tableIdOrName}PATCHUppdatera poster
/v0/{baseId}/{tableIdOrName}DELETERadera poster
/v0/{baseId}/{tableIdOrName}/{recordId}GETHämta en enstaka post
/v0/meta/basesGETLista tillgängliga baser
/v0/meta/bases/{baseId}/tablesGETLista tabeller i en bas
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETLista postkommentarer
/v0/bases/{baseId}/webhooksPOSTSkapa en webhook
/v0/bases/{baseId}/webhooksGETLista webhooks

Kodexempel

Initiera kopplingen

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

Synka tabell till 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
// }

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

Skapa post från 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]
}
});
}
});

Hastighetsbegränsningar

Airtable tillämpar hastighetsbegränsningar per bas:

Typ av gränsVärde
API-hastighetsbegränsning5 förfrågningar per sekund per bas
Poster per förfråganMax 100 poster (list), max 10 poster (skapa/uppdatera)
Webhook-nyttolaster50 nyttolaster per listWebhookPayloads-anrop
FörfrågningsstorlekMax ~2MB nyttolast

Batch-operationer

Airtable tillåter att du skapar eller uppdaterar upp till 10 poster per förfrågan. Tajo batchar automatiskt större operationer till flera förfrågningar samtidigt som hastighetsbegränsningar respekteras.

Felsökning

Vanliga problem

ProblemOrsakLösning
401 UnauthorizedOgiltig eller utgången tokenÅtergenerera Personal Access Token
403 ForbiddenToken saknar basåtkomstLägg till basen i tokens scope
404 Not FoundOgiltigt bas- eller tabell-IDVerifiera bas-ID och tabellnamn
422 Invalid RequestInkompatibel fälttypKontrollera att Airtables fälttyper matchar din data
Hastighetsbegränsning överskridenFler än 5 förfrågningar/sek per basMinska synkfrekvensen eller förskjut synkar mellan baser

Felsökningsläge

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

Testa anslutning

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

Bästa praxis

  1. Scope tokens till specifika baser - Bevilja inte åtkomst till alla baser om det inte är nödvändigt
  2. Använd vyer för filtrerad synk - Synka specifika vyer istället för hela tabeller för att minska datavolym
  3. Batcha postoperationer - Gruppera skapa- och uppdateraoperationer i batcher om 10
  4. Hantera paginering - Airtable returnerar 100 poster per sida; iterera med offset
  5. Använd webhooks för realtid - Registrera webhooks istället för att polla efter ändringar
  6. Mappa fälttyper exakt - Matcha Airtables fälttyper (select, number, date) till Brevo-attributtyper

Säkerhet

  • Personal Access Tokens - Scopade till specifika baser och operationer
  • OAuth 2.0 - Säkert auktoriseringsflöde med refresh-tokens
  • Endast HTTPS - All API-kommunikation krypterad via TLS 1.2+
  • Åtkomstkontroll på basnivå - Tokens scopade till individuella baser
  • Krypterad lagring - Tokens krypterade i vila i Tajo
  • HMAC-verifiering av webhooks - Verifiera äktheten i webhook-notiser

Relaterade resurser

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Fråga mig om dokumentationen.