Conector Klaviyo

Conecte o Klaviyo ao Brevo através do Tajo para migrar ou sincronizar dados de marketing entre plataformas. Sincronize perfis, eventos, listas, segmentos, flows e dados de campanha para uma estratégia de marketing multicanal unificada.

Visão geral

PropriedadeValor
PlataformaKlaviyo
CategoriaMarketing
Complexidade de configuraçãoMédia
Integração oficialNão
Dados sincronizadosPerfis, Eventos, Listas, Segmentos, Campanhas
Skills disponíveis10
Padrão de APIJSON:API

Recursos

  • Sincronização de perfis - Sincronização bidirecional de perfis de clientes entre Klaviyo e Brevo
  • Encaminhamento de eventos - Encaminhe eventos rastreados do Klaviyo para o Brevo como gatilhos de automação
  • Migração de listas - Sincronize listas do Klaviyo para listas de contatos do Brevo
  • Sincronização de segmentos - Exporte segmentos do Klaviyo como listas ou segmentos do Brevo
  • Exportação de dados de flow - Extraia dados de desempenho de flow para analytics multiplataforma
  • Sincronização de campanhas - Coordene campanhas entre canais do Klaviyo e do Brevo
  • Sincronização de catálogo - Espelhe catálogos de produtos entre plataformas
  • Gestão de cupons - Sincronize códigos de cupom e dados de uso

Pré-requisitos

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

  1. Uma conta Klaviyo com acesso à API
  2. Uma Private API Key com os escopos apropriados
  3. Sua Public API Key do Klaviyo (company ID de 6 caracteres)
  4. Uma conta Brevo com acesso à API
  5. Uma conta Tajo com credenciais de API

Autenticação

Private API Key

O Klaviyo usa chaves API privadas com acesso por escopo para autenticação server-side. Defina a chave no cabeçalho Authorization:

Terminal window
curl https://a.klaviyo.com/api/profiles/ \
-H "Authorization: Klaviyo-API-Key your-private-api-key" \
-H "revision: 2026-01-15"

Escopos de chave API

Configure os escopos ao criar sua chave privada:

EscopoAcessoDescrição
profilesRead/FullAcessar perfis de contato
eventsRead/FullAcessar eventos rastreados
listsRead/FullAcessar listas de contato
segmentsReadAcessar segmentos
campaignsReadAcessar dados de campanha
metricsReadAcessar definições de métrica
flowsReadAcessar configurações de flow
catalogsReadAcessar catálogos de produtos

Public API Key

Para rastreamento client-side, use o company ID de 6 caracteres:

Terminal window
curl -X POST "https://a.klaviyo.com/client/events/?company_id=COMPANY_ID" \
-H "Content-Type: application/json" \
-d '{"data": {...}}'

OAuth (Integrações de parceiros)

O Klaviyo suporta OAuth para parceiros de tecnologia, oferecendo segurança aprimorada e limites de taxa maiores:

Terminal window
curl https://a.klaviyo.com/api/profiles/ \
-H "Authorization: Bearer YOUR_OAUTH_TOKEN" \
-H "revision: 2026-01-15"

Configuração

Configuração básica

connectors:
klaviyo:
enabled: true
private_api_key: "your-klaviyo-private-key"
public_api_key: "XXXXXX"
api_revision: "2026-01-15"
# Data sync options
sync:
profiles: true
events: true
lists: true
segments: true
catalogs: false
# Brevo list assignment
lists:
all_contacts: 20
subscribers: 21
high_value: 22

Mapeamento de perfis

Mapeie propriedades de perfil do Klaviyo para atributos de contato do Brevo:

profile_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
phone_number: SMS
city: CITY
region: REGION
country: COUNTRY
zip: ZIP
organization: COMPANY
title: JOB_TITLE
# Custom properties
lifetime_value: LTV
total_orders: ORDER_COUNT
last_order_date: LAST_ORDER_DATE
preferred_channel: CHANNEL_PREF

Mapeamento de eventos

Mapeie métricas do Klaviyo para eventos do Brevo:

event_mapping:
"Placed Order": "order_completed"
"Ordered Product": "product_purchased"
"Started Checkout": "checkout_started"
"Added to Cart": "cart_updated"
"Viewed Product": "product_viewed"
"Subscribed to List": "customer_subscribed"
"Received Email": "email_received"
"Opened Email": "email_opened"
"Clicked Email": "email_clicked"

Endpoints da API

MétodoEndpointDescrição
GET/api/profiles/Listar perfis
POST/api/profiles/Criar um perfil
PATCH/api/profiles/{id}/Atualizar um perfil
POST/api/profile-merge/Mesclar perfis duplicados
GET/api/events/Listar eventos
POST/api/events/Criar um evento
GET/api/lists/Listar todas as listas
POST/api/lists/{id}/relationships/profiles/Adicionar perfis a uma lista
GET/api/segments/Listar segmentos
GET/api/campaigns/Listar campanhas
GET/api/flows/Listar flows
GET/api/metrics/Listar métricas
POST/api/metric-aggregates/Consultar agregados de métricas
GET/api/catalog-items/Listar itens de catálogo

Exemplos de código

Inicializar o conector Klaviyo

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Klaviyo account
await tajo.connectors.connect('klaviyo', {
privateApiKey: process.env.KLAVIYO_PRIVATE_KEY,
publicApiKey: process.env.KLAVIYO_PUBLIC_KEY
});

Sincronizar perfis para o Brevo

// Fetch Klaviyo profiles and sync to Brevo
const response = await fetch('https://a.klaviyo.com/api/profiles/', {
headers: {
'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
'revision': '2026-01-15',
'Accept': 'application/vnd.api+json'
}
});
const { data } = await response.json();
// Each profile follows JSON:API format
// {
// "type": "profile",
// "id": "01ABCDEF",
// "attributes": {
// "email": "[email protected]",
// "first_name": "Jane",
// "last_name": "Kim",
// "phone_number": "+15551234567",
// "properties": { "lifetime_value": 450.00 }
// }
// }

Criar um evento

// Track an event in Klaviyo (forwarded to Brevo via Tajo)
await fetch('https://a.klaviyo.com/api/events/', {
method: 'POST',
headers: {
'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
'revision': '2026-01-15',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
},
body: JSON.stringify({
data: {
type: 'event',
attributes: {
metric: {
data: { type: 'metric', attributes: { name: 'Placed Order' } }
},
profile: {
data: { type: 'profile', attributes: { email: '[email protected]' } }
},
properties: {
OrderId: 'ORD-1234',
Value: 89.99,
Items: [
{ ProductName: 'Widget Pro', Price: 89.99, Quantity: 1 }
]
},
value: 89.99
}
}
})
});

Consultar agregados de métrica

// Get aggregate metric data for reporting
await fetch('https://a.klaviyo.com/api/metric-aggregates/', {
method: 'POST',
headers: {
'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
'revision': '2026-01-15',
'Content-Type': 'application/vnd.api+json'
},
body: JSON.stringify({
data: {
type: 'metric-aggregate',
attributes: {
metric_id: 'METRIC_ID',
measurements: ['count', 'sum_value'],
interval: 'day',
filter: ['greater-or-equal(datetime,2024-01-01)',
'less-than(datetime,2024-02-01)']
}
}
})
});

Limites de taxa

AutenticaçãoLimite de burstLimite estável
Private API Key75 requisições/seg700 requisições/min
OAuth150 requisições/seg1.500 requisições/min
Client API100 requisições/segN/A
Operações em lote10 requisições/seg100 requisições/min

Cabeçalho de revisão da API obrigatório

Todas as requisições da Klaviyo API exigem o cabeçalho revision definido com uma data de versão de API válida (por exemplo, 2026-01-15). Requisições sem esse cabeçalho serão rejeitadas.

Solução de problemas

ProblemaCausaSolução
400 Bad RequestChave API inválida ou ausenteVerifique se a private API key está correta
403 ForbiddenEscopo insuficienteVerifique se os escopos da chave API correspondem às permissões necessárias
Cabeçalho revision ausenteCabeçalho não definidoAdicione revision: 2026-01-15 a todas as requisições
Perfil não encontradoIdentificador incorretoUse o ID de perfil do Klaviyo, não o e-mail, para consultas
Eventos não sincronizandoNome de métrica incorretoCombine os nomes exatos das métricas conforme definidos no Klaviyo
429 Too Many RequestsLimite de taxa excedidoImplemente backoff exponencial, considere OAuth para limites maiores
Erros de formato JSON:APIContent type incorretoUse application/vnd.api+json para os cabeçalhos Content-Type e Accept

Melhores práticas

  1. Use o formato JSON:API - Siga a especificação JSON:API para todos os payloads de requisição e resposta
  2. Defina o cabeçalho revision - Sempre inclua o cabeçalho revision com a data da versão mais recente da API
  3. Use sparse fieldsets - Solicite apenas campos necessários com ?fields[profile]=email,first_name para reduzir o tamanho do payload
  4. Aproveite relacionamentos - Use o parâmetro include do JSON:API para buscar recursos relacionados em uma única requisição
  5. Use paginação por cursor - Navegue por grandes conjuntos de resultados com o parâmetro page[cursor]
  6. Implemente operações em lote - Use endpoints em lote para importações de perfil em lote e criação de eventos
  7. Use OAuth para limites maiores - A autenticação OAuth fornece limites de taxa 2x maiores do que chaves privadas

Segurança

  • Escopos de chave API privada - Controle de acesso Read/Full granular por tipo de recurso
  • Suporte a OAuth - Autenticação segura baseada em token para integrações de parceiros
  • Isolamento de chave pública - Chaves client-side limitadas a operações apenas de criação
  • TLS 1.2+ - Toda comunicação com a API é criptografada em trânsito
  • SOC 2 Type II - O Klaviyo é certificado SOC 2 Type II
  • Conformidade GDPR - Data Privacy API para solicitações de exclusão de perfil

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.