---
title: "Connecteur Mixpanel"
description: "Guide complet d'intégration Mixpanel pour synchroniser événements d'analyse produit, profils utilisateur et cohortes avec Brevo via Tajo."
url: https://tajo.io/fr/docs/connectors/custom/mixpanel/
markdown: https://tajo.io/fr/docs/connectors/custom/mixpanel.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 Mixpanel

Statut du connecteur: Prévu Pas encore construit. Tajo n'exécute pas ce connecteur aujourd'hui.

| 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 Mixpanel à Brevo via Tajo pour relier l’analyse produit à l’automatisation marketing. Synchronisez profils utilisateur, événements comportementaux et cohortes pour créer des campagnes pilotées par les données réelles d’usage produit.

## Vue d’ensemble

| Propriété | Valeur |
| --- | --- |
| **Plateforme** | Mixpanel |
| **Catégorie** | Analytics (Custom) |
| **Complexité d’installation** | Moyenne |
| **Intégration officielle** | Non |
| **Données synchronisées** | Événements, profils, cohortes, groupes |
| **Skills disponibles** | 7 |

## Fonctionnalités

- **Ingestion d’événements**, Importez les événements track via l’Ingestion API de Mixpanel dans les workflows Brevo
- **Synchronisation des profils utilisateur**, Mappez les propriétés de profil utilisateur Mixpanel vers les attributs de contact Brevo
- **Export de cohortes**, Synchronisez les cohortes Mixpanel vers des listes de contacts Brevo pour des campagnes ciblées
- **Analytics de groupes**, Synchronisez les données au niveau groupe pour le marketing B2B basé sur les comptes
- **Gestion d’identité**, Exploitez l’identity merge de Mixpanel pour des profils clients unifiés
- **Requêtes JQL**, Exécutez des requêtes JQL personnalisées pour extraire des jeux de données spécifiques vers Brevo
- **Lookup tables**, Synchronisez les données d’enrichissement depuis les lookup tables Mixpanel

## Prérequis

Avant de commencer, assurez-vous de disposer de :

1. Un compte Mixpanel avec un projet créé
2. Votre Project Token Mixpanel pour le tracking côté client
3. Un Service Account avec les permissions adéquates pour l’accès API côté serveur
4. Un compte Brevo avec accès API
5. Un compte Tajo avec identifiants API

## Authentification

### Service Accounts (recommandé)

Mixpanel recommande d’utiliser des Service Accounts pour l’authentification API. Les Service Accounts utilisent HTTP Basic Auth avec un nom d’utilisateur (username du service account) et un mot de passe (secret du service account).

```bash
# Authentification Service Account
curl https://mixpanel.com/api/app/me \
  -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"
```

### Project Token

Le Project Token est utilisé pour le tracking d’événements côté client et peut être inclus en toute sécurité dans le code client :

```javascript
// Initialisation côté client
mixpanel.init("YOUR_PROJECT_TOKEN");
```

### OAuth (pour les intégrations partenaires)

Pour les intégrations d’applications qui accèdent à plusieurs projets :

```bash
curl https://mixpanel.com/api/2.0/engage \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN"
```

## Configuration

### Configuration de base

```yaml
connectors:
  mixpanel:
    enabled: true
    project_token: "your-project-token"
    service_account:
      username: "your-service-account-username"
      secret: "your-service-account-secret"
    project_id: "12345"
    data_residency: "US"  # ou "EU"

    # Options de synchronisation des données
    sync:
      events: true
      profiles: true
      cohorts: true
      groups: false

    # Attribution de listes Brevo
    lists:
      all_users: 15
      engaged_users: 16
      at_risk: 17
```

### Mappage des événements

Mappez les événements Mixpanel vers des types d’événements Brevo :

