---
title: "Connecteur Klaviyo"
description: "Guide complet d'intégration Klaviyo pour synchroniser profils, événements, listes, segments et données de campagnes avec Brevo via Tajo."
url: https://tajo.io/fr/docs/connectors/marketing/klaviyo/
markdown: https://tajo.io/fr/docs/connectors/marketing/klaviyo.md
lang: fr-FR
robots: noindex
---

Demandez un accès anticipé

Indiquez votre prénom et votre adresse e-mail professionnelle. Nous vous enverrons un lien pour confirmer votre demande d’accès à Tajo.

# Connecteur Klaviyo

Statut du connecteur: En cours En construction. Pas encore vérifié.

| Champ source | Champ de destination | Valeur d’exemple |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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 |
| --- | --- |
| **Plateforme** | Klaviyo |
| **Catégorie** | Marketing |
| **Complexité de configuration** | Moyenne |
| **Intégration officielle** | Non |
| **Données synchronisées** | Profils, Événements, Listes, Segments, Campagnes |
| **Compétences disponibles** | 10 |
| **Standard API** | JSON: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` :

```bash
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ètre | Accès | Description |
| --- | --- | --- |
| `profiles` | Read/Full | Accès aux profils de contacts |
| `events` | Read/Full | Accès aux événements suivis |
| `lists` | Read/Full | Accès aux listes de contacts |
| `segments` | Read | Accès aux segments |
| `campaigns` | Read | Accès aux données de campagnes |
| `metrics` | Read | Accès aux définitions de métriques |
| `flows` | Read | Accès aux configurations de flows |
| `catalogs` | Read | Accès aux catalogues de produits |

### Clé API publique

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

```bash
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 :

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

## Configuration

### Configuration de base

```yaml
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 :

```yaml
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 :

```yaml
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éthode | Endpoint | Description |
| --- | --- | --- |
| `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

```javascript
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

```javascript
// 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": "jane@example.com",
//     "first_name": "Jane",
//     "last_name": "Kim",
//     "phone_number": "+15551234567",
//     "properties": { "lifetime_value": 450.00 }
//   }
// }
```

### Créer un événement

```javascript
// 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: 'jane@example.com' } }
        },
        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

```javascript
// 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

| Authentification | Limite en rafale | Limite soutenue |
| --- | --- | --- |
| **Clé API privée** | 75 requêtes/sec | 700 requêtes/min |
| **OAuth** | 150 requêtes/sec | 1 500 requêtes/min |
| **API Client** | 100 requêtes/sec | N/A |
| **Opérations en masse** | 10 requêtes/sec | 100 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ème | Cause | Solution |
| --- | --- | --- |
| `400 Bad Request` | Clé API invalide ou manquante | Vérifiez que la clé API privée est correcte |
| `403 Forbidden` | Périmètre insuffisant | Vérifiez que les périmètres de la clé API correspondent aux permissions requises |
| En-tête `revision` manquant | En-tête non défini | Ajoutez `revision: 2026-01-15` à toutes les requêtes |
| Profil introuvable | Mauvais identifiant | Utilisez l’ID de profil Klaviyo, pas l’email, pour les recherches |
| Événements non synchronisés | Mauvais nom de métrique | Faites correspondre exactement les noms de métriques tels que définis dans Klaviyo |
| `429 Too Many Requests` | Limite de taux dépassée | Implémentez un backoff exponentiel, envisagez OAuth pour des limites plus élevées |
| Erreurs de format JSON:API | Mauvais content type | Utilisez `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

- [Connecteur Brevo](https://tajo.io/fr/docs/connectors/marketing/brevo)
- [Connecteur Google Ads](https://tajo.io/fr/docs/connectors/marketing/google-ads)
- [Connecteur Meta Ads](https://tajo.io/fr/docs/connectors/marketing/meta-ads)
- [Compétence de synchronisation client](https://tajo.io/fr/docs/skills/data-sync/customer-sync)
