Customer.io Connector
Forbind din Customer.io-beskedplatform til Brevo for forenede kundedata, tværplatforms-kampagnekoordinering og konsoliderede engagementanalyser.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Customer.io |
| Kategori | Marketing |
| Opsætningskompleksitet | Moderat |
| Officiel integration | Nej |
| Synkroniserede data | Personer, hændelser, kampagner, segmenter |
| Anvendte API’er | Track API, App API, Pipelines API |
| Autentifikation | Site ID + API Key / App API Key |
| Base-URL’er | track.customer.io, api.customer.io |
Funktioner
- Personsynkronisering - Tovejssynkronisering af kundeprofiler med Brevo-kontakter
- Hændelsesvideresendelse - Spor adfærdshændelser og videresend til Brevo som automatiseringstriggere
- Kampagneanalyse - Synkronisér kampagneperformance-metrikker til forenet rapportering
- Workflow-data - Spejl Customer.io-workflowtilstande i Brevo-kontaktattributter
- Segmentreplikering - Replicér Customer.io-segmenter som Brevo-lister
- Synkronisering af objektdata - Synkronisér ikke-persondata-objekter og relationsdata
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Customer.io-konto med API-adgang
- Dit Site ID og din Track API Key (findes i Settings > API Credentials)
- En App API-nøgle til læsning af kampagne- og segmentdata
- En Brevo-konto med API-adgang
- En Tajo-konto med et aktivt abonnement
Autentifikation
Customer.io bruger to separate API’er med forskellige autentifikationsmetoder:
Track API (adfærdsdata)
Bruges til at sende personer, hændelser og enhedsdata. Autentificerer med Site ID og API-nøgle 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æse data)
Bruges til at hente kampagner, segmenter og kundedata. Autentificerer med et Bearer-token.
curl -X GET https://api.customer.io/v1/campaigns \ -H "Authorization: Bearer $APP_API_KEY"Adskillelse af API-nøgler
Track API-nøglen og App API-nøglen er forskellige legitimationsoplysninger. Track API-nøglen bruges til skrivning af data, mens App API-nøglen er til læsning af data. Begge kræves til fuld Tajo-integration.
Forbind til 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æggende opsætning
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: 14Feltmapping
Knyt Customer.io-personattributter til Brevo-kontaktattributter:
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ændelsesmapping
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 integrerer med følgende Customer.io API-endpoints:
| Endpoint | Metode | API | Formål |
|---|---|---|---|
/api/v1/customers/{id} | PUT | Track | Opret eller opdatér en person |
/api/v1/customers/{id}/events | POST | Track | Spor en persons hændelse |
/api/v1/events | POST | Track | Spor anonyme hændelser |
/api/v2/entity | POST | Track | Opret eller opdatér personer/objekter (Pipelines) |
/v1/campaigns | GET | App | Vis kampagner |
/v1/campaigns/{id}/metrics | GET | App | Kampagneperformance-metrikker |
/v1/segments | GET | App | Vis segmenter |
/v1/segments/{id}/membership | GET | App | Hent segmentmedlemmer |
/v1/customers/{id}/attributes | GET | App | Hent kundeattributter |
/v1/customers/{id}/activities | GET | App | Hent kundeaktivitetslog |
Kodeeksempler
Initialisér konnektor
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'});Synkronisér personer til 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// }Videresend 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');});Eksportér 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`);Ratebegrænsninger
Customer.io håndhæver forskellige ratebegrænsninger per API:
| API | Ratebegrænsning | Noter |
|---|---|---|
| Track API | ~100 forespørgsler/sekund | Per workspace |
| App API | 10 forespørgsler/sekund | Per API-nøgle |
| Pipelines API | 100 forespørgsler/sekund | Anbefalet til massedata |
| Batch-endpoint | 1.000 personer per forespørgsel | Maks. payload 500 KB |
Brug batch-endpoints
Til store synkroniseringer bruger Tajo Customer.io batch-endpointet til at sende op til 1.000 personer per forespørgsel, hvilket reducerer API-kaldsvolumen markant.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldigt Site ID eller API-nøgle | Verificér legitimationsoplysninger i Customer.io Settings > API |
| Personer synkroniseres ikke | Manglende identifikator | Sørg for, at hver person har et id eller en email |
| Hændelser ikke sporet | Forkert API-nøgletype | Brug Track API-nøgle til hændelser, ikke App API-nøgle |
| EU-data utilgængelige | Forkert region konfigureret | Sæt region til eu for EU-workspaces |
| Ratebegrænsningsfejl | For mange App API-kald | Reducér pollingfrekvens for kampagnedata |
Fejlfindingstilstand
connectors: customerio: debug: true log_level: verbose log_api_calls: trueTest forbindelse
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableBest practices
- Brug Pipelines API til massedata - Det nyere Pipelines API er optimeret til ingest med højt volumen
- Opsæt rapporteringswebhooks - Videresend Customer.io e-mailhændelser til Tajo i realtid
- Map lifecycle-stadier - Synkronisér Customer.io-segmentmedlemskab til Brevo-attributter
- Brug konsekvente identifikatorer - Match
id-felter på tværs af Customer.io og Brevo - Synkronisér inkrementelt - Undgå fulde eksporter; udnyt
last_activity-tidsstempler - Overvåg webhook-levering - Opsæt advarsler for mislykkede webhook-leveringer
Sikkerhed
- Basic Auth - Track API autentificerer med Site ID og API-nøgle
- Bearer-token - App API bruger OAuth-lignende bearer-tokens
- Kun HTTPS - Al API-kommunikation krypteret via TLS 1.2+
- Regionale datacentre - EU-datacentermulighed for GDPR-overholdelse
- Krypteret lagring - Alle legitimationsoplysninger krypteres i hvile i Tajo
- Webhook-signaturer - Verificér webhook-payloads med HMAC-signaturer