Mixpanel-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Mixpanel
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
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