---
title: "Mixpanel Connector"
description: "Vollständiger Leitfaden zur Mixpanel-Integration für die Synchronisierung von Produktanalyse-Events, Nutzer:innen-Profilen und Kohorten mit Brevo über Tajo."
url: https://tajo.io/de/docs/connectors/custom/mixpanel/
markdown: https://tajo.io/de/docs/connectors/custom/mixpanel.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# Mixpanel Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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:

1. Ein Mixpanel-Konto mit einem angelegten Projekt
2. Dein Mixpanel-Projekt-Token für das clientseitige Tracking
3. Ein Service-Account mit passenden Berechtigungen für serverseitigen API-Zugriff
4. Ein Brevo-Konto mit API-Zugriff
5. 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).

```bash
# Service Account authentication
curl 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:

```javascript
// Client-side initialization
mixpanel.init("YOUR_PROJECT_TOKEN");
```

### OAuth (für Partner-Integrationen)

Für App-Integrationen, die auf mehrere Projekte zugreifen:

```bash
curl https://mixpanel.com/api/2.0/engage \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN"
```

## Konfiguration

### Grundeinrichtung

```yaml
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: 17
```

### Event-Zuordnung

Ordne Mixpanel-Events Brevo-Event-Typen zu:

```yaml
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:

```yaml
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: LTV
```

## API-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

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Mixpanel project
await 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

```javascript
// 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

```javascript
// Export a Mixpanel cohort and sync to a Brevo list
const 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

```javascript
// Set user properties via the Engage API
const 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: {
      $email: "jane@example.com",
      $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

1. **Service-Accounts nutzen** - Bevorzuge Service-Accounts gegenüber dem Projekt-Secret für serverseitige Authentifizierung
2. **`$insert_id` angeben** - Setze stets eine eindeutige Insert-ID zur Event-Deduplizierung
3. **Profil-Updates bündeln** - Sende bis zu 2.000 Profil-Updates pro Anfrage
4. **EU-Endpunkte verwenden** - Nutze für EU-Datenresidenz `api-eu.mixpanel.com` für alle API-Aufrufe
5. **Kohorten nach Zeitplan synchronisieren** - Richte tägliches oder wöchentliches Kohorten-Sync statt Dauer-Polling ein
6. **Reservierte Eigenschaften zuordnen** - Nutze Mixpanels reservierte Eigenschaften (`$email`, `$first_name`) für Profildaten
7. **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_id` verhindert 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

## Verwandte Ressourcen

- [Segment Connector](https://tajo.io/de/docs/connectors/custom/segment)
- [Amplitude Connector](https://tajo.io/de/docs/connectors/custom/amplitude)
- [Customer-Sync-Skill](https://tajo.io/de/docs/skills/data-sync/customer-sync)
- [Brevo Events API](https://tajo.io/de/docs/events-engagement/create-event)