```yaml
event_mapping:
  # Événement Mixpanel -> Événement Brevo
  "Purchase": "order_completed"
  "Sign Up": "customer_created"
  "Add to Cart": "cart_updated"
  "Page View": "page_viewed"
  "$experiment_started": "experiment_started"

  # Événements personnalisés
  "Feature Activated": "feature_used"
  "Subscription Renewed": "subscription_renewed"
```

### Mappage des propriétés de profil

Mappez les propriétés utilisateur Mixpanel vers les attributs de contact Brevo :

```yaml
property_mapping:
  $email: email
  $first_name: FIRSTNAME
  $last_name: LASTNAME
  $phone: SMS
  $city: CITY
  $region: REGION
  $country_code: COUNTRY
  plan: PLAN_TYPE
  company: COMPANY
  signup_date: SIGNUP_DATE
  total_revenue: LTV
```

## Endpoints API

| Méthode | Endpoint | Description |
| --- | --- | --- |
| `POST` | `/import` | Importer des événements (Ingestion API) |
| `POST` | `/track` | Tracker des événements (côté client) |
| `POST` | `/engage#$set` | Définir les propriétés de profil utilisateur |
| `POST` | `/engage#$set_once` | Définir les propriétés uniquement si non déjà définies |
| `POST` | `/engage#$delete` | Supprimer un profil utilisateur |
| `POST` | `/engage#$union` | Union vers des propriétés de type liste |
| `POST` | `/groups` | Définir les propriétés de profil de groupe |
| `GET` | `/export` | Exporter les données d’événements brutes |
| `POST` | `/cohorts/list` | Lister les cohortes sauvegardées |
| `POST` | `/engage/query` | Interroger les profils utilisateur |
| `POST` | `/jql` | Exécuter des requêtes JQL personnalisées |
| `GET` | `/segmentation` | Interroger les rapports de segmentation |
| `GET` | `/retention` | Interroger les rapports de rétention |
| `GET` | `/funnels` | Interroger les rapports d’entonnoirs |

## Exemples de code

### Initialiser le connecteur Mixpanel

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connecter le projet Mixpanel
await tajo.connectors.connect('mixpanel', {
  projectToken: process.env.MIXPANEL_TOKEN,
  serviceAccountUser: process.env.MIXPANEL_SA_USER,
  serviceAccountSecret: process.env.MIXPANEL_SA_SECRET,
  projectId: process.env.MIXPANEL_PROJECT_ID
});
```

### Importer des événements via l’Ingestion API

```javascript
// Importer des événements vers Mixpanel (transférés automatiquement vers Brevo)
const response = await fetch('https://api.mixpanel.com/import', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Basic ' + btoa(
      `${process.env.MIXPANEL_SA_USER}:${process.env.MIXPANEL_SA_SECRET}`
    )
  },
  body: JSON.stringify([
    {
      event: "Purchase",
      properties: {
        distinct_id: "user_123",
        $insert_id: "evt_abc123",
        time: Math.floor(Date.now() / 1000),
        revenue: 89.99,
        product_id: "SKU-001",
        product_name: "Widget Pro"
      }
    }
  ])
});

// Réponse attendue : { "code": 200, "status": "OK", "num_records_imported": 1 }
```

### Synchroniser une cohorte vers Brevo

```javascript
// Exporter une cohorte Mixpanel et la synchroniser vers une liste Brevo
const cohort = await tajo.connectors.syncCohort('mixpanel', {
  cohortId: 12345,
  targetList: 16,
  syncMode: 'mirror'
});

