Conector Customer.io

Conecte sua plataforma de mensageria Customer.io ao Brevo para dados de cliente unificados, coordenação de campanhas multiplataforma e analytics de engajamento consolidados.

Visão geral

PropriedadeValor
PlataformaCustomer.io
CategoriaMarketing
Complexidade de configuraçãoModerada
Integração oficialNão
Dados sincronizadosPessoas, Eventos, Campanhas, Segmentos
APIs usadasTrack API, App API, Pipelines API
AutenticaçãoSite ID + API Key / App API Key
URLs basetrack.customer.io, api.customer.io

Recursos

  • Sincronização de pessoas - Sincronização bidirecional de perfis de cliente com contatos do Brevo
  • Encaminhamento de eventos - Rastreie eventos comportamentais e encaminhe para o Brevo como gatilhos de automação
  • Analytics de campanha - Sincronize métricas de desempenho de campanha para relatórios unificados
  • Dados de workflow - Espelhe estados de workflow do Customer.io em atributos de contato do Brevo
  • Replicação de segmentos - Replique segmentos do Customer.io como listas do Brevo
  • Sincronização de dados de objeto - Sincronize objetos que não são pessoas e dados de relacionamento

Pré-requisitos

Antes de começar, certifique-se de ter:

  1. Uma conta Customer.io com acesso à API
  2. Seu Site ID e Track API Key (encontrados em Settings > API Credentials)
  3. Uma App API key para ler dados de campanhas e segmentos
  4. Uma conta Brevo com acesso à API
  5. Uma conta Tajo com assinatura ativa

Autenticação

O Customer.io usa duas APIs separadas com métodos de autenticação diferentes:

Track API (Dados comportamentais)

Usada para enviar pessoas, eventos e dados de dispositivos. Autentica com Site ID e API Key via 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 (Leitura de dados)

Usada para recuperar campanhas, segmentos e dados de clientes. Autentica com um token Bearer.

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

Separação de chaves API

A Track API key e a App API key são credenciais diferentes. A Track API key é usada para gravar dados, enquanto a App API key é para ler dados. Ambas são necessárias para a integração completa do Tajo.

Conectando ao 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

Configuração

Configuração básica

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

Mapeamento de campos

Mapeie atributos de pessoa do Customer.io para atributos de contato do 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

Mapeamento de eventos

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 da API

O Tajo integra-se com os seguintes endpoints da API do Customer.io:

EndpointMétodoAPIFinalidade
/api/v1/customers/{id}PUTTrackCriar ou atualizar uma pessoa
/api/v1/customers/{id}/eventsPOSTTrackRastrear um evento de pessoa
/api/v1/eventsPOSTTrackRastrear eventos anônimos
/api/v2/entityPOSTTrackCriar ou atualizar pessoas/objetos (Pipelines)
/v1/campaignsGETAppListar campanhas
/v1/campaigns/{id}/metricsGETAppMétricas de desempenho de campanha
/v1/segmentsGETAppListar segmentos
/v1/segments/{id}/membershipGETAppObter membros de segmento
/v1/customers/{id}/attributesGETAppObter atributos de cliente
/v1/customers/{id}/activitiesGETAppObter log de atividade do cliente

Exemplos de código

Inicializar o conector

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

Sincronizar pessoas para o 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
// }

Encaminhar eventos

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

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

Limites de taxa

O Customer.io aplica diferentes limites de taxa por API:

APILimite de taxaObservações
Track API~100 requisições/segundoPor workspace
App API10 requisições/segundoPor chave API
Pipelines API100 requisições/segundoRecomendado para dados em volume
Endpoint de lote1.000 pessoas por requisiçãoPayload máx. 500KB

Use endpoints de lote

Para grandes sincronizações, o Tajo usa o endpoint de lote do Customer.io para enviar até 1.000 pessoas por requisição, reduzindo significativamente o volume de chamadas à API.

Solução de problemas

Problemas comuns

ProblemaCausaSolução
401 UnauthorizedSite ID ou chave API inválidosVerifique credenciais em Customer.io Settings > API
Pessoas não sincronizandoIdentificador ausenteCertifique-se de que cada pessoa tenha um id ou email
Eventos não rastreadosTipo de chave API incorretoUse a Track API key para eventos, não a App API key
Dados da UE inacessíveisRegião configurada incorretamenteDefina a região como eu para workspaces da UE
Erros de limite de taxaMuitas chamadas à App APIReduza a frequência de polling para dados de campanha

Modo de depuração

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

Testar conexão

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

Melhores práticas

  1. Use a Pipelines API para dados em volume - A Pipelines API mais recente é otimizada para ingestão de alto volume
  2. Configure webhooks de relatório - Encaminhe eventos de e-mail do Customer.io para o Tajo em tempo real
  3. Mapeie estágios do ciclo de vida - Sincronize associação de segmentos do Customer.io para atributos do Brevo
  4. Use identificadores consistentes - Combine campos id entre Customer.io e Brevo
  5. Sincronize incrementalmente - Evite exportações completas; aproveite os timestamps last_activity
  6. Monitore entrega de webhooks - Configure alertas para entregas de webhook com falha

Segurança

  • Basic Auth - A Track API autentica com Site ID e API Key
  • Bearer Token - A App API usa tokens bearer no estilo OAuth
  • Somente HTTPS - Toda comunicação com a API é criptografada via TLS 1.2+
  • Data centers regionais - Opção de data center na UE para conformidade com GDPR
  • Armazenamento criptografado - Todas as credenciais são criptografadas em repouso no Tajo
  • Assinaturas de webhook - Verifique payloads de webhook com assinaturas HMAC

Recursos relacionados

Subscribe to updates

developer-docs

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

auto-detect
Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.