Iterable konektor
Poveži svoju Iterable growth marketing platformu sa Brevo za unifikovano angažovanje kupaca, koordinaciju kampanja na više kanala i konsolidovanu analitiku između marketing alata.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Iterable |
| Kategorija | Marketing |
| Složenost podešavanja | Srednje |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Korisnici, Događaji, Kampanje, Katalozi |
| Tip API-ja | REST API |
| Autentifikacija | API Key |
| Osnovni URL | https://api.iterable.com/api/ |
Karakteristike
- Sinhronizacija profila korisnika - Dvosmerna sinhronizacija podataka korisnika sa Brevo kontaktima
- Analitika kampanja - Sinhronizacija metrika slanja, otvaranja i klikova kampanje za unifikovano izveštavanje
- Podaci eksperimenata - Praćenje rezultata A/B testova i pobedničkih varijanti
- Sinhronizacija kataloga - Sinhronizacija kataloga proizvoda i sadržaja između platforma
- Događaji tokova rada - Prosleđivanje okidača toka rada i događaja završetka u Brevo
- Sinhronizacija preferencija kanala - Replikacija korisničkih preferencija komunikacije u Brevo
Preduslovi
Pre nego što započneš, proveri da imaš:
- Iterable nalog sa API pristupom
- Iterable API ključ sa odgovarajućim dozvolama
- ID Iterable projekta
- Brevo nalog sa API pristupom
- Tajo nalog sa aktivnom pretplatom
Autentifikacija
Iterable koristi autentifikaciju API ključem prosleđenu u headeru zahteva.
Kreiranje API ključa
- Prijavi se na Iterable dashboard
- Idi na Integrations > API Keys
- Klikni New API Key
- Nazovi ga “Tajo Integration”
- Izaberi tip ključa Server-side
- Dodeli sledeće dozvole:
Users: Read/WriteEvents: Read/WriteCampaigns: ReadLists: Read/WriteCatalogs: ReadExperiments: ReadWorkflows: ReadTemplates: ReadChannels: ReadMessage Types: ReadTip ključa je bitan
Uvek koristi Server-side API ključ za Tajo integraciju. Mobilni i JavaScript ključevi na strani klijenta imaju ograničene dozvole i ne mogu pristupiti svim potrebnim endpointima.
Povezivanje sa Tajo
tajo connectors install iterable \ --api-key $ITERABLE_API_KEYKonfiguracija
Osnovno podešavanje
connectors: iterable: enabled: true
sync: users: true events: true campaigns: true catalogs: true experiments: true
lists: all_users: 16 engaged_users: 17 inactive_users: 18Mapiranje polja
Mapiranje Iterable polja korisnika na Brevo atribute kontakta:
field_mapping: # Standard fields userId: ITERABLE_ID email: email firstName: FIRSTNAME lastName: LASTNAME phoneNumber: SMS
# Engagement data signupDate: SIGNUP_DATE totalPurchases: TOTAL_PURCHASES lastPurchaseDate: LAST_PURCHASE
# Custom fields plan_name: PLAN_NAME company_size: COMPANY_SIZE preferred_channel: PREFERRED_CHANNEL lifecycle_stage: LIFECYCLE_STAGEKonfiguracija događaja
event_mapping: # Iterable event -> Brevo event purchase: ORDER_PLACED addToCart: CART_UPDATED pageView: PAGE_VIEWED appOpen: APP_OPENED pushOpen: PUSH_ENGAGEDAPI endpointi
Tajo se integriše sa sledećim Iterable API endpointima:
| Endpoint | Metoda | Namena |
|---|---|---|
/users/update | POST | Ažuriranje profila korisnika |
/users/{email} | GET | Dohvatanje korisnika po emailu |
/users/bulkUpdate | POST | Batch ažuriranje korisnika |
/events/track | POST | Praćenje prilagođenih događaja |
/events/trackBulk | POST | Batch praćenje događaja |
/campaigns | GET | Listanje svih kampanja |
/campaigns/metrics | GET | Podaci o performansama kampanje |
/experiments/metrics | GET | Rezultati eksperimenta |
/lists | GET | Listanje svih lista korisnika |
/lists/subscribe | POST | Dodavanje korisnika na listu |
/lists/unsubscribe | POST | Uklanjanje korisnika sa liste |
/catalogs/{catalogName}/items | GET | Dohvatanje stavki kataloga |
/channels | GET | Listanje kanala poruka |
/export/data.json | GET | Izvoz sirovih podataka o događajima |
Primeri 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('iterable', { apiKey: process.env.ITERABLE_API_KEY});Sinhronizacija korisnika
// Incremental user sync from Iterable to Brevoawait tajo.connectors.sync('iterable', { type: 'incremental', resources: ['users'], since: '2024-01-01', batchSize: 50});
const status = await tajo.connectors.status('iterable');console.log(status);// {// connected: true,// lastSync: '2024-03-15T09:45:00Z',// usersCount: 58700,// campaignsTracked: 42,// eventsProcessed: 210000// }Praćenje događaja
// Forward Iterable events to Brevoawait tajo.connectors.handleEvent('iterable', { type: 'custom_event', payload: { eventName: 'subscription_upgraded', dataFields: { previousPlan: 'starter', newPlan: 'pro', mrr: 99.00 } }});Webhook handler
// Handle Iterable system webhooksapp.post('/webhooks/iterable', async (req, res) => { const event = req.body;
await tajo.connectors.handleWebhook('iterable', { type: event.eventName, payload: event });
res.status(200).send('OK');});Ograničenja brzine
Iterable primenjuje ograničenja brzine u zavisnosti od tvog plana:
| Plan | Ograničenje brzine | Limit bulk endpointa |
|---|---|---|
| Growth | 500 zahteva/sekundi | 500 zahteva/sekundi |
| Enterprise | Prilagođeno | Prilagođeno |
Specifična ograničenja endpointa:
| Endpoint | Limit |
|---|---|
/users/update | 500 z/s |
/users/bulkUpdate | 500 z/s (1.000 korisnika po zahtevu) |
/events/track | 500 z/s |
/events/trackBulk | 500 z/s (8.000 događaja po zahtevu) |
/export/data.json | 4 istovremena zahteva |
Bulk endpointi
Tajo automatski grupišu ažuriranja korisnika (do 1.000 po pozivu) i praćenja događaja (do 8.000 po pozivu) da maksimizuje propusni opseg unutar ograničenja brzine.
Rešavanje problema
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| 401 Unauthorized | Nevažeći API ključ | Verifikuj ključ u Iterable > Integrations > API Keys |
| Korisnici se ne sinhronizuju | Nepodudaranje tipa ključa | Osiguraj da koristiš Server-side API ključ |
| Nedostaju podaci kampanje | Nedovoljne dozvole | Dodaj dozvolu Campaigns Read API ključu |
| Timeout izvoza | Veliki obim podataka | Koristi filtere opsega datuma da smanjiš veličinu izvoza |
| Duplirani korisnici | Nedosledni identifikatori | Konzistentno koristi email kao primarni identifikator |
Debug režim
connectors: iterable: debug: true log_level: verbose log_api_calls: trueTestiraj vezu
tajo connectors test iterable# ✓ API connection successful# ✓ User data accessible# ✓ Campaign list readable# ✓ Event tracking operational# ✓ List management availableNajbolje prakse
- Koristi bulk endpointe - Uvek preferiraj
bulkUpdateitrackBulkza velike obime podataka - Dedupliciraj po emailu - Koristi email kao konzistentni identifikator između Iterable i Brevo
- Sinhronizuj inkrementalno - Koristi opsege datuma da izbjegneš ponovnu obradu istorijskih podataka
- Mapiraj preferencije kanala - Sinhronizuj status opt-in/opt-out da održiš usklađenost
- Prati poslove izvoza - Veliki izvozi mogu potrajati; postavi ispitivanje statusa
- Testiraj sa neprodukcijskim projektom - Validiraj mapiranja pre sinhronizacije produkcijskih podataka
Bezbednost
- Autentifikacija API ključem - Server-side ključevi sa granularnim dozvolama
- Samo HTTPS - Sva API komunikacija enkriptovana putem TLS 1.2+
- Rotacija ključeva - Podrška za više aktivnih API ključeva tokom rotacije
- Enkriptovana pohrana - API akreditivi enkriptovani u mirovanju u Tajo
- JWT webhook-ovi - Webhook payloadi potpisani sa JWT za verifikaciju