Mixpanel-connector
Verbind Mixpanel met Brevo via Tajo om product-analytics te koppelen aan marketingautomatisering. Synchroniseer gebruikersprofielen, gedragsevents en cohorten om datagedreven campagnes te maken op basis van werkelijk productgebruik.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Mixpanel |
| Categorie | Analytics (Custom) |
| Setupcomplexiteit | Gemiddeld |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Events, Profielen, Cohorten, Groepen |
| Beschikbare skills | 7 |
Functies
- Event-ingestion - Importeer track-events via Mixpanel’s Ingestion API in Brevo-workflows
- Gebruikersprofielsynchronisatie - Map Mixpanel-gebruikersprofielproperties naar Brevo-contactattributen
- Cohort-export - Synchroniseer Mixpanel-cohorten naar Brevo-contactlijsten voor gerichte campagnes
- Group-analytics - Synchroniseer data op groepsniveau voor B2B account-based marketing
- Identity management - Maak gebruik van Mixpanel’s identity merge voor uniforme klantprofielen
- JQL-queries - Voer custom JQL-queries uit om specifieke datasets voor Brevo te extraheren
- Lookup tables - Synchroniseer verrijkingsdata uit Mixpanel-lookup-tables
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Mixpanel-account met een aangemaakt project
- Je Mixpanel Project Token voor client-side tracking
- Een Service Account met passende rechten voor server-side API-toegang
- Een Brevo-account met API-toegang
- Een Tajo-account met API-credentials
Authenticatie
Service Accounts (aanbevolen)
Mixpanel raadt aan om Service Accounts te gebruiken voor API-authenticatie. Service accounts gebruiken HTTP Basic Auth met een username (service account-username) en password (service account-secret).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Project Token
Het Project Token wordt gebruikt voor client-side eventtracking en mag in client-code worden opgenomen:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (voor Partner-integraties)
Voor app-integraties die toegang hebben tot meerdere projecten:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Configuratie
Basisinstelling
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" # or "EU"
# Data sync options sync: events: true profiles: true cohorts: true groups: false
# Brevo list assignment lists: all_users: 15 engaged_users: 16 at_risk: 17Eventmapping
Map Mixpanel-events naar Brevo-eventtypes:
event_mapping: # Mixpanel event -> Brevo event "Purchase": "order_completed" "Sign Up": "customer_created" "Add to Cart": "cart_updated" "Page View": "page_viewed" "$experiment_started": "experiment_started"
# Custom events "Feature Activated": "feature_used" "Subscription Renewed": "subscription_renewed"Profielproperty-mapping
Map Mixpanel-gebruikersproperties naar Brevo-contactattributen:
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: LTVAPI-endpoints
| Method | Endpoint | Beschrijving |
|---|---|---|
POST | /import | Events importeren (Ingestion API) |
POST | /track | Events tracken (client-side) |
POST | /engage#$set | Gebruikersprofielproperties instellen |
POST | /engage#$set_once | Properties alleen instellen als nog niet gezet |
POST | /engage#$delete | Een gebruikersprofiel verwijderen |
POST | /engage#$union | Union toevoegen aan list-properties |
POST | /groups | Group-profile-properties instellen |
GET | /export | Ruwe eventdata exporteren |
POST | /cohorts/list | Opgeslagen cohorten opvragen |
POST | /engage/query | Gebruikersprofielen queryen |
POST | /jql | Custom JQL-queries uitvoeren |
GET | /segmentation | Segmentatierapporten queryen |
GET | /retention | Retentierapporten queryen |
GET | /funnels | Funnelrapporten queryen |
Codevoorbeelden
Mixpanel-connector initialiseren
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Mixpanel projectawait 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});Events importeren via Ingestion API
// Import events to Mixpanel (automatically forwarded to 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" } } ])});
// Expected response: { "code": 200, "status": "OK", "num_records_imported": 1 }Cohort synchroniseren naar Brevo
// Export a Mixpanel cohort and sync to a Brevo listconst 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// }Gebruikersprofielproperties instellen
// Set user properties via the Engage APIconst 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: { $first_name: "Jane", $last_name: "Kim", plan: "premium", total_orders: 12, lifetime_value: 1250.00 } }])});Rate limits
| API | Limiet | Details |
|---|---|---|
| Ingestion API | 2 GB/min | Per project |
| Track API | Geen harde limiet | Best-effort delivery |
| Engage API | 2.000 updates/batch | Max 2 GB/min per project |
| Query API | 60 requests/uur | Per project (Service Account) |
| Export API | 60 requests/uur | Max 100 dagen per query |
| JQL API | 60 requests/uur | Per project |
| Cohort Export | 60 requests/uur | Per project |
Eventdeduplicatie
Mixpanel deduplicieert events op basis van de $insert_id-property. Voeg altijd een unieke $insert_id toe om dubbele events te voorkomen bij het opnieuw proberen van mislukte imports.
Probleemoplossing
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Events verschijnen niet | Verkeerd project token | Controleer of het token overeenkomt met het doelproject |
| Profielproperties ontbreken | Verkeerde API gebruikt | Gebruik /engage#$set voor profielproperties, niet /track |
| Cohort-export mislukt | Onvoldoende rechten | Zorg dat het Service Account de rol Admin of Analyst heeft |
| Dubbele events | Ontbrekende $insert_id | Voeg een unieke $insert_id toe aan elke event |
| 402 Payment Required | Datalimiet overschreden | Controleer Mixpanel-planlimieten en upgrade indien nodig |
| EU-data niet gerouteerd | Verkeerde data residency | Gebruik api-eu.mixpanel.com voor EU-projecten |
| Identity merge-problemen | Onjuiste distinct_id | Volg Mixpanel’s best practices voor identity management |
Best practices
- Gebruik Service Accounts - Geef voorkeur aan Service Accounts boven Project Secret voor server-side authenticatie
- Voeg
$insert_idtoe - Stel altijd een unieke insert ID in voor eventdeduplicatie - Batch profielupdates - Stuur tot 2.000 profielupdates per request voor efficiëntie
- Gebruik EU-endpoints - Gebruik voor EU-data residency
api-eu.mixpanel.comvoor alle API-calls - Synchroniseer cohorten op schema - Stel dagelijkse of wekelijkse cohort-sync in in plaats van continu pollen
- Map gereserveerde properties - Gebruik Mixpanel’s gereserveerde properties (
$email,$first_name) voor profieldata - Monitor ingestion - Gebruik Mixpanel’s Events-pagina om te verifiëren dat events correct worden ontvangen
Beveiliging
- Alleen HTTPS - Alle API-communicatie vereist TLS-encryptie
- Service Account-isolatie - Gescoopte toegang per project met rolgebaseerde rechten
- Eventdeduplicatie - Ingebouwde dedup via
$insert_idvoorkomt data-integriteitsproblemen - SOC 2 Type II - Mixpanel is SOC 2 Type II-gecertificeerd
- GDPR/CCPA - Ondersteunt verwijdering van gebruikersdata via de GDPR API
- EU data residency - EU-datacenter beschikbaar voor Europese compliance