Customer.io konektor
Poveži svoju Customer.io platformu za poruke sa Brevo za unifikovane korisničke podatke, koordinaciju kampanja na više platforma i konsolidovanu analitiku angažovanja.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Customer.io |
| Kategorija | Marketing |
| Složenost podešavanja | Srednje |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Osobe, Događaji, Kampanje, Segmenti |
| Korišćeni API-ji | Track API, App API, Pipelines API |
| Autentifikacija | Site ID + API Key / App API Key |
| Osnovni URL-ovi | track.customer.io, api.customer.io |
Karakteristike
- Sinhronizacija osoba - Dvosmerna sinhronizacija profila kupaca sa Brevo kontaktima
- Prosleđivanje događaja - Praćenje bihevioralnih događaja i prosleđivanje u Brevo za okidače automatizacije
- Analitika kampanja - Sinhronizacija metrika performansi kampanja za unifikovano izveštavanje
- Podaci toka rada - Ogledanje stanja Customer.io tokova rada u Brevo atributima kontakta
- Replikacija segmenata - Replikacija Customer.io segmenata kao Brevo lista
- Sinhronizacija podataka objekata - Sinhronizacija objekata koji nisu osobe i podataka odnosa
Preduslovi
Pre nego što započneš, proveri da imaš:
- Customer.io nalog sa API pristupom
- Site ID i Track API Key (nalaze se u Settings > API Credentials)
- App API ključ za čitanje podataka kampanja i segmenata
- Brevo nalog sa API pristupom
- Tajo nalog sa aktivnom pretplatom
Autentifikacija
Customer.io koristi dva odvojena API-ja sa različitim metodama autentifikacije:
Track API (Bihevioralni podaci)
Koristi se za slanje osoba, događaja i podataka uređaja. Autentifikuje se sa Site ID i API Key putem Basic Auth.
# Basic Auth: Site ID as username, API Key as passwordcurl -X POST https://track.customer.io/api/v1/customers/user123 \ -u "$SITE_ID:$API_KEY" \ -H "Content-Type: application/json" \App API (Čitanje podataka)
Koristi se za dohvatanje kampanja, segmenata i podataka o korisnicima. Autentifikuje se sa Bearer tokenom.
curl -X GET https://api.customer.io/v1/campaigns \ -H "Authorization: Bearer $APP_API_KEY"Razdvajanje API ključeva
Track API ključ i App API ključ su različiti akreditivi. Track API ključ se koristi za pisanje podataka, dok je App API ključ za čitanje podataka. Oba su potrebna za punu Tajo integraciju.
Povezivanje sa Tajo
tajo connectors install customerio \ --site-id $CIO_SITE_ID \ --track-api-key $CIO_TRACK_API_KEY \ --app-api-key $CIO_APP_API_KEYKonfiguracija
Osnovno podešavanje
connectors: customerio: enabled: true region: "us" # or "eu" for EU data center
sync: people: true events: true campaigns: true segments: true objects: false
lists: all_contacts: 12 active_subscribers: 13 churned: 14Mapiranje polja
Mapiranje atributa Customer.io osoba na Brevo atribute kontakta:
field_mapping: # Standard fields id: CIO_ID email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Engagement metrics created_at: SIGNUP_DATE last_activity: LAST_ACTIVE plan: PLAN_NAME
# Custom attributes company: COMPANY role: JOB_TITLE mrr: MONTHLY_REVENUE lifecycle_stage: LIFECYCLE_STAGEMapiranje događaja
event_mapping: # Customer.io event -> Brevo event purchase_completed: ORDER_PLACED subscription_started: SUBSCRIPTION_START feature_activated: FEATURE_USED support_ticket_opened: SUPPORT_REQUESTAPI endpointi
Tajo se integriše sa sledećim Customer.io API endpointima:
| Endpoint | Metoda | API | Namena |
|---|---|---|---|
/api/v1/customers/{id} | PUT | Track | Kreiranje ili ažuriranje osobe |
/api/v1/customers/{id}/events | POST | Track | Praćenje događaja osobe |
/api/v1/events | POST | Track | Praćenje anonimnih događaja |
/api/v2/entity | POST | Track | Kreiranje ili ažuriranje osoba/objekata (Pipelines) |
/v1/campaigns | GET | App | Listanje kampanja |
/v1/campaigns/{id}/metrics | GET | App | Metrike performansi kampanje |
/v1/segments | GET | App | Listanje segmenata |
/v1/segments/{id}/membership | GET | App | Dohvatanje članova segmenta |
/v1/customers/{id}/attributes | GET | App | Dohvatanje atributa korisnika |
/v1/customers/{id}/activities | GET | App | Dohvatanje dnevnika aktivnosti korisnika |
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('customerio', { siteId: process.env.CIO_SITE_ID, trackApiKey: process.env.CIO_TRACK_API_KEY, appApiKey: process.env.CIO_APP_API_KEY, region: 'us'});Sinhronizacija osoba sa Brevo
// Incremental sync of Customer.io peopleawait tajo.connectors.sync('customerio', { type: 'incremental', resources: ['people'], since: '2024-01-01', batchSize: 100});
const status = await tajo.connectors.status('customerio');console.log(status);// {// connected: true,// lastSync: '2024-03-15T14:20:00Z',// peopleCount: 32500,// campaignsTracked: 18,// eventsProcessed: 87000// }Prosleđivanje događaja
// Forward Customer.io reporting webhook events to Brevoapp.post('/webhooks/customerio', async (req, res) => { const events = req.body;
for (const event of events) { await tajo.connectors.handleEvent('customerio', { type: event.metric, payload: { customerId: event.data.customer_id, campaignId: event.data.campaign_id, timestamp: event.timestamp } }); }
res.status(200).send('OK');});Izvoz segmenta
const result = await tajo.connectors.exportSegment('customerio', { segmentId: 42, targetList: 13, includeAttributes: ['email', 'first_name', 'last_name', 'plan']});
console.log(`Exported ${result.count} people to Brevo list 13`);Ograničenja brzine
Customer.io primenjuje različita ograničenja brzine po API-ju:
| API | Ograničenje brzine | Napomene |
|---|---|---|
| Track API | ~100 zahteva/sekundi | Po radnom prostoru |
| App API | 10 zahteva/sekundi | Po API ključu |
| Pipelines API | 100 zahteva/sekundi | Preporučeno za bulk podatke |
| Batch endpoint | 1.000 osoba po zahtevu | Maksimalni payload 500KB |
Koristi batch endpointe
Za velike sinhronizacije, Tajo koristi Customer.io batch endpoint za slanje do 1.000 osoba po zahtevu, što značajno smanjuje obim API poziva.
Rešavanje problema
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| 401 Unauthorized | Nevažeći Site ID ili API ključ | Verifikuj akreditive u Customer.io Settings > API |
| Osobe se ne sinhronizuju | Nedostaje identifikator | Osiguraj da svaka osoba ima id ili email |
| Događaji se ne prate | Pogrešan tip API ključa | Koristi Track API ključ za događaje, ne App API ključ |
| EU podaci nisu dostupni | Pogrešan region konfigurisan | Postavi region na eu za EU radne prostore |
| Greške ograničenja brzine | Previše App API poziva | Smanji učestalost ispitivanja za podatke kampanja |
Debug režim
connectors: customerio: debug: true log_level: verbose log_api_calls: trueTestiraj vezu
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableNajbolje prakse
- Koristi Pipelines API za bulk podatke - Noviji Pipelines API je optimizovan za ingestion visokog volumena
- Postavi webhook-ove za izveštavanje - Prosleđuj Customer.io email događaje u Tajo u realnom vremenu
- Mapiraj faze životnog ciklusa - Sinhronizuj Customer.io članstvo u segmentima na Brevo atribute
- Koristi konzistentne identifikatore - Podudaraj
idpolja između Customer.io i Brevo - Sinhronizuj inkrementalno - Izbegavaj pune izvoze; iskoristi
last_activityvremenske oznake - Prati isporuku webhook-ova - Postavi upozorenja za neuspele isporuke webhook-ova
Bezbednost
- Basic Auth - Track API se autentifikuje sa Site ID i API Key
- Bearer Token - App API koristi bearer tokene u OAuth stilu
- Samo HTTPS - Sva API komunikacija enkriptovana putem TLS 1.2+
- Regionalni centri podataka - EU centar podataka za GDPR usklađenost
- Enkriptovana pohrana - Svi akreditivi enkriptovani u mirovanju u Tajo
- Potpisi webhook-ova - Verifikuj webhook payloade sa HMAC potpisima