Mixpanel-koppling
Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.
Illustration · exempeldata
Exempel på synkronisering
Källa
Mixpanel
Kopplingens status: Planerad
Mål
Ditt andra verktyg
Kopplingens status: Eget verktyg
Fältmappning
| Källfält | Målfält | Exempelvärde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Utkast
- Granska en post
- Godkänn den här versionen
Status gäller varje enskild koppling och garanterar inte att den här synkroniseringen är klar. Fälten är illustrativa. Kontrollera det faktiska schemat och behörigheterna innan synkronisering körs.
Anslut Mixpanel till Brevo via Tajo för att överbrygga produktanalys med marknadsautomation. Synka användarprofiler, beteendehändelser och kohorter för att skapa datadrivna kampanjer baserade på faktisk produktanvändning.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Mixpanel |
| Kategori | Analys (Anpassad) |
| Installationskomplexitet | Medel |
| Officiell integration | Nej |
| Data som synkas | Händelser, profiler, kohorter, grupper |
| Tillgängliga skills | 7 |
Funktioner
- Händelseinsamling - Importera spårade händelser via Mixpanels Ingestion API till Brevo-arbetsflöden
- Synkronisering av användarprofiler - Mappa Mixpanels användarprofilegenskaper till Brevo-kontaktattribut
- Kohortexport - Synka Mixpanel-kohorter till Brevo-kontaktlistor för riktade kampanjer
- Gruppanalys - Synka data på gruppnivå för B2B-kontobaserad marknadsföring
- Identitetshantering - Utnyttja Mixpanels identitetssammanslagning för enhetliga kundprofiler
- JQL-frågor - Kör anpassade JQL-frågor för att extrahera specifika datamängder till Brevo
- Uppslagstabeller - Synka berikningsdata från Mixpanels uppslagstabeller
Förutsättningar
Innan du börjar, se till att du har:
- Ett Mixpanel-konto med ett skapat projekt
- Din Mixpanel Project Token för spårning på klientsidan
- Ett Service Account med lämpliga behörigheter för API-åtkomst på serversidan
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med API-uppgifter
Autentisering
Service Accounts (rekommenderas)
Mixpanel rekommenderar att du använder Service Accounts för API-autentisering. Service accounts använder HTTP Basic Auth med användarnamn (service account-användarnamn) och lösenord (service account-hemlighet).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Project Token
Project Token används för händelsespårning på klientsidan och är säker att inkludera i klientkod:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (för partnerintegrationer)
För app-integrationer som har åtkomst till flera projekt:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Konfiguration
Grundinställning
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ändelsemappning
Mappa Mixpanel-händelser till Brevo-händelsetyper:
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"Mappning av profilegenskaper
Mappa Mixpanels användaregenskaper till Brevo-kontaktattribut:
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
| Metod | Endpoint | Beskrivning |
|---|---|---|
POST | /import | Importera händelser (Ingestion API) |
POST | /track | Spåra händelser (klientsida) |
POST | /engage#$set | Sätt egenskaper för användarprofil |
POST | /engage#$set_once | Sätt egenskaper endast om de inte redan är satta |
POST | /engage#$delete | Radera en användarprofil |
POST | /engage#$union | Lägg till värden i listegenskaper |
POST | /groups | Sätt egenskaper för gruppprofil |
GET | /export | Exportera rådata för händelser |
POST | /cohorts/list | Lista sparade kohorter |
POST | /engage/query | Fråga efter användarprofiler |
POST | /jql | Kör anpassade JQL-frågor |
GET | /segmentation | Fråga segmenteringsrapporter |
GET | /retention | Fråga retentionsrapporter |
GET | /funnels | Fråga trattrapporter |
Kodexempel
Initiera Mixpanel-koppling
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});Importera 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 }Synka kohort till 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// }Sätt egenskaper för användarprofil
// 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 } }])});Hastighetsbegränsningar
| API | Gräns | Detaljer |
|---|---|---|
| Ingestion API | 2 GB/min | Per projekt |
| Track API | Ingen hård gräns | Best-effort-leverans |
| Engage API | 2 000 uppdateringar/batch | Max 2 GB/min per projekt |
| Query API | 60 förfrågningar/timme | Per projekt (Service Account) |
| Export API | 60 förfrågningar/timme | Max 100 dagar per fråga |
| JQL API | 60 förfrågningar/timme | Per projekt |
| Cohort Export | 60 förfrågningar/timme | Per projekt |
Händelsededuplicering
Mixpanel deduplicerar händelser med hjälp av egenskapen $insert_id. Inkludera alltid ett unikt $insert_id för att förhindra dubbla händelser vid återförsök av misslyckade importer.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
| Händelser visas inte | Fel projekttoken | Verifiera att token matchar målprojektet |
| Profilegenskaper saknas | Använder fel API | Använd /engage#$set för profilegenskaper, inte /track |
| Kohortexport misslyckas | Otillräckliga behörigheter | Säkerställ att Service Account har Admin- eller Analyst-roll |
| Dubbla händelser | Saknat $insert_id | Inkludera unikt $insert_id på varje händelse |
| 402 Payment Required | Över datagränser | Kontrollera Mixpanel-planens gränser och uppgradera vid behov |
| EU-data dirigeras inte | Fel dataresidens | Använd api-eu.mixpanel.com för EU-projekt |
| Problem med identitetssammanslagning | Felaktigt distinct_id | Följ Mixpanels bästa praxis för identitetshantering |
Bästa praxis
- Använd Service Accounts - Föredra Service Accounts framför Project Secret för autentisering på serversidan
- Inkludera
$insert_id- Sätt alltid ett unikt insert ID för händelsededuplicering - Batcha profiluppdateringar - Skicka upp till 2 000 profiluppdateringar per förfrågan för effektivitet
- Använd EU-endpoints - För EU-dataresidens, använd
api-eu.mixpanel.comför alla API-anrop - Synka kohorter enligt schema - Sätt upp daglig eller veckovis kohortsynk istället för kontinuerlig polling
- Mappa reserverade egenskaper - Använd Mixpanels reserverade egenskaper (
$email,$first_name) för profildata - Övervaka insamling - Använd Mixpanels Events-sida för att verifiera att händelser tas emot korrekt
Säkerhet
- Endast HTTPS - All API-kommunikation kräver TLS-kryptering
- Service Account-isolering - Scoped åtkomst per projekt med rollbaserade behörigheter
- Händelsededuplicering - Inbyggd dedup via
$insert_idförhindrar problem med dataintegritet - SOC 2 Type II - Mixpanel är SOC 2 Type II-certifierad
- GDPR/CCPA - Stöder radering av användardata via GDPR-API:et
- EU-dataresidens - EU-datacenter tillgängligt för europeisk efterlevnad