Airtable Connector
Poveži svoje baze Airtable z Brevo za sinhronizacijo CRM, upravljanje kataloga izdelkov in avtomatizirane marketinške tokove na osnovi strukturiranih podatkov prek Tajo.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | Airtable |
| Kategorija | Po meri |
| Zahtevnost nastavitve | Enostavna |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Zapisi, tabele, uporabniki |
| Tip API | REST API |
| Avtentikacija | Personal Access Token / OAuth 2.0 |
| Osnovni URL | https://api.airtable.com/v0/ |
Funkcionalnosti
- Sinhronizacija tabele s seznamom – sinhronizacija zapisov tabele Airtable neposredno na sezname stikov Brevo
- Most za katalog izdelkov – uporabi tabele Airtable kot kataloge izdelkov za priporočila v e-mailih
- Sinhronizacija CRM – dvosmerna sinhronizacija med CRM Airtable in stiki Brevo
- Dogodki oddaje obrazca – posreduj oddaje obrazcev Airtable kot dogodke Brevo
- Filtriranje na osnovi pogleda – sinhronizacija določenih pogledov Airtable na ciljne sezname Brevo
- Webhook avtomatizacija – sproži kampanje Brevo, ko se zapisi Airtable spremenijo
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Račun Airtable (paket Free ali višji)
- Konfiguriran Personal Access Token ali OAuth aplikacijo
- Dostop do baz in tabel, ki jih želiš sinhronizirati
- Brevo račun z dostopom do API
- Tajo račun z aktivno naročnino
Avtentikacija
Airtable podpira Personal Access Tokens in OAuth 2.0.
Možnost 1: Personal Access Token (priporočeno)
- Pojdi na airtable.com/create/tokens
- Klikni Create new token
- Poimenuj ga “Tajo Integration”
- Dodaj obsege:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- Dodaj dostop do določenih baz ali vseh baz
- Klikni Create token
Možnost 2: OAuth 2.0
Za integracije z več uporabniki uporabi tok OAuth 2.0:
- Registriraj svojo integracijo na airtable.com/create/oauth
- Nastavi URI za preusmeritev:
https://app.tajo.io/callbacks/airtable - Zahtevaj iste obsege kot zgoraj
Omejevanje obsega žetona
Personal Access Tokens je mogoče omejiti na določene baze. Iz varnostnih razlogov dodeli dostop samo do baz, ki jih tvoja integracija potrebuje, namesto da bi izbral »Vse trenutne in prihodnje baze«.
Povezava s Tajo
tajo connectors install airtable \ --token $AIRTABLE_TOKENKonfiguracija
Osnovna nastavitev
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"Preslikava polj
Preslikaj polja Airtable v atribute stikov 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_DATESinhronizacija na osnovi pogleda
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: trueKončne točke API
Tajo se integrira z naslednjimi končnimi točkami Airtable Web API:
| Končna točka | Metoda | Namen |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | Seznam zapisov v tabeli |
/v0/{baseId}/{tableIdOrName} | POST | Ustvari zapise |
/v0/{baseId}/{tableIdOrName} | PATCH | Posodobi zapise |
/v0/{baseId}/{tableIdOrName} | DELETE | Izbriši zapise |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | Pridobi en zapis |
/v0/meta/bases | GET | Seznam dostopnih baz |
/v0/meta/bases/{baseId}/tables | GET | Seznam tabel v bazi |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | Seznam komentarjev zapisov |
/v0/bases/{baseId}/webhooks | POST | Ustvari webhook |
/v0/bases/{baseId}/webhooks | GET | Seznam webhookov |
Primeri kode
Inicializacija konektorja
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});Sinhronizacija tabele z 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// }Obravnava 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');});Ustvarjanje zapisa iz 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] } }); }});Omejitve hitrosti
Airtable uveljavi omejitve hitrosti na bazo:
| Vrsta omejitve | Vrednost |
|---|---|
| Omejitev hitrosti API | 5 zahtevkov na sekundo na bazo |
| Zapisi na zahtevek | Največ 100 zapisov (seznam), največ 10 zapisov (ustvarjanje/posodabljanje) |
| Vsebina webhookov | 50 vsebin na klic listWebhookPayloads |
| Velikost zahtevka | Največ ~2 MB |
Paketne operacije
Airtable omogoča ustvarjanje ali posodabljanje do 10 zapisov na zahtevek. Tajo samodejno razporedi večje operacije v več zahtevkov in spoštuje omejitve hitrosti.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Neveljaven ali potekel žeton | Obnovi Personal Access Token |
| 403 Forbidden | Žetonu manjka dostop do baze | Dodaj bazo v obseg žetona |
| 404 Not Found | Neveljaven ID baze ali tabele | Preveri ID baze in ime tabele |
| 422 Invalid Request | Neujemanje vrst polj | Preveri, ali se vrste polj Airtable ujemajo s podatki |
| Prekoračena omejitev hitrosti | Več kot 5 zahtevkov/s na bazo | Zmanjšaj pogostost sinhronizacije ali razporedi sinhronizacije baz |
Način odpravljanja napak
connectors: airtable: debug: true log_level: verbose log_api_calls: truePreizkus povezave
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableNajboljše prakse
- Omeji žetone na določene baze – ne dodeljuj dostopa do vseh baz, razen če je to nujno
- Uporabi poglede za filtrirano sinhronizacijo – sinhronizacija določenih pogledov namesto celotnih tabel za zmanjšanje obsega podatkov
- Paketne operacije z zapisi – grupiranje ustvarjanj in posodobitev v paketih po 10
- Obravnavaj paginacijo – Airtable vrne 100 zapisov na stran; iteriraj z
offset - Za posodobitve v realnem času uporabi webhooks – registriraj webhooks namesto anketiranja za spremembe
- Natančno preslikaj vrste polj – ujemi vrste polj Airtable (izbor, število, datum) z vrstami atributov Brevo
Varnost
- Personal Access Tokens – omejeni na določene baze in operacije
- OAuth 2.0 – varen tok avtorizacije z žetoni za osvežitev
- Samo HTTPS – vsa komunikacija API šifrirana prek TLS 1.2+
- Nadzor dostopa na ravni baze – žetoni omejeni na posamezne baze
- Šifrirano shranjevanje – žetoni šifrirani v mirovanju v Tajo
- Preverjanje HMAC webhookov – preverjanje pristnosti obvestil webhookov