Connecteur Customer.io

Connectez votre plateforme de messagerie Customer.io à Brevo pour des données client unifiées, une coordination de campagnes cross-plateforme et des analyses d’engagement consolidées.

Vue d’ensemble

PropriétéValeur
PlateformeCustomer.io
CatégorieMarketing
Complexité d’installationModérée
Intégration officielleNon
Données synchroniséesPersonnes, événements, campagnes, segments
APIs utiliséesTrack API, App API, Pipelines API
AuthentificationSite ID + API Key / App API Key
URLs de basetrack.customer.io, api.customer.io

Fonctionnalités

  • Synchronisation des personnes, Synchronisation bidirectionnelle des profils clients avec les contacts Brevo
  • Transfert d’événements, Suivez les événements comportementaux et transmettez-les à Brevo pour déclencher des automatisations
  • Analytics de campagne, Synchronisez les métriques de performance des campagnes pour un reporting unifié
  • Données de workflow, Reflétez les états des workflows Customer.io dans les attributs de contact Brevo
  • Réplication de segments, Répliquez les segments Customer.io en listes Brevo
  • Synchronisation des données d’objet, Synchronisez les objets non-personnes et les données de relations

Prérequis

Avant de commencer, assurez-vous de disposer de :

  1. Un compte Customer.io avec accès API
  2. Votre Site ID et Track API Key (disponibles dans Settings > API Credentials)
  3. Une clé App API pour lire les données de campagnes et segments
  4. Un compte Brevo avec accès API
  5. Un compte Tajo avec un abonnement actif

Authentification

Customer.io utilise deux APIs distinctes avec des méthodes d’authentification différentes :

Track API (données comportementales)

Utilisée pour envoyer les personnes, événements et données d’appareils. S’authentifie via Site ID et API Key avec 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 (lecture des données)

Utilisée pour récupérer campagnes, segments et données client. S’authentifie avec un Bearer token.

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

Séparation des clés API

La Track API key et l’App API key sont des identifiants différents. La Track API key est utilisée pour écrire des données, tandis que l’App API key sert à en lire. Les deux sont requises pour une intégration Tajo complète.

Connexion à 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

Configuration

Configuration de 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

Mappage des champs

Mappez les attributs des personnes Customer.io vers les attributs de contact 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

Mappage des événements

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

Endpoints API

Tajo s’intègre avec les endpoints de l’API Customer.io suivants :

EndpointMéthodeAPIObjectif
/api/v1/customers/{id}PUTTrackCréer ou mettre à jour une personne
/api/v1/customers/{id}/eventsPOSTTrackSuivre un événement de personne
/api/v1/eventsPOSTTrackSuivre des événements anonymes
/api/v2/entityPOSTTrackCréer ou mettre à jour personnes/objets (Pipelines)
/v1/campaignsGETAppLister les campagnes
/v1/campaigns/{id}/metricsGETAppMétriques de performance de campagne
/v1/segmentsGETAppLister les segments
/v1/segments/{id}/membershipGETAppObtenir les membres d’un segment
/v1/customers/{id}/attributesGETAppObtenir les attributs d’un client
/v1/customers/{id}/activitiesGETAppObtenir le journal d’activité d’un client

Exemples de code

Initialiser le connecteur

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

Synchroniser les personnes vers 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
// }

Transmettre les événements

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

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

Limites de débit

Customer.io applique différentes limites de débit par API :

APILimite de débitNotes
Track API~100 requêtes/secondePar workspace
App API10 requêtes/secondePar clé API
Pipelines API100 requêtes/secondeRecommandée pour les données en masse
Endpoint batch1 000 personnes par requêtePayload max 500 Ko

Utilisez les endpoints batch

Pour les synchronisations volumineuses, Tajo utilise l’endpoint batch de Customer.io pour envoyer jusqu’à 1 000 personnes par requête, réduisant considérablement le volume d’appels API.

Dépannage

Problèmes courants

ProblèmeCauseSolution
401 UnauthorizedSite ID ou clé API invalideVérifiez les identifiants dans Customer.io Settings > API
Personnes non synchroniséesIdentifiant manquantAssurez-vous que chaque personne a un id ou un email
Événements non suivisType de clé API incorrectUtilisez la Track API key pour les événements, pas l’App API key
Données EU inaccessiblesMauvaise région configuréeRéglez la région sur eu pour les workspaces EU
Erreurs de limite de débitTrop d’appels App APIRéduisez la fréquence de polling pour les données de campagne

Mode débogage

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

Tester la connexion

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

Bonnes pratiques

  1. Utilisez la Pipelines API pour les données en masse, La Pipelines API plus récente est optimisée pour l’ingestion à haut volume
  2. Configurez les webhooks de reporting, Transmettez les événements e-mail Customer.io à Tajo en temps réel
  3. Mappez les étapes de cycle de vie, Synchronisez les abonnements aux segments Customer.io vers les attributs Brevo
  4. Utilisez des identifiants cohérents, Faites correspondre les champs id entre Customer.io et Brevo
  5. Synchronisez de manière incrémentale, Évitez les exports complets ; exploitez les horodatages last_activity
  6. Surveillez la livraison des webhooks, Configurez des alertes pour les livraisons de webhook échouées

Sécurité

  • Basic Auth, La Track API s’authentifie avec Site ID et API Key
  • Bearer Token, L’App API utilise des bearer tokens de style OAuth
  • HTTPS uniquement, Toutes les communications API chiffrées via TLS 1.2+
  • Centres de données régionaux, Option de centre de données UE pour la conformité RGPD
  • Stockage chiffré, Tous les identifiants chiffrés au repos dans Tajo
  • Signatures de webhook, Vérifiez les payloads webhook avec des signatures HMAC

Ressources associées

Subscribe to updates

developer-docs

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

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.