Airtable konektor
Prepoj svoje Airtable bázy s Brevo pre CRM synchronizáciu, správu produktového katalógu a automatizované marketingové workflowy poháňané štruktúrovanými dátami cez Tajo.
Prehľad
| Vlastnosť | Hodnota |
|---|---|
| Platforma | Airtable |
| Kategória | Vlastná |
| Zložitosť nastavenia | Ľahké |
| Oficiálna integrácia | Nie |
| Synchronizované dáta | Záznamy, Tabuľky, Používatelia |
| Typ API | REST API |
| Autentifikácia | Personal Access Token / OAuth 2.0 |
| Base URL | https://api.airtable.com/v0/ |
Funkcie
- Synchronizácia tabuľky so zoznamom - Synchronizuj záznamy tabuľky Airtable priamo do zoznamov kontaktov v Brevo
- Most produktového katalógu - Použi tabuľky Airtable ako produktové katalógy pre e-mailové odporúčania
- CRM synchronizácia - Obojsmerná synchronizácia medzi CRM Airtable a kontaktmi Brevo
- Udalosti odoslania formulára - Preposielaj odoslania formulárov Airtable ako udalosti v Brevo
- Filtrovanie podľa zobrazenia - Synchronizuj konkrétne zobrazenia Airtable do cielených zoznamov Brevo
- Webhook automatizácia - Spúšťaj kampane Brevo pri zmene záznamov v Airtable
Predpoklady
Predtým, než začneš, uisti sa, že máš:
- Airtable účet (Free plán alebo vyšší)
- Nakonfigurovaný Personal Access Token alebo OAuth aplikáciu
- Prístup k bádam a tabuľkám, ktoré chceš synchronizovať
- Brevo účet s API prístupom
- Tajo účet s aktívnym predplatným
Autentifikácia
Airtable podporuje Personal Access Tokens a OAuth 2.0.
Možnosť 1: Personal Access Token (odporúčané)
- Choď na airtable.com/create/tokens
- Klikni na Create new token
- Pomenuj ho “Tajo Integration”
- Pridaj scopes:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- Pridaj prístup ku konkrétnym bázam alebo všetkým bázam
- Klikni na Create token
Možnosť 2: OAuth 2.0
Pre integrácie s viacerými používateľmi použi OAuth 2.0 flow:
- Zaregistruj svoju integráciu na airtable.com/create/oauth
- Nakonfiguruj redirect URI:
https://app.tajo.io/callbacks/airtable - Požiadaj o rovnaké scopes ako vyššie
Rozsah tokenu
Personal Access Tokens môžu byť obmedzené na konkrétne bázy. Pre bezpečnosť udeľ prístup iba k bázam, ktoré tvoja integrácia potrebuje, namiesto výberu “All current and future bases.”
Pripojenie k Tajo
tajo connectors install airtable \ --token $AIRTABLE_TOKENKonfigurácia
Základné nastavenie
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"Mapovanie polí
Namapuj polia Airtable na atribúty kontaktov v Brevo:
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_DATESynchronizácia podľa zobrazenia
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 endpointy
Tajo sa integruje s nasledujúcimi endpointmi Airtable Web API:
| Endpoint | Metóda | Účel |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | Zoznam záznamov v tabuľke |
/v0/{baseId}/{tableIdOrName} | POST | Vytvorenie záznamov |
/v0/{baseId}/{tableIdOrName} | PATCH | Aktualizácia záznamov |
/v0/{baseId}/{tableIdOrName} | DELETE | Odstránenie záznamov |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | Získanie jedného záznamu |
/v0/meta/bases | GET | Zoznam dostupných báz |
/v0/meta/bases/{baseId}/tables | GET | Zoznam tabuliek v báze |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | Zoznam komentárov k záznamu |
/v0/bases/{baseId}/webhooks | POST | Vytvorenie webhooku |
/v0/bases/{baseId}/webhooks | GET | Zoznam webhookov |
Ukážky kódu
Inicializácia konektora
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});Synchronizácia tabuľky do 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// }Spracovanie webhookov
// 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');});Vytvorenie záznamu z 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] } }); }});Obmedzenia rýchlosti
Airtable uplatňuje obmedzenia rýchlosti na bázu:
| Typ limitu | Hodnota |
|---|---|
| API rate limit | 5 požiadaviek za sekundu na bázu |
| Záznamy na požiadavku | Max 100 (zoznam), max 10 (vytvorenie/aktualizácia) |
| Webhook payloady | 50 payloadov na volanie listWebhookPayloads |
| Veľkosť požiadavky | Max ~2 MB payload |
Dávkové operácie
Airtable umožňuje vytvorenie alebo aktualizáciu až 10 záznamov na požiadavku. Tajo automaticky rozdeľuje väčšie operácie do viacerých požiadaviek pri dodržaní limitov.
Riešenie problémov
Bežné problémy
| Problém | Príčina | Riešenie |
|---|---|---|
| 401 Unauthorized | Neplatný alebo vypršaný token | Znovu vygeneruj Personal Access Token |
| 403 Forbidden | Token nemá prístup k báze | Pridaj bázu do rozsahu svojho tokenu |
| 404 Not Found | Neplatné ID bázy alebo tabuľky | Overte ID bázy a názov tabuľky |
| 422 Invalid Request | Nezhoda typov polí | Skontroluj, či typy polí Airtable zodpovedajú tvojim dátam |
| Prekročenie limitu | Viac ako 5 požiadaviek/sek na bázu | Zredukuj frekvenciu synchronizácie alebo rozlož synchronizácie báz |
Debug režim
connectors: airtable: debug: true log_level: verbose log_api_calls: trueTest pripojenia
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableOdporúčané postupy
- Obmedz tokeny na konkrétne bázy - Neposkytuj prístup ku všetkým bázam, ak to nie je potrebné
- Použi zobrazenia pre filtrovanú synchronizáciu - Synchronizuj konkrétne zobrazenia namiesto celých tabuliek na zníženie objemu dát
- Dávkuj operácie so záznamami - Zoskup vytváranie a aktualizácie v dávkach po 10
- Spravuj stránkovanie - Airtable vracia 100 záznamov na stránku; iteruj pomocou
offset - Použi webhooky pre real-time - Zaregistruj webhooky namiesto pollingu zmien
- Presne namapuj typy polí - Zosúlaď typy polí Airtable (select, number, date) s typmi atribútov Brevo
Bezpečnosť
- Personal Access Tokens - Obmedzené na konkrétne bázy a operácie
- OAuth 2.0 - Bezpečný autorizačný flow s refresh tokenmi
- Iba HTTPS - Všetka API komunikácia šifrovaná cez TLS 1.2+
- Kontrola prístupu na úrovni bázy - Tokeny obmedzené na individuálne bázy
- Šifrované úložisko - Tokeny šifrované v pokoji v Tajo
- Overenie webhookov HMAC - Overovanie pravosti webhook notifikácií