Conector Airtable
Conectați bazele de date Airtable la Brevo pentru sincronizare CRM, gestionarea catalogului de produse și fluxuri de marketing automatizate bazate pe date structurate prin Tajo.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Airtable |
| Categorie | Personalizat |
| Complexitate configurare | Ușoară |
| Integrare oficială | Nu |
| Date sincronizate | Înregistrări, Tabele, Utilizatori |
| Tip API | REST API |
| Autentificare | Token de acces personal / OAuth 2.0 |
| URL de bază | https://api.airtable.com/v0/ |
Funcționalități
- Sincronizare tabel-la-listă - Sincronizați înregistrările din tabelele Airtable direct în listele de contacte Brevo
- Punte catalog produse - Utilizați tabelele Airtable ca cataloage de produse pentru recomandări în e-mail
- Sincronizare CRM - Sincronizare bidirecțională între CRM-ul Airtable și contactele Brevo
- Evenimente de trimitere formulare - Transmiteți trimiterile de formulare Airtable ca evenimente Brevo
- Filtrare bazată pe vizualizări - Sincronizați vizualizări specifice Airtable în listele Brevo targetate
- Automatizare webhook - Declanșați campanii Brevo când înregistrările Airtable se modifică
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont Airtable (plan Gratuit sau superior)
- Un Token de acces personal sau aplicație OAuth configurată
- Acces la bazele de date și tabelele pe care doriți să le sincronizați
- Un cont Brevo cu acces API
- Un cont Tajo cu abonament activ
Autentificare
Airtable suportă Tokeni de acces personal și OAuth 2.0.
Opțiunea 1: Token de acces personal (Recomandat)
- Accesați airtable.com/create/tokens
- Faceți clic pe Create new token
- Denumiți-l “Tajo Integration”
- Adăugați scopuri:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- Adăugați acces la baze specifice sau la toate bazele de date
- Faceți clic pe Create token
Opțiunea 2: OAuth 2.0
Pentru integrări cu mai mulți utilizatori, utilizați fluxul OAuth 2.0:
- Înregistrați integrarea la airtable.com/create/oauth
- Configurați URI-ul de redirecționare:
https://app.tajo.io/callbacks/airtable - Solicitați aceleași scopuri ca mai sus
Scopul tokenului
Tokenii de acces personal pot fi limitați la baze specifice. Din motive de securitate, acordați acces doar la bazele de care are nevoie integrarea în loc să selectați „Toate bazele curente și viitoare”.
Conectare la Tajo
tajo connectors install airtable \ --token $AIRTABLE_TOKENConfigurare
Configurare de bază
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"Mapare câmpuri
Mapați câmpurile Airtable la atributele de contact 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_DATESincronizare bazată pe vizualizări
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: truePuncte finale API
Tajo se integrează cu următoarele puncte finale ale API-ului web Airtable:
| Punct final | Metodă | Scop |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | Listează înregistrările dintr-un tabel |
/v0/{baseId}/{tableIdOrName} | POST | Creează înregistrări |
/v0/{baseId}/{tableIdOrName} | PATCH | Actualizează înregistrări |
/v0/{baseId}/{tableIdOrName} | DELETE | Șterge înregistrări |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | Recuperează o singură înregistrare |
/v0/meta/bases | GET | Listează bazele accesibile |
/v0/meta/bases/{baseId}/tables | GET | Listează tabelele dintr-o bază |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | Listează comentariile la înregistrări |
/v0/bases/{baseId}/webhooks | POST | Creează un webhook |
/v0/bases/{baseId}/webhooks | GET | Listează webhook-urile |
Exemple de cod
Inițializare conector
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});Sincronizare tabel cu 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// }Gestionare webhook-uri
// 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');});Creare înregistrare din 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] } }); }});Limite de rată
Airtable aplică limite de rată per bază de date:
| Tip limită | Valoare |
|---|---|
| Limită de rată API | 5 cereri pe secundă per bază |
| Înregistrări per cerere | Maxim 100 înregistrări (listare), maxim 10 înregistrări (creare/actualizare) |
| Payload-uri webhook | 50 payload-uri per apel listWebhookPayloads |
| Dimensiune cerere | Maxim ~2MB payload |
Operații în lot
Airtable permite crearea sau actualizarea a până la 10 înregistrări per cerere. Tajo grupează automat operațiile mai mari în mai multe cereri respectând limitele de rată.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Token invalid sau expirat | Regenerați Tokenul de acces personal |
| 403 Interzis | Token fără acces la baza de date | Adăugați baza de date în scopul tokenului |
| 404 Negăsit | ID bază sau tabel invalid | Verificați ID-ul bazei și numele tabelului |
| 422 Cerere invalidă | Nepotrivire tip câmp | Verificați că tipurile câmpurilor Airtable corespund datelor dvs. |
| Limită de rată depășită | Mai mult de 5 cereri/s per bază | Reduceți frecvența sincronizării sau eșalonați sincronizările bazelor |
Modul de depanare
connectors: airtable: debug: true log_level: verbose log_api_calls: trueTestare conexiune
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableBune practici
- Limitați tokenii la baze specifice - Nu acordați acces la toate bazele dacă nu este necesar
- Utilizați vizualizări pentru sincronizare filtrată - Sincronizați vizualizări specifice în loc de tabele complete pentru a reduce volumul de date
- Grupați operațiile pe înregistrări - Grupați creările și actualizările în loturi de 10
- Gestionați paginarea - Airtable returnează 100 înregistrări per pagină; iterați cu
offset - Utilizați webhook-uri pentru timp real - Înregistrați webhook-uri în loc de interogare pentru modificări
- Mapați tipurile de câmpuri cu precizie - Potriviți tipurile de câmpuri Airtable (select, number, date) cu tipurile de atribute Brevo
Securitate
- Tokeni de acces personal - Limitați la baze și operații specifice
- OAuth 2.0 - Flux de autorizare securizat cu tokeni de reîmprospătare
- Numai HTTPS - Toată comunicarea API criptată prin TLS 1.2+
- Control acces la nivel de bază - Tokeni limitați la baze individuale
- Stocare criptată - Tokenii sunt criptați în repaus în Tajo
- Verificare HMAC webhook - Verificați autenticitatea notificărilor webhook