console.log(cohort);
// {
//   cohortName: "Engaged Users (Last 7 Days)",
//   membersCount: 3200,
//   syncedToBrevo: 3200,
//   listId: 16
// }
```

### Définir les propriétés de profil utilisateur

```javascript
// Définir les propriétés utilisateur via l'API Engage
const response = await fetch('https://api.mixpanel.com/engage#$set', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify([{
    $token: process.env.MIXPANEL_TOKEN,
    $distinct_id: "user_123",
    $set: {
      $email: "jane@example.com",
      $first_name: "Jane",
      $last_name: "Kim",
      plan: "premium",
      total_orders: 12,
      lifetime_value: 1250.00
    }
  }])
});
```

## Limites de débit

| API | Limite | Détails |
| --- | --- | --- |
| **Ingestion API** | 2 Go/min | Par projet |
| **Track API** | Pas de limite stricte | Livraison best-effort |
| **Engage API** | 2 000 mises à jour/lot | Max 2 Go/min par projet |
| **Query API** | 60 requêtes/heure | Par projet (Service Account) |
| **Export API** | 60 requêtes/heure | Max 100 jours par requête |
| **JQL API** | 60 requêtes/heure | Par projet |
| **Cohort Export** | 60 requêtes/heure | Par projet |

Déduplication des événements

Mixpanel déduplique les événements à l’aide de la propriété `$insert_id`. Incluez toujours un `$insert_id` unique pour éviter les événements en double lors des réessais d’imports échoués.

## Dépannage

| Problème | Cause | Solution |
| --- | --- | --- |
| Les événements n’apparaissent pas | Mauvais project token | Vérifiez que le token correspond au projet cible |
| Propriétés de profil manquantes | Mauvaise API utilisée | Utilisez `/engage#$set` pour les propriétés de profil, pas `/track` |
| L’export de cohorte échoue | Permissions insuffisantes | Assurez-vous que le Service Account a le rôle Admin ou Analyst |
| Événements en double | `$insert_id` manquant | Incluez un `$insert_id` unique sur chaque événement |
| 402 Payment Required | Limites de données dépassées | Vérifiez les limites du plan Mixpanel et upgradez si nécessaire |
| Les données UE ne sont pas routées | Mauvaise résidence des données | Utilisez `api-eu.mixpanel.com` pour les projets UE |
| Problèmes d’identity merge | distinct\_id incorrect | Suivez les bonnes pratiques de gestion d’identité de Mixpanel |

## Bonnes pratiques

1. **Utilisez les Service Accounts**, Préférez les Service Accounts au Project Secret pour l’authentification côté serveur
2. **Incluez `$insert_id`**, Définissez toujours un ID d’insertion unique pour la déduplication d’événements
3. **Groupez les mises à jour de profil**, Envoyez jusqu’à 2 000 mises à jour de profil par requête pour l’efficacité
4. **Utilisez les endpoints UE**, Pour la résidence des données UE, utilisez `api-eu.mixpanel.com` pour tous les appels API
5. **Synchronisez les cohortes à intervalles**, Mettez en place une synchronisation de cohorte quotidienne ou hebdomadaire plutôt qu’un polling continu
6. **Mappez les propriétés réservées**, Utilisez les propriétés réservées de Mixpanel (`$email`, `$first_name`) pour les données de profil
7. **Surveillez l’ingestion**, Utilisez la page Events de Mixpanel pour vérifier que les événements sont bien reçus

## Sécurité

- **HTTPS uniquement**, Toutes les communications API nécessitent un chiffrement TLS
- **Isolation des Service Accounts**, Accès limité par projet avec permissions basées sur les rôles
- **Déduplication d’événements**, Dédup intégrée via `$insert_id` pour éviter les problèmes d’intégrité des données
- **SOC 2 Type II**, Mixpanel est certifié SOC 2 Type II
- **RGPD/CCPA**, Prend en charge la suppression des données utilisateur via l’API RGPD
- **Résidence des données UE**, Centre de données UE disponible pour la conformité européenne

## Ressources associées

- [Connecteur Segment](https://tajo.io/fr/docs/connectors/custom/segment)
- [Connecteur Amplitude](https://tajo.io/fr/docs/connectors/custom/amplitude)
- [Skill de synchronisation client](https://tajo.io/fr/docs/skills/data-sync/customer-sync)
- [API Events Brevo](https://tajo.io/fr/docs/events-engagement/create-event)
