Customer.io-connector

Verbind je Customer.io-messagingplatform met Brevo voor uniforme klantdata, cross-platform-campagnecoördinatie en geconsolideerde engagement-analytics.

Overzicht

EigenschapWaarde
PlatformCustomer.io
CategorieMarketing
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataMensen, Events, Campagnes, Segmenten
Gebruikte API’sTrack API, App API, Pipelines API
AuthenticatieSite ID + API-sleutel / App API-sleutel
Base URL’strack.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:

  1. Een Customer.io-account met API-toegang
  2. Je Site ID en Track API Key (te vinden in Settings > API Credentials)
  3. Een App API-sleutel voor het lezen van campagne- en segmentdata
  4. Een Brevo-account met API-toegang
  5. 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.

Terminal window
# Basic Auth: Site ID as username, API Key as password
curl -X POST https://track.customer.io/api/v1/customers/user123 \
-u "$SITE_ID:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'

App API (data lezen)

Wordt gebruikt voor het ophalen van campagnes, segmenten en klantdata. Authenticeert met een bearer token.

Terminal window
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

Terminal window
tajo connectors install customerio \
--site-id $CIO_SITE_ID \
--track-api-key $CIO_TRACK_API_KEY \
--app-api-key $CIO_APP_API_KEY

Configuratie

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: 14

Veldmapping

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_STAGE

Event-mapping

event_mapping:
# Customer.io event -> Brevo event
purchase_completed: ORDER_PLACED
subscription_started: SUBSCRIPTION_START
feature_activated: FEATURE_USED
support_ticket_opened: SUPPORT_REQUEST

API-endpoints

Tajo integreert met de volgende Customer.io API-endpoints:

EndpointMethodeAPIDoel
/api/v1/customers/{id}PUTTrackPersoon aanmaken of bijwerken
/api/v1/customers/{id}/eventsPOSTTrackPersoons-event tracken
/api/v1/eventsPOSTTrackAnonieme events tracken
/api/v2/entityPOSTTrackMensen/objects aanmaken of bijwerken (Pipelines)
/v1/campaignsGETAppCampagnes opvragen
/v1/campaigns/{id}/metricsGETAppCampagneprestatie-metrics
/v1/segmentsGETAppSegmenten opvragen
/v1/segments/{id}/membershipGETAppSegmentleden ophalen
/v1/customers/{id}/attributesGETAppKlantattributen ophalen
/v1/customers/{id}/activitiesGETAppKlantactiviteitenlog 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 people
await 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 Brevo
app.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:

APIRatelimitOpmerkingen
Track API~100 requests/secondePer workspace
App API10 requests/secondePer API-sleutel
Pipelines API100 requests/secondeAanbevolen voor bulkdata
Batch-endpoint1.000 mensen per requestMax 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

ProbleemOorzaakOplossing
401 UnauthorizedOngeldige Site ID of API-sleutelVerifieer inloggegevens in Customer.io Settings > API
Mensen synchroniseren nietOntbrekende identifierZorg dat elke persoon een id of email heeft
Events niet getracktVerkeerd type API-sleutelGebruik de Track API-sleutel voor events, niet de App API-sleutel
EU-data niet toegankelijkVerkeerde region geconfigureerdStel region in op eu voor EU-workspaces
Ratelimit-foutenTe veel App API-callsVerlaag pollingfrequentie voor campagnedata

Debugmodus

connectors:
customerio:
debug: true
log_level: verbose
log_api_calls: true

Verbinding testen

Terminal window
tajo connectors test customerio
# ✓ Track API connection successful
# ✓ App API connection successful
# ✓ People accessible
# ✓ Campaigns readable
# ✓ Segments listable

Best practices

  1. Gebruik de Pipelines API voor bulkdata - De nieuwere Pipelines API is geoptimaliseerd voor high-volume-ingestion
  2. Stel reporting-webhooks in - Stuur Customer.io-e-mail-events realtime door naar Tajo
  3. Koppel lifecycle-stages - Synchroniseer Customer.io-segmentlidmaatschap naar Brevo-attributen
  4. Gebruik consistente identifiers - Match id-velden tussen Customer.io en Brevo
  5. Synchroniseer incrementeel - Vermijd volledige exports; maak gebruik van last_activity-timestamps
  6. 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

Gerelateerde resources

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.