Mixpanel Connector
Forbind Mixpanel med Brevo gennem Tajo for at bygge bro mellem produktanalyse og marketingautomatisering. Synkronisér brugerprofiler, adfærdshændelser og kohorter for at skabe datadrevne kampagner baseret på reel produktbrug.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Mixpanel |
| Kategori | Analytics (brugerdefineret) |
| Opsætningskompleksitet | Medium |
| Officiel integration | Nej |
| Synkroniserede data | Hændelser, profiler, kohorter, grupper |
| Tilgængelige skills | 7 |
Funktioner
- Hændelsesindtagelse - Importér track-hændelser via Mixpanels Ingestion API til Brevo-workflows
- Synkronisering af brugerprofiler - Kortlæg Mixpanel-brugerprofilegenskaber til Brevo-kontaktattributter
- Kohorteksport - Synkronisér Mixpanel-kohorter til Brevo-kontaktlister til målrettede kampagner
- Gruppeanalyse - Synkronisér data på gruppeniveau til B2B-kontobaseret marketing
- Identitetsstyring - Udnyt Mixpanels identitetsfletning til samlede kundeprofiler
- JQL-forespørgsler - Kør brugerdefinerede JQL-forespørgsler for at udtrække specifikke datasæt til Brevo
- Opslagstabeller - Synkronisér berigelsesdata fra Mixpanels opslagstabeller
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Mixpanel-konto med et oprettet projekt
- Dit Mixpanel Project Token til client-side-sporing
- En Service Account med passende tilladelser til server-side API-adgang
- En Brevo-konto med API-adgang
- En Tajo-konto med API-legitimationsoplysninger
Autentifikation
Service Accounts (anbefalet)
Mixpanel anbefaler at bruge Service Accounts til API-autentifikation. Service Accounts bruger HTTP Basic Auth med brugernavn (service account-brugernavn) og adgangskode (service account-hemmelighed).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Project Token
Project Token bruges til client-side-hændelsessporing og kan trygt inkluderes i klientkode:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (til partnerintegrationer)
Til app-integrationer, der tilgår flere projekter:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Konfiguration
Grundlæggende opsætning
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: 17Hændelsesmapping
Kortlæg Mixpanel-hændelser til Brevo-hændelsestyper:
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"Mapping af profilegenskaber
Kortlæg Mixpanel-brugeregenskaber til Brevo-kontaktattributter:
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
| Metode | Endpoint | Beskrivelse |
|---|---|---|
POST | /import | Importér hændelser (Ingestion API) |
POST | /track | Spor hændelser (client-side) |
POST | /engage#$set | Indstil brugerprofilegenskaber |
POST | /engage#$set_once | Indstil egenskaber kun, hvis ikke allerede sat |
POST | /engage#$delete | Slet en brugerprofil |
POST | /engage#$union | Union til listeegenskaber |
POST | /groups | Indstil gruppeprofilegenskaber |
GET | /export | Eksportér rå hændelsesdata |
POST | /cohorts/list | Vis gemte kohorter |
POST | /engage/query | Forespørg brugerprofiler |
POST | /jql | Kør brugerdefinerede JQL-forespørgsler |
GET | /segmentation | Forespørg segmenteringsrapporter |
GET | /retention | Forespørg fastholdelsesrapporter |
GET | /funnels | Forespørg tragtrapporter |
Kodeeksempler
Initialisér Mixpanel-connector
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});Importér hændelser 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 }Synkronisér kohorte til 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// }Indstil brugerprofilegenskaber
// 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 | Grænse | Detaljer |
|---|---|---|
| Ingestion API | 2 GB/min. | Pr. projekt |
| Track API | Ingen hård grænse | Best-effort-levering |
| Engage API | 2.000 opdateringer/batch | Maks. 2 GB/min. pr. projekt |
| Query API | 60 anmodninger/time | Pr. projekt (Service Account) |
| Export API | 60 anmodninger/time | Maks. 100 dage pr. forespørgsel |
| JQL API | 60 anmodninger/time | Pr. projekt |
| Kohorteksport | 60 anmodninger/time | Pr. projekt |
Hændelsesdeduplikering
Mixpanel deduplikerer hændelser ved hjælp af egenskaben $insert_id. Inkludér altid et unikt $insert_id for at forhindre duplikerede hændelser ved gentagelse af fejlede imports.
Fejlfinding
| Problem | Årsag | Løsning |
|---|---|---|
| Hændelser vises ikke | Forkert projekttoken | Verificér, at tokenet matcher målprojektet |
| Profilegenskaber mangler | Bruger forkert API | Brug /engage#$set til profilegenskaber, ikke /track |
| Kohorteksport fejler | Utilstrækkelige tilladelser | Sørg for, at Service Account har Admin- eller Analyst-rolle |
| Duplikerede hændelser | Manglende $insert_id | Inkludér unikt $insert_id på hver hændelse |
| 402 Payment Required | Over datagrænser | Tjek Mixpanel-plangrænser, og opgradér om nødvendigt |
| EU-data dirigeres ikke | Forkert dataresidens | Brug api-eu.mixpanel.com til EU-projekter |
| Problemer med identitetsfletning | Forkert distinct_id | Følg Mixpanels bedste praksis for identitetsstyring |
Bedste praksis
- Brug Service Accounts - Foretræk Service Accounts frem for Project Secret til server-side-autentifikation
- Inkludér
$insert_id- Angiv altid et unikt insert-ID til hændelsesdeduplikering - Batch profilopdateringer - Send op til 2.000 profilopdateringer pr. anmodning for effektivitet
- Brug EU-endpoints - Til EU-dataresidens skal du bruge
api-eu.mixpanel.comtil alle API-kald - Synkronisér kohorter efter skema - Opsæt daglig eller ugentlig kohortesynkronisering frem for løbende polling
- Kortlæg reserverede egenskaber - Brug Mixpanels reserverede egenskaber (
$email,$first_name) til profildata - Overvåg indtagelse - Brug Mixpanels Events-side til at verificere, at hændelser modtages korrekt
Sikkerhed
- Kun HTTPS - Al API-kommunikation kræver TLS-kryptering
- Service Account-isolation - Scoped adgang pr. projekt med rollebaserede tilladelser
- Hændelsesdeduplikering - Indbygget dedup via
$insert_idforhindrer dataintegritetsproblemer - SOC 2 Type II - Mixpanel er SOC 2 Type II-certificeret
- GDPR/CCPA - Understøtter sletning af brugerdata via GDPR-API’et
- EU-dataresidens - EU-datacenter tilgængeligt for europæisk compliance