Customer.io-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Customer.io
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
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