Airtable Konektor
Povežite svoje Airtable baze s Brevom za CRM sinkronizaciju, upravljanje katalogom proizvoda i automatizirane marketinške tijekove rada pokretane strukturiranim podacima putem Taja.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | Airtable |
| Kategorija | Prilagođeno |
| Složenost postavljanja | Jednostavno |
| Službena integracija | Ne |
| Sinkronizirani podaci | Zapisi, Tablice, Korisnici |
| Vrsta API-ja | REST API |
| Autentifikacija | Personal Access Token / OAuth 2.0 |
| Osnovni URL | https://api.airtable.com/v0/ |
Značajke
- Sinkronizacija tablice na popis - Sinkronizirajte zapise Airtable tablice izravno na Brevo popise kontakata
- Most do kataloga proizvoda - Koristite Airtable tablice kao kataloge proizvoda za preporuke putem e-pošte
- CRM sinkronizacija - Dvosmjerna sinkronizacija između Airtable CRM-a i Brevo kontakata
- Događaji slanja obrazaca - Prosljeđujte slanja Airtable obrazaca kao Brevo događaje
- Filtriranje temeljeno na prikazima - Sinkronizirajte određene Airtable prikaze na ciljane Brevo popise
- Webhook automatizacija - Pokrećite Brevo kampanje kada se Airtable zapisi promijene
Preduvjeti
Prije nego što počnete, osigurajte da imate:
- Airtable račun (Besplatni plan ili viši)
- Konfigurirani Personal Access Token ili OAuth aplikaciju
- Pristup bazama i tablicama koje želite sinkronizirati
- Brevo račun s API pristupom
- Tajo račun s aktivnom pretplatom
Autentifikacija
Airtable podržava Personal Access Tokene i OAuth 2.0.
Opcija 1: Personal Access Token (Preporučeno)
- Idite na airtable.com/create/tokens
- Kliknite Create new token
- Nazovite ga “Tajo Integration”
- Dodajte opsege:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- Dodajte pristup određenim bazama ili svim bazama
- Kliknite Create token
Opcija 2: OAuth 2.0
Za integracije s više korisnika, koristite OAuth 2.0 tok:
- Registrirajte svoju integraciju na airtable.com/create/oauth
- Konfigurirajte redirect URI:
https://app.tajo.io/callbacks/airtable - Zatražite iste opsege kao gore
Opseg tokena
Personal Access Tokeni mogu biti ograničeni na određene baze. Radi sigurnosti, dodijelite pristup samo bazama koje vaša integracija treba, a ne odabirite “Sve trenutne i buduće baze.”
Povezivanje s Tajom
tajo connectors install airtable \ --token $AIRTABLE_TOKENKonfiguracija
Osnovna konfiguracija
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"Mapiranje polja
Mapirajte Airtable polja na atribute kontakata u Brevu:
field_mapping: # Airtable polje -> Brevo atribut 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_DATESinkronizacija temeljena na prikazima
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 krajnje točke
Tajo se integrira sa sljedećim Airtable Web API krajnjim točkama:
| Krajnja točka | Metoda | Namjena |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | Popis zapisa u tablici |
/v0/{baseId}/{tableIdOrName} | POST | Stvaranje zapisa |
/v0/{baseId}/{tableIdOrName} | PATCH | Ažuriranje zapisa |
/v0/{baseId}/{tableIdOrName} | DELETE | Brisanje zapisa |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | Dohvaćanje jednog zapisa |
/v0/meta/bases | GET | Popis dostupnih baza |
/v0/meta/bases/{baseId}/tables | GET | Popis tablica u bazi |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | Popis komentara zapisa |
/v0/bases/{baseId}/webhooks | POST | Stvaranje webhookova |
/v0/bases/{baseId}/webhooks | GET | Popis webhookova |
Primjeri koda
Inicijalizacija 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});Sinkronizacija tablice s Brevom
// Sinkronizacija Airtable tablice s Brevo popisomawait 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// }Rukovanje Webhooksima
// Airtable webhooks obavještavaju o promjenama; dohvatite detalje s kursoromapp.post('/webhooks/airtable', async (req, res) => { const { base, webhook, timestamp } = req.body;
// Dohvaćanje promijenjenih zapisa koristeći webhook kursor 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');});Stvaranje zapisa iz Breva
// Stvaranje Airtable zapisa kada Brevo kontakt konvertiratajo.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] } }); }});Ograničenja brzine
Airtable primjenjuje ograničenja brzine po bazi:
| Vrsta ograničenja | Vrijednost |
|---|---|
| Ograničenje brzine API-ja | 5 zahtjeva po sekundi po bazi |
| Zapisi po zahtjevu | Maks. 100 zapisa (popis), maks. 10 zapisa (stvaranje/ažuriranje) |
| Webhook sadržaji | 50 sadržaja po listWebhookPayloads pozivu |
| Veličina zahtjeva | Maks. sadržaj ~2 MB |
Skupne operacije
Airtable omogućuje stvaranje ili ažuriranje do 10 zapisa po zahtjevu. Tajo automatski grupira veće operacije u višestruke zahtjeve uz poštivanje ograničenja brzine.
Rješavanje problema
Uobičajeni problemi
| Problem | Uzrok | Rješenje |
|---|---|---|
| 401 Unauthorized | Nevažeći ili istekli token | Regenerirajte Personal Access Token |
| 403 Forbidden | Token nema pristup bazi | Dodajte bazu u opseg svog tokena |
| 404 Not Found | Nevažeći ID baze ili tablice | Provjerite ID baze i naziv tablice |
| 422 Invalid Request | Nepodudaranje vrsta polja | Provjerite odgovaraju li Airtable vrste polja vašim podacima |
| Prekoračeno ograničenje brzine | Više od 5 zah./sek. po bazi | Smanjite učestalost sinkronizacije ili rasporedite sinkronizacije baza |
Način otklanjanja grešaka
connectors: airtable: debug: true log_level: verbose log_api_calls: trueTestiranje veze
tajo connectors test airtable# ✓ API autentifikacija uspješna# ✓ Pristup bazi potvrđen# ✓ Shema tablice čitljiva# ✓ Popis zapisa operativan# ✓ Registracija webhookova dostupnaPreporučene prakse
- Ograničite tokene na određene baze - Ne dodjeljujte pristup svim bazama osim ako nije nužno
- Koristite prikaze za filtrirane sinkronizacije - Sinkronizirajte određene prikaze umjesto cijelih tablica za smanjenje volumena podataka
- Skupne operacije zapisa - Grupirajte stvaranja i ažuriranja u serijama od 10
- Rukujte paginacijom - Airtable vraća 100 zapisa po stranici; iterirajte s
offset - Koristite webhookove za sinkronizaciju u stvarnom vremenu - Registrirajte webhookove umjesto anketiranja za promjene
- Precizno mapirajte vrste polja - Uskladite Airtable vrste polja (odabir, broj, datum) s Brevo vrstama atributa
Sigurnost
- Personal Access Tokeni - Ograničeni na određene baze i operacije
- OAuth 2.0 - Siguran tok autorizacije s tokenima za osvježavanje
- Samo HTTPS - Sva API komunikacija šifrirana putem TLS 1.2+
- Kontrola pristupa na razini baze - Tokeni ograničeni na pojedine baze
- Šifrirano pohranjivanje - Tokeni šifrirani u mirovanju u Taju
- HMAC verifikacija webhookova - Provjera autentičnosti obavijesti webhookova