Customer.io Connector
Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.
Illustration · eksempeldata
Eksempel på synkronisering
Kilde
Customer.io
Connectorstatus: Planlagt
Destination
Dit andet værktøj
Connectorstatus: Eget værktøj
Feltmapping
| Kildefelt | Destinationsfelt | Eksempelværdi |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Udkast
- Gennemse én post
- Godkend denne version
Status gælder den enkelte connector og garanterer ikke, at denne synkronisering er klar. Felterne er illustrative. Tjek det faktiske skema og tilladelser før en synkronisering.
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