Connecteur Klaviyo

Connectez Klaviyo à Brevo via Tajo pour migrer ou synchroniser les données marketing entre les plateformes. Synchronisez profils, événements, listes, segments, flows et données de campagnes pour une stratégie marketing multicanal unifiée.

Vue d’ensemble

PropriétéValeur
PlateformeKlaviyo
CatégorieMarketing
Complexité de configurationMoyenne
Intégration officielleNon
Données synchroniséesProfils, Événements, Listes, Segments, Campagnes
Compétences disponibles10
Standard APIJSON:API

Fonctionnalités

  • Synchronisation des profils - Synchronisation bidirectionnelle des profils clients entre Klaviyo et Brevo
  • Transfert d’événements - Transfert des événements suivis par Klaviyo vers Brevo pour les déclencheurs d’automatisation
  • Migration de listes - Synchronisation des listes Klaviyo vers les listes de contacts Brevo
  • Synchronisation des segments - Export des segments Klaviyo en tant que listes ou segments Brevo
  • Export des données de flow - Récupération des données de performance des flows pour des analytiques multiplateforme
  • Synchronisation des campagnes - Coordination des campagnes entre les canaux Klaviyo et Brevo
  • Synchronisation des catalogues - Mise en miroir des catalogues de produits entre plateformes
  • Gestion des coupons - Synchronisation des codes de coupons et données d’utilisation

Prérequis

Avant de commencer, assurez-vous d’avoir :

  1. Un compte Klaviyo avec accès API
  2. Une clé API privée avec les périmètres appropriés
  3. Votre clé API publique Klaviyo (ID d’entreprise à 6 caractères)
  4. Un compte Brevo avec accès API
  5. Un compte Tajo avec identifiants API

Authentification

Clé API privée

Klaviyo utilise des clés API privées avec accès à périmètre réduit pour l’authentification côté serveur. Définissez la clé dans l’en-tête Authorization :

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

Périmètres de clé API

Configurez les périmètres lors de la création de votre clé privée :

PérimètreAccèsDescription
profilesRead/FullAccès aux profils de contacts
eventsRead/FullAccès aux événements suivis
listsRead/FullAccès aux listes de contacts
segmentsReadAccès aux segments
campaignsReadAccès aux données de campagnes
metricsReadAccès aux définitions de métriques
flowsReadAccès aux configurations de flows
catalogsReadAccès aux catalogues de produits

Clé API publique

Pour le suivi côté client, utilisez l’ID d’entreprise à 6 caractères :

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

OAuth (Intégrations partenaires)

Klaviyo prend en charge OAuth pour les partenaires technologiques, offrant une meilleure sécurité et des limites de taux plus élevées :

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

Configuration

Configuration de base

connectors:
klaviyo:
enabled: true
private_api_key: "your-klaviyo-private-key"
public_api_key: "XXXXXX"
api_revision: "2026-01-15"
# Options de synchronisation des données
sync:
profiles: true
events: true
lists: true
segments: true
catalogs: false
# Assignation de listes Brevo
lists:
all_contacts: 20
subscribers: 21
high_value: 22

Mappage des profils

Mappez les propriétés de profil Klaviyo aux attributs de contact 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
# Propriétés personnalisées
lifetime_value: LTV
total_orders: ORDER_COUNT
last_order_date: LAST_ORDER_DATE
preferred_channel: CHANNEL_PREF

Mappage des événements

Mappez les métriques Klaviyo aux événements 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 API

MéthodeEndpointDescription
GET/api/profiles/Lister les profils
POST/api/profiles/Créer un profil
PATCH/api/profiles/{id}/Mettre à jour un profil
POST/api/profile-merge/Fusionner les profils dupliqués
GET/api/events/Lister les événements
POST/api/events/Créer un événement
GET/api/lists/Lister toutes les listes
POST/api/lists/{id}/relationships/profiles/Ajouter des profils à une liste
GET/api/segments/Lister les segments
GET/api/campaigns/Lister les campagnes
GET/api/flows/Lister les flows
GET/api/metrics/Lister les métriques
POST/api/metric-aggregates/Interroger les agrégats de métriques
GET/api/catalog-items/Lister les éléments du catalogue

Exemples de code

Initialiser le connecteur Klaviyo

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

Synchroniser les profils vers Brevo

// Récupérer les profils Klaviyo et les synchroniser vers 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();
// Chaque profil suit le format JSON:API
// {
// "type": "profile",
// "id": "01ABCDEF",
// "attributes": {
// "email": "[email protected]",
// "first_name": "Jane",
// "last_name": "Kim",
// "phone_number": "+15551234567",
// "properties": { "lifetime_value": 450.00 }
// }
// }

Créer un événement

// Suivre un événement dans Klaviyo (transféré vers 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
}
}
})
});

Interroger les agrégats de métriques

// Obtenir des données de métriques agrégées pour le 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 taux

AuthentificationLimite en rafaleLimite soutenue
Clé API privée75 requêtes/sec700 requêtes/min
OAuth150 requêtes/sec1 500 requêtes/min
API Client100 requêtes/secN/A
Opérations en masse10 requêtes/sec100 requêtes/min

En-tête de révision API requis

Toutes les requêtes à l’API Klaviyo nécessitent l’en-tête revision défini sur une date de version API valide (ex. 2026-01-15). Les requêtes sans cet en-tête seront rejetées.

Dépannage

ProblèmeCauseSolution
400 Bad RequestClé API invalide ou manquanteVérifiez que la clé API privée est correcte
403 ForbiddenPérimètre insuffisantVérifiez que les périmètres de la clé API correspondent aux permissions requises
En-tête revision manquantEn-tête non définiAjoutez revision: 2026-01-15 à toutes les requêtes
Profil introuvableMauvais identifiantUtilisez l’ID de profil Klaviyo, pas l’email, pour les recherches
Événements non synchronisésMauvais nom de métriqueFaites correspondre exactement les noms de métriques tels que définis dans Klaviyo
429 Too Many RequestsLimite de taux dépasséeImplémentez un backoff exponentiel, envisagez OAuth pour des limites plus élevées
Erreurs de format JSON:APIMauvais content typeUtilisez application/vnd.api+json pour les en-têtes Content-Type et Accept

Bonnes pratiques

  1. Utilisez le format JSON:API - Suivez la spécification JSON:API pour tous les payloads de requête et réponse
  2. Définissez l’en-tête revision - Incluez toujours l’en-tête revision avec la date de version API la plus récente
  3. Utilisez des sparse fieldsets - Demandez uniquement les champs nécessaires avec ?fields[profile]=email,first_name pour réduire la taille du payload
  4. Exploitez les relations - Utilisez le paramètre include de JSON:API pour récupérer des ressources liées en une seule requête
  5. Utilisez la pagination par curseur - Naviguez dans les grands ensembles de résultats avec le paramètre page[cursor]
  6. Implémentez les opérations en masse - Utilisez les endpoints bulk pour les imports de profils en batch et la création d’événements
  7. Utilisez OAuth pour des limites plus élevées - L’authentification OAuth offre des limites de taux 2x supérieures aux clés privées

Sécurité

  • Périmètres de clés API privées - Contrôle d’accès granulaire Read/Full par type de ressource
  • Support OAuth - Authentification sécurisée par jetons pour les intégrations partenaires
  • Isolation des clés publiques - Clés côté client limitées aux opérations de création uniquement
  • TLS 1.2+ - Toutes les communications API chiffrées en transit
  • SOC 2 Type II - Klaviyo est certifié SOC 2 Type II
  • Conformité RGPD - API Data Privacy pour les demandes de suppression de profils

Ressources lié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.