Connecteur Mixpanel

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
PlateformeMixpanel
CatégorieAnalytics (Custom)
Complexité d’installationMoyenne
Intégration officielleNon
Données synchroniséesÉvénements, profils, cohortes, groupes
Skills disponibles7

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).

Terminal window
# 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 :

// 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 :

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

Configuration

Configuration de base

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 :

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 :

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éthodeEndpointDescription
POST/importImporter des événements (Ingestion API)
POST/trackTracker des événements (côté client)
POST/engage#$setDéfinir les propriétés de profil utilisateur
POST/engage#$set_onceDéfinir les propriétés uniquement si non déjà définies
POST/engage#$deleteSupprimer un profil utilisateur
POST/engage#$unionUnion vers des propriétés de type liste
POST/groupsDéfinir les propriétés de profil de groupe
GET/exportExporter les données d’événements brutes
POST/cohorts/listLister les cohortes sauvegardées
POST/engage/queryInterroger les profils utilisateur
POST/jqlExécuter des requêtes JQL personnalisées
GET/segmentationInterroger les rapports de segmentation
GET/retentionInterroger les rapports de rétention
GET/funnelsInterroger les rapports d’entonnoirs

Exemples de code

Initialiser le connecteur Mixpanel

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

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

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

// 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: "[email protected]",
$first_name: "Jane",
$last_name: "Kim",
plan: "premium",
total_orders: 12,
lifetime_value: 1250.00
}
}])
});

Limites de débit

APILimiteDétails
Ingestion API2 Go/minPar projet
Track APIPas de limite stricteLivraison best-effort
Engage API2 000 mises à jour/lotMax 2 Go/min par projet
Query API60 requêtes/heurePar projet (Service Account)
Export API60 requêtes/heureMax 100 jours par requête
JQL API60 requêtes/heurePar projet
Cohort Export60 requêtes/heurePar 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èmeCauseSolution
Les événements n’apparaissent pasMauvais project tokenVérifiez que le token correspond au projet cible
Propriétés de profil manquantesMauvaise API utiliséeUtilisez /engage#$set pour les propriétés de profil, pas /track
L’export de cohorte échouePermissions insuffisantesAssurez-vous que le Service Account a le rôle Admin ou Analyst
Événements en double$insert_id manquantIncluez un $insert_id unique sur chaque événement
402 Payment RequiredLimites de données dépasséesVérifiez les limites du plan Mixpanel et upgradez si nécessaire
Les données UE ne sont pas routéesMauvaise résidence des donnéesUtilisez api-eu.mixpanel.com pour les projets UE
Problèmes d’identity mergedistinct_id incorrectSuivez 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

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.