---
title: "Mixpanel-connector"
description: "Volledige Mixpanel-integratiegids voor het synchroniseren van product-analytics-events, gebruikersprofielen en cohorten met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/custom/mixpanel/
markdown: https://tajo.io/nl/docs/connectors/custom/mixpanel.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# Mixpanel-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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:

1. Een Mixpanel-account met een aangemaakt project
2. Je Mixpanel Project Token voor client-side tracking
3. Een Service Account met passende rechten voor server-side API-toegang
4. Een Brevo-account met API-toegang
5. 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).

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

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

### OAuth (voor Partner-integraties)

Voor app-integraties die toegang hebben tot meerdere projecten:

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

## Configuratie

### Basisinstelling

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

### Eventmapping

Map Mixpanel-events naar Brevo-eventtypes:

```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"
```

### Profielproperty-mapping

Map Mixpanel-gebruikersproperties naar Brevo-contactattributen:

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

```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 importeren via Ingestion API

```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 }
```

### Cohort synchroniseren naar Brevo

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

### Gebruikersprofielproperties instellen

```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
    }
  }])
});
```

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

1. **Gebruik Service Accounts** - Geef voorkeur aan Service Accounts boven Project Secret voor server-side authenticatie
2. **Voeg `$insert_id` toe** - Stel altijd een unieke insert ID in voor eventdeduplicatie
3. **Batch profielupdates** - Stuur tot 2.000 profielupdates per request voor efficiëntie
4. **Gebruik EU-endpoints** - Gebruik voor EU-data residency `api-eu.mixpanel.com` voor alle API-calls
5. **Synchroniseer cohorten op schema** - Stel dagelijkse of wekelijkse cohort-sync in in plaats van continu pollen
6. **Map gereserveerde properties** - Gebruik Mixpanel’s gereserveerde properties (`$email`, `$first_name`) voor profieldata
7. **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_id` voorkomt 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

## Gerelateerde bronnen

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