Connettore Customer.io

Collega la tua piattaforma di messaggistica Customer.io a Brevo per dati cliente unificati, coordinamento di campagne cross-platform e analytics di engagement consolidate.

Panoramica

ProprietàValore
PiattaformaCustomer.io
CategoriaMarketing
Complessità di setupModerata
Integrazione ufficialeNo
Dati sincronizzatiPersone, Eventi, Campagne, Segmenti
API utilizzateTrack API, App API, Pipelines API
AutenticazioneSite ID + API Key / App API Key
Base URLtrack.customer.io, api.customer.io

Funzionalità

  • Sync delle persone - Sincronizzazione bidirezionale dei profili cliente con i contatti Brevo
  • Inoltro eventi - Traccia eventi comportamentali e inoltrali a Brevo per i trigger di automazione
  • Analytics delle campagne - Sincronizza le metriche di performance delle campagne per una reportistica unificata
  • Dati workflow - Replica gli stati dei workflow Customer.io negli attributi di contatto Brevo
  • Replica dei segmenti - Replica i segmenti Customer.io come liste Brevo
  • Sync dati oggetti - Sincronizza oggetti non-persone e dati relazionali

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un account Customer.io con accesso API
  2. Il tuo Site ID e Track API Key (in Settings > API Credentials)
  3. Una chiave App API per leggere dati di campagne e segmenti
  4. Un account Brevo con accesso API
  5. Un account Tajo con un abbonamento attivo

Autenticazione

Customer.io utilizza due API separate con metodi di autenticazione diversi:

Track API (Dati comportamentali)

Usata per inviare persone, eventi e dati dispositivo. Si autentica con Site ID e API Key tramite 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 (Lettura dati)

Usata per recuperare campagne, segmenti e dati cliente. Si autentica con un Bearer token.

Terminal window
curl -X GET https://api.customer.io/v1/campaigns \
-H "Authorization: Bearer $APP_API_KEY"

Separazione delle chiavi API

La chiave Track API e la chiave App API sono credenziali diverse. La chiave Track API è usata per scrivere dati, mentre la chiave App API è per leggere dati. Entrambe sono richieste per l’integrazione completa con Tajo.

Connessione a 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

Configurazione

Setup di base

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

Mappatura dei campi

Mappa gli attributi delle persone Customer.io agli attributi di contatto Brevo:

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

Mappatura degli eventi

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

Endpoint API

Tajo si integra con i seguenti endpoint API di Customer.io:

EndpointMetodoAPIScopo
/api/v1/customers/{id}PUTTrackCrea o aggiorna una persona
/api/v1/customers/{id}/eventsPOSTTrackTraccia un evento di una persona
/api/v1/eventsPOSTTrackTraccia eventi anonimi
/api/v2/entityPOSTTrackCrea o aggiorna persone/oggetti (Pipelines)
/v1/campaignsGETAppElenca le campagne
/v1/campaigns/{id}/metricsGETAppMetriche di performance delle campagne
/v1/segmentsGETAppElenca i segmenti
/v1/segments/{id}/membershipGETAppOttieni i membri di un segmento
/v1/customers/{id}/attributesGETAppOttieni gli attributi di un cliente
/v1/customers/{id}/activitiesGETAppOttieni il log attività di un cliente

Esempi di codice

Inizializza il connettore

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'
});

Sincronizza le persone su Brevo

// 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
// }

Inoltra eventi

// 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');
});

Esporta un segmento

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`);

Limiti di velocità

Customer.io applica limiti di velocità diversi per ciascuna API:

APILimiteNote
Track API~100 richieste/secondoPer workspace
App API10 richieste/secondoPer chiave API
Pipelines API100 richieste/secondoConsigliata per dati in blocco
Endpoint batch1.000 persone per richiestaPayload massimo 500KB

Usa gli endpoint batch

Per sync di grandi dimensioni, Tajo usa l’endpoint batch di Customer.io per inviare fino a 1.000 persone per richiesta, riducendo significativamente il volume di chiamate API.

Risoluzione dei problemi

Problemi comuni

ProblemaCausaSoluzione
401 UnauthorizedSite ID o chiave API non validiVerifica le credenziali in Customer.io Settings > API
Persone non sincronizzateIdentificatore mancanteAssicurati che ogni persona abbia un id o email
Eventi non tracciatiTipo di chiave API erratoUsa la chiave Track API per gli eventi, non la chiave App API
Dati EU non accessibiliRegione configurata errataImposta region su eu per workspace EU
Errori limite di velocitàTroppe chiamate App APIRiduci la frequenza di polling per i dati delle campagne

Modalità debug

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

Testa la connessione

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

Best practice

  1. Usa la Pipelines API per dati in blocco - La nuova Pipelines API è ottimizzata per ingest ad alto volume
  2. Imposta i webhook di reporting - Inoltra gli eventi email Customer.io a Tajo in tempo reale
  3. Mappa gli stage del lifecycle - Sincronizza l’appartenenza ai segmenti Customer.io agli attributi Brevo
  4. Usa identificatori coerenti - Allinea i campi id tra Customer.io e Brevo
  5. Sincronizza in modo incrementale - Evita le esportazioni complete; sfrutta i timestamp last_activity
  6. Monitora la consegna webhook - Imposta avvisi per le consegne webhook fallite

Sicurezza

  • Basic Auth - La Track API si autentica con Site ID e API Key
  • Bearer Token - L’App API usa bearer token in stile OAuth
  • Solo HTTPS - Tutte le comunicazioni API cifrate via TLS 1.2+
  • Data center regionali - Opzione data center EU per la conformità GDPR
  • Storage cifrato - Tutte le credenziali cifrate a riposo in Tajo
  • Firme webhook - Verifica i payload webhook con firme HMAC

Risorse correlate

Subscribe to updates

developer-docs

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

auto-detect
Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.