Customer.io-koppling
Anslut din Customer.io-meddelandeplattform till Brevo för enhetlig kunddata, koordinering av kampanjer över plattformar och konsoliderad engagemangsanalys.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Customer.io |
| Kategori | Marknadsföring |
| Installationskomplexitet | Måttlig |
| Officiell integration | Nej |
| Data som synkas | People, händelser, kampanjer, segment |
| API:er som används | Track API, App API, Pipelines API |
| Autentisering | Site ID + API Key / App API Key |
| Bas-URL:er | track.customer.io, api.customer.io |
Funktioner
- People-synk - Dubbelriktad synkronisering av kundprofiler med Brevo-kontakter
- Vidarebefordran av händelser - Spåra beteendehändelser och vidarebefordra till Brevo som automationstriggers
- Kampanjanalys - Synka kampanjprestandadata för enhetlig rapportering
- Workflow-data - Spegla Customer.io-workflow-tillstånd i Brevos kontaktattribut
- Segmentreplikering - Replikera Customer.io-segment som Brevo-listor
- Synk av objektdata - Synka non-people-objekt och relationsdata
Förutsättningar
Innan du börjar, se till att du har:
- Ett Customer.io-konto med API-åtkomst
- Ditt Site ID och din Track API-nyckel (finns under Settings > API Credentials)
- En App API-nyckel för att läsa kampanj- och segmentdata
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med aktivt abonnemang
Autentisering
Customer.io använder två separata API:er med olika autentiseringsmetoder:
Track API (beteendedata)
Används för att skicka people, händelser och enhetsdata. Autentiserar med Site ID och API-nyckel via 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 (läsdata)
Används för att hämta kampanjer, segment och kunddata. Autentiserar med Bearer-token.
curl -X GET https://api.customer.io/v1/campaigns \ -H "Authorization: Bearer $APP_API_KEY"Separerade API-nycklar
Track API-nyckeln och App API-nyckeln är olika uppgifter. Track API-nyckeln används för att skriva data, medan App API-nyckeln är för att läsa data. Båda krävs för full Tajo-integration.
Anslut till Tajo
tajo connectors install customerio \ --site-id $CIO_SITE_ID \ --track-api-key $CIO_TRACK_API_KEY \ --app-api-key $CIO_APP_API_KEYKonfiguration
Grundläggande konfiguration
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: 14Fältmappning
Mappa Customer.io person-attribut till Brevo-kontaktattribut:
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_STAGEHändelsemappning
event_mapping: # Customer.io event -> Brevo event purchase_completed: ORDER_PLACED subscription_started: SUBSCRIPTION_START feature_activated: FEATURE_USED support_ticket_opened: SUPPORT_REQUESTAPI-ändpunkter
Tajo integrerar med följande Customer.io API-ändpunkter:
| Ändpunkt | Metod | API | Syfte |
|---|---|---|---|
/api/v1/customers/{id} | PUT | Track | Skapa eller uppdatera en person |
/api/v1/customers/{id}/events | POST | Track | Spåra en person-händelse |
/api/v1/events | POST | Track | Spåra anonyma händelser |
/api/v2/entity | POST | Track | Skapa eller uppdatera people/objekt (Pipelines) |
/v1/campaigns | GET | App | Lista kampanjer |
/v1/campaigns/{id}/metrics | GET | App | Prestandamått för kampanjer |
/v1/segments | GET | App | Lista segment |
/v1/segments/{id}/membership | GET | App | Hämta segmentmedlemmar |
/v1/customers/{id}/attributes | GET | App | Hämta kundattribut |
/v1/customers/{id}/activities | GET | App | Hämta kundens aktivitetslogg |
Kodexempel
Initiera kopplingen
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'});Synka people till 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// }Vidarebefordra händelser
// 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');});Exportera segment
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`);API-gränser
Customer.io tillämpar olika rate limits per API:
| API | Rate limit | Noteringar |
|---|---|---|
| Track API | ~100 förfrågningar/sekund | Per arbetsyta |
| App API | 10 förfrågningar/sekund | Per API-nyckel |
| Pipelines API | 100 förfrågningar/sekund | Rekommenderas för massdata |
| Batch-ändpunkt | 1 000 people per förfrågan | Max payload 500 KB |
Använd batch-ändpunkter
För stora synkar använder Tajo Customer.ios batch-ändpunkt för att skicka upp till 1 000 people per förfrågan, vilket avsevärt minskar volymen av API-anrop.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltigt Site ID eller API-nyckel | Verifiera uppgifterna i Customer.io Settings > API |
| People synkas inte | Identifierare saknas | Se till att varje person har id eller email |
| Händelser spåras inte | Fel typ av API-nyckel | Använd Track API-nyckeln för händelser, inte App API-nyckeln |
| EU-data går inte att nå | Fel region konfigurerad | Sätt region till eu för EU-arbetsytor |
| Rate limit-fel | För många App API-anrop | Minska polling-frekvensen för kampanjdata |
Debug-läge
connectors: customerio: debug: true log_level: verbose log_api_calls: trueTesta anslutningen
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableBästa praxis
- Använd Pipelines API för massdata - Det nyare Pipelines-API:et är optimerat för högvolymsinmatning
- Sätt upp reporting-webhooks - Vidarebefordra Customer.io-mejlhändelser till Tajo i realtid
- Mappa livscykelstadier - Synka Customer.io-segmentmedlemskap till Brevo-attribut
- Använd konsekventa identifierare - Matcha
id-fält över Customer.io och Brevo - Synka inkrementellt - Undvik fulla exporter; utnyttja
last_activity-tidsstämplar - Övervaka webhook-leverans - Sätt upp varningar för misslyckade webhook-leveranser
Säkerhet
- Basic Auth - Track API autentiserar med Site ID och API-nyckel
- Bearer token - App API använder OAuth-liknande bearer-token
- Endast HTTPS - All API-kommunikation krypteras via TLS 1.2+
- Regionala data centers - Alternativ med EU-data center för GDPR-efterlevnad
- Krypterad lagring - Alla uppgifter krypteras i vila i Tajo
- Webhook-signaturer - Verifiera webhook-payloads med HMAC-signaturer