Mixpanel Connector
Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
Mixpanel
Connector-Status: Geplant
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
Verbinde Mixpanel über Tajo mit Brevo, um Produktanalyse mit Marketingautomatisierung zu verknüpfen. Synchronisiere Nutzer:innen-Profile, Verhaltens-Events und Kohorten, um datengetriebene Kampagnen auf Basis echter Produktnutzung zu erstellen.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | Mixpanel |
| Kategorie | Analytics (Custom) |
| Einrichtungsaufwand | Mittel |
| Offizielle Integration | Nein |
| Synchronisierte Daten | Events, Profile, Kohorten, Gruppen |
| Verfügbare Skills | 7 |
Funktionen
- Event-Aufnahme - Importiere Track-Events über Mixpanels Ingestion-API in Brevo-Workflows
- Profil-Synchronisierung - Ordne Mixpanel-Profil-Eigenschaften Brevo-Kontaktattributen zu
- Kohorten-Export - Synchronisiere Mixpanel-Kohorten mit Brevo-Kontaktlisten für zielgerichtete Kampagnen
- Gruppen-Analyse - Synchronisiere gruppenbezogene Daten für B2B-Account-based Marketing
- Identitätsmanagement - Nutze Mixpanels Identity-Merge für einheitliche Kundenprofile
- JQL-Abfragen - Führe benutzerdefinierte JQL-Abfragen aus, um spezifische Datensätze für Brevo zu extrahieren
- Lookup-Tabellen - Synchronisiere Anreicherungsdaten aus Mixpanel-Lookup-Tabellen
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Ein Mixpanel-Konto mit einem angelegten Projekt
- Dein Mixpanel-Projekt-Token für das clientseitige Tracking
- Ein Service-Account mit passenden Berechtigungen für serverseitigen API-Zugriff
- Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto mit API-Zugangsdaten
Authentifizierung
Service-Accounts (Empfohlen)
Mixpanel empfiehlt die Nutzung von Service-Accounts für die API-Authentifizierung. Service-Accounts verwenden HTTP Basic Auth mit Benutzer:innen-Name (Service-Account-Benutzer:innen-Name) und Passwort (Service-Account-Secret).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Projekt-Token
Das Projekt-Token wird für clientseitiges Event-Tracking verwendet und kann sicher in den Client-Code aufgenommen werden:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (für Partner-Integrationen)
Für App-Integrationen, die auf mehrere Projekte zugreifen:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Konfiguration
Grundeinrichtung
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: 17Event-Zuordnung
Ordne Mixpanel-Events Brevo-Event-Typen zu:
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"Zuordnung von Profil-Eigenschaften
Ordne Mixpanel-Nutzer:innen-Eigenschaften Brevo-Kontaktattributen zu:
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-Endpunkte
| Methode | Endpunkt | Beschreibung |
|---|---|---|
POST | /import | Events importieren (Ingestion API) |
POST | /track | Events tracken (clientseitig) |
POST | /engage#$set | Profil-Eigenschaften setzen |
POST | /engage#$set_once | Eigenschaften nur setzen, wenn noch nicht gesetzt |
POST | /engage#$delete | Ein Nutzer:innen-Profil löschen |
POST | /engage#$union | Werte zu Listen-Eigenschaften vereinigen |
POST | /groups | Gruppen-Profil-Eigenschaften setzen |
GET | /export | Rohe Event-Daten exportieren |
POST | /cohorts/list | Gespeicherte Kohorten auflisten |
POST | /engage/query | Nutzer:innen-Profile abfragen |
POST | /jql | Benutzerdefinierte JQL-Abfragen ausführen |
GET | /segmentation | Segmentierungs-Reports abfragen |
GET | /retention | Retention-Reports abfragen |
GET | /funnels | Funnel-Reports abfragen |
Code-Beispiele
Mixpanel-Connector initialisieren
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 über die Ingestion-API importieren
// 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 }Kohorte mit Brevo synchronisieren
// 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// }Profil-Eigenschaften setzen
// 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 } }])});Ratenbegrenzungen
| API | Limit | Details |
|---|---|---|
| Ingestion API | 2 GB/Min. | Pro Projekt |
| Track API | Kein hartes Limit | Best-Effort-Zustellung |
| Engage API | 2.000 Updates/Batch | Max. 2 GB/Min. pro Projekt |
| Query API | 60 Anfragen/Stunde | Pro Projekt (Service-Account) |
| Export API | 60 Anfragen/Stunde | Max. 100 Tage pro Abfrage |
| JQL API | 60 Anfragen/Stunde | Pro Projekt |
| Kohorten-Export | 60 Anfragen/Stunde | Pro Projekt |
Event-Deduplizierung
Mixpanel dedupliziert Events über die Eigenschaft $insert_id. Gib stets eine eindeutige $insert_id an, um doppelte Events bei fehlgeschlagenen Import-Wiederholungen zu verhindern.
Fehlerbehebung
| Problem | Ursache | Lösung |
|---|---|---|
| Events erscheinen nicht | Falsches Projekt-Token | Prüfen, dass das Token zum Zielprojekt passt |
| Profil-Eigenschaften fehlen | Falsche API verwendet | Für Profil-Eigenschaften /engage#$set verwenden, nicht /track |
| Kohorten-Export schlägt fehl | Unzureichende Berechtigungen | Sicherstellen, dass der Service-Account Admin- oder Analyst-Rolle hat |
| Doppelte Events | Fehlende $insert_id | Eindeutige $insert_id für jedes Event angeben |
| 402 Payment Required | Datenlimit überschritten | Mixpanel-Plan-Limits prüfen und ggf. upgraden |
| EU-Daten werden nicht geroutet | Falsche Datenresidenz | Für EU-Projekte api-eu.mixpanel.com verwenden |
| Identity-Merge-Probleme | Falsche distinct_id | Mixpanels Best Practices für Identity-Management befolgen |
Best Practices
- Service-Accounts nutzen - Bevorzuge Service-Accounts gegenüber dem Projekt-Secret für serverseitige Authentifizierung
$insert_idangeben - Setze stets eine eindeutige Insert-ID zur Event-Deduplizierung- Profil-Updates bündeln - Sende bis zu 2.000 Profil-Updates pro Anfrage
- EU-Endpunkte verwenden - Nutze für EU-Datenresidenz
api-eu.mixpanel.comfür alle API-Aufrufe - Kohorten nach Zeitplan synchronisieren - Richte tägliches oder wöchentliches Kohorten-Sync statt Dauer-Polling ein
- Reservierte Eigenschaften zuordnen - Nutze Mixpanels reservierte Eigenschaften (
$email,$first_name) für Profildaten - Aufnahme überwachen - Prüfe auf der Events-Seite von Mixpanel, ob Events korrekt eingehen
Sicherheit
- Nur HTTPS - Die gesamte API-Kommunikation erfordert TLS-Verschlüsselung
- Service-Account-Isolation - Scope-basierter Zugriff pro Projekt mit rollenbasierten Berechtigungen
- Event-Deduplizierung - Eingebaute Deduplizierung über
$insert_idverhindert Datenintegritätsprobleme - SOC 2 Type II - Mixpanel ist SOC-2-Type-II-zertifiziert
- DSGVO/CCPA - Unterstützt Datenlöschungen per GDPR-API
- EU-Datenresidenz - EU-Rechenzentrum für europäische Compliance verfügbar