Connettore Klaviyo

Collega Klaviyo a Brevo tramite Tajo per migrare o sincronizzare i dati marketing tra le piattaforme. Sincronizza profili, eventi, liste, segmenti, flussi e dati di campagne per una strategia di marketing multi-canale unificata.

Panoramica

ProprietàValore
PiattaformaKlaviyo
CategoriaMarketing
Complessità di setupMedia
Integrazione ufficialeNo
Dati sincronizzatiProfili, Eventi, Liste, Segmenti, Campagne
Skill disponibili10
Standard APIJSON:API

Funzionalità

  • Sync dei profili - Sync bidirezionale dei profili cliente tra Klaviyo e Brevo
  • Inoltro eventi - Inoltra gli eventi tracciati di Klaviyo a Brevo per i trigger di automazione
  • Migrazione liste - Sincronizza le liste Klaviyo con le liste contatti Brevo
  • Sync dei segmenti - Esporta i segmenti Klaviyo come liste o segmenti Brevo
  • Esportazione dati flow - Estrai dati di performance dei flow per analytics cross-platform
  • Sync delle campagne - Coordina le campagne tra i canali Klaviyo e Brevo
  • Sync del catalogo - Replica i cataloghi prodotti tra le piattaforme
  • Gestione coupon - Sincronizza codici coupon e dati di utilizzo

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un account Klaviyo con accesso API
  2. Una Private API Key con gli scope appropriati
  3. La tua Klaviyo Public API Key (company ID di 6 caratteri)
  4. Un account Brevo con accesso API
  5. Un account Tajo con credenziali API

Autenticazione

Private API Key

Klaviyo utilizza chiavi API private con accesso scopato per l’autenticazione server-side. Imposta la chiave nell’header Authorization:

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

Scope delle chiavi API

Configura gli scope al momento della creazione della tua chiave privata:

ScopeAccessoDescrizione
profilesRead/FullAccesso ai profili contatti
eventsRead/FullAccesso agli eventi tracciati
listsRead/FullAccesso alle liste contatti
segmentsReadAccesso ai segmenti
campaignsReadAccesso ai dati delle campagne
metricsReadAccesso alle definizioni delle metriche
flowsReadAccesso alle configurazioni dei flow
catalogsReadAccesso ai cataloghi prodotti

Public API Key

Per il tracking client-side, usa il company ID di 6 caratteri:

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

OAuth (Integrazioni Partner)

Klaviyo supporta OAuth per partner tecnologici, offrendo maggiore sicurezza e limiti di velocità più alti:

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

Configurazione

Setup di base

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

Mappatura dei profili

Mappa le proprietà dei profili Klaviyo agli attributi di contatto 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

Mappatura degli eventi

Mappa le metriche Klaviyo agli eventi 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"

Endpoint API

MetodoEndpointDescrizione
GET/api/profiles/Elenca i profili
POST/api/profiles/Crea un profilo
PATCH/api/profiles/{id}/Aggiorna un profilo
POST/api/profile-merge/Unisci profili duplicati
GET/api/events/Elenca gli eventi
POST/api/events/Crea un evento
GET/api/lists/Elenca tutte le liste
POST/api/lists/{id}/relationships/profiles/Aggiungi profili a una lista
GET/api/segments/Elenca i segmenti
GET/api/campaigns/Elenca le campagne
GET/api/flows/Elenca i flow
GET/api/metrics/Elenca le metriche
POST/api/metric-aggregates/Interroga gli aggregati delle metriche
GET/api/catalog-items/Elenca gli elementi del catalogo

Esempi di codice

Inizializza il connettore 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
});

Sincronizza i profili su 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 }
// }
// }

Crea un 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
}
}
})
});

Interroga aggregati di metriche

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

Limiti di velocità

AutenticazioneBurst LimitSteady Limit
Private API Key75 richieste/sec700 richieste/min
OAuth150 richieste/sec1.500 richieste/min
Client API100 richieste/secN/D
Operazioni bulk10 richieste/sec100 richieste/min

Header revision richiesto

Tutte le richieste API Klaviyo richiedono l’header revision impostato su una data di versione API valida (es. 2026-01-15). Le richieste senza questo header verranno rifiutate.

Risoluzione dei problemi

ProblemaCausaSoluzione
400 Bad RequestChiave API non valida o mancanteVerifica che la chiave API privata sia corretta
403 ForbiddenScope insufficienteControlla che gli scope della chiave API corrispondano ai permessi richiesti
Header revision mancanteHeader non impostatoAggiungi revision: 2026-01-15 a tutte le richieste
Profilo non trovatoIdentificatore erratoUsa l’ID del profilo Klaviyo, non l’email, per le ricerche
Eventi non sincronizzatiNome metrica erratoAllinea i nomi delle metriche esattamente come definiti in Klaviyo
429 Too Many RequestsLimite di velocità superatoImplementa il backoff esponenziale, considera OAuth per limiti più alti
Errori formato JSON:APIContent type erratoUsa application/vnd.api+json per gli header Content-Type e Accept

Best practice

  1. Usa il formato JSON:API - Segui la specifica JSON:API per tutti i payload di richiesta e risposta
  2. Imposta l’header revision - Includi sempre l’header revision con l’ultima data di versione API
  3. Usa sparse fieldset - Richiedi solo i campi necessari con ?fields[profile]=email,first_name per ridurre la dimensione del payload
  4. Sfrutta le relazioni - Usa il parametro include di JSON:API per recuperare risorse correlate in una singola richiesta
  5. Usa la paginazione cursor - Naviga grandi result set con il parametro page[cursor]
  6. Implementa operazioni bulk - Usa endpoint bulk per import di profili in batch e creazione eventi
  7. Usa OAuth per limiti più alti - L’autenticazione OAuth fornisce limiti di velocità 2x più alti rispetto alle chiavi private

Sicurezza

  • Scope chiave API privata - Controllo accessi granulare Read/Full per tipo di risorsa
  • Supporto OAuth - Autenticazione sicura basata su token per integrazioni partner
  • Isolamento public key - Chiavi client-side limitate alle sole operazioni di creazione
  • TLS 1.2+ - Tutte le comunicazioni API cifrate in transito
  • SOC 2 Type II - Klaviyo è certificato SOC 2 Type II
  • Conformità GDPR - Data Privacy API per richieste di eliminazione profilo

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.