Customer.io-connector
Verbind je Customer.io-messagingplatform met Brevo voor uniforme klantdata, cross-platform-campagnecoördinatie en geconsolideerde engagement-analytics.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Customer.io |
| Categorie | Marketing |
| Setupcomplexiteit | Gemiddeld |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Mensen, Events, Campagnes, Segmenten |
| Gebruikte API’s | Track API, App API, Pipelines API |
| Authenticatie | Site ID + API-sleutel / App API-sleutel |
| Base URL’s | track.customer.io, api.customer.io |
Functies
- Mensen-synchronisatie - Bidirectionele synchronisatie van klantprofielen met Brevo-contacten
- Event-forwarding - Volg gedrags-events en stuur ze door naar Brevo als automation-triggers
- Campagne-analytics - Synchroniseer campagneprestatie-metrics voor uniforme rapportage
- Workflowdata - Spiegel Customer.io-workflowstatussen in Brevo-contactattributen
- Segmentreplicatie - Repliceer Customer.io-segmenten als Brevo-lijsten
- Object-datasync - Synchroniseer non-people objects en relatiedata
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Customer.io-account met API-toegang
- Je Site ID en Track API Key (te vinden in Settings > API Credentials)
- Een App API-sleutel voor het lezen van campagne- en segmentdata
- Een Brevo-account met API-toegang
- Een Tajo-account met een actief abonnement
Authenticatie
Customer.io gebruikt twee afzonderlijke API’s met verschillende authenticatiemethoden:
Track API (gedragsdata)
Wordt gebruikt voor het versturen van mensen, events en device-data. Authenticeert met Site ID en API-sleutel 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 (data lezen)
Wordt gebruikt voor het ophalen van campagnes, segmenten en klantdata. Authenticeert met een bearer token.
curl -X GET https://api.customer.io/v1/campaigns \ -H "Authorization: Bearer $APP_API_KEY"Scheiding van API-sleutels
De Track API-sleutel en App API-sleutel zijn verschillende inloggegevens. De Track API-sleutel wordt gebruikt voor het schrijven van data, terwijl de App API-sleutel voor het lezen van data is. Beide zijn vereist voor een volledige Tajo-integratie.
Verbinden met Tajo
tajo connectors install customerio \ --site-id $CIO_SITE_ID \ --track-api-key $CIO_TRACK_API_KEY \ --app-api-key $CIO_APP_API_KEYConfiguratie
Basisopzet
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: 14Veldmapping
Koppel Customer.io-persoonsattributen aan Brevo-contactattributen:
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_STAGEEvent-mapping
event_mapping: # Customer.io event -> Brevo event purchase_completed: ORDER_PLACED subscription_started: SUBSCRIPTION_START feature_activated: FEATURE_USED support_ticket_opened: SUPPORT_REQUESTAPI-endpoints
Tajo integreert met de volgende Customer.io API-endpoints:
| Endpoint | Methode | API | Doel |
|---|---|---|---|
/api/v1/customers/{id} | PUT | Track | Persoon aanmaken of bijwerken |
/api/v1/customers/{id}/events | POST | Track | Persoons-event tracken |
/api/v1/events | POST | Track | Anonieme events tracken |
/api/v2/entity | POST | Track | Mensen/objects aanmaken of bijwerken (Pipelines) |
/v1/campaigns | GET | App | Campagnes opvragen |
/v1/campaigns/{id}/metrics | GET | App | Campagneprestatie-metrics |
/v1/segments | GET | App | Segmenten opvragen |
/v1/segments/{id}/membership | GET | App | Segmentleden ophalen |
/v1/customers/{id}/attributes | GET | App | Klantattributen ophalen |
/v1/customers/{id}/activities | GET | App | Klantactiviteitenlog ophalen |
Codevoorbeelden
Connector initialiseren
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'});Mensen naar Brevo synchroniseren
// 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// }Events doorsturen
// 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');});Segment exporteren
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`);Ratelimits
Customer.io hanteert verschillende ratelimits per API:
| API | Ratelimit | Opmerkingen |
|---|---|---|
| Track API | ~100 requests/seconde | Per workspace |
| App API | 10 requests/seconde | Per API-sleutel |
| Pipelines API | 100 requests/seconde | Aanbevolen voor bulkdata |
| Batch-endpoint | 1.000 mensen per request | Max payload 500KB |
Gebruik batch-endpoints
Voor grote syncs gebruikt Tajo het Customer.io-batch-endpoint om tot 1.000 mensen per request te versturen, wat het aantal API-calls aanzienlijk vermindert.
Probleemoplossing
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| 401 Unauthorized | Ongeldige Site ID of API-sleutel | Verifieer inloggegevens in Customer.io Settings > API |
| Mensen synchroniseren niet | Ontbrekende identifier | Zorg dat elke persoon een id of email heeft |
| Events niet getrackt | Verkeerd type API-sleutel | Gebruik de Track API-sleutel voor events, niet de App API-sleutel |
| EU-data niet toegankelijk | Verkeerde region geconfigureerd | Stel region in op eu voor EU-workspaces |
| Ratelimit-fouten | Te veel App API-calls | Verlaag pollingfrequentie voor campagnedata |
Debugmodus
connectors: customerio: debug: true log_level: verbose log_api_calls: trueVerbinding testen
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableBest practices
- Gebruik de Pipelines API voor bulkdata - De nieuwere Pipelines API is geoptimaliseerd voor high-volume-ingestion
- Stel reporting-webhooks in - Stuur Customer.io-e-mail-events realtime door naar Tajo
- Koppel lifecycle-stages - Synchroniseer Customer.io-segmentlidmaatschap naar Brevo-attributen
- Gebruik consistente identifiers - Match
id-velden tussen Customer.io en Brevo - Synchroniseer incrementeel - Vermijd volledige exports; maak gebruik van
last_activity-timestamps - Monitor webhook-levering - Stel alerts in voor mislukte webhook-leveringen
Beveiliging
- Basic Auth - De Track API authenticeert met Site ID en API-sleutel
- Bearer token - De App API gebruikt OAuth-achtige bearer tokens
- Alleen HTTPS - Alle API-communicatie versleuteld via TLS 1.2+
- Regionale datacenters - EU-datacenteroptie voor AVG-compliance
- Versleutelde opslag - Alle inloggegevens versleuteld opgeslagen in Tajo
- Webhook-signatures - Verifieer webhook-payloads met HMAC-signatures