---
title: "Mixpanel-koppling"
description: "Komplett integrationsguide för Mixpanel för att synkronisera produktanalyshändelser, användarprofiler och kohorter med Brevo via Tajo."
url: https://tajo.io/se/docs/connectors/custom/mixpanel/
markdown: https://tajo.io/se/docs/connectors/custom/mixpanel.md
lang: sv-SE
robots: noindex
---

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

# Mixpanel-koppling

Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.

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

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:

1. Ett Mixpanel-konto med ett skapat projekt
2. Din Mixpanel Project Token för spårning på klientsidan
3. Ett Service Account med lämpliga behörigheter för API-åtkomst på serversidan
4. Ett Brevo-konto med API-åtkomst
5. 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).

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

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

### OAuth (för partnerintegrationer)

För app-integrationer som har åtkomst till flera projekt:

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

## Konfiguration

### Grundinställning

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

### Händelsemappning

Mappa Mixpanel-händelser till Brevo-händelsetyper:

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

### Mappning av profilegenskaper

Mappa Mixpanels användaregenskaper till Brevo-kontaktattribut:

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

| 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

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

### Importera händelser 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 }
```

### Synka kohort till 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
// }
```

### Sätt egenskaper för användarprofil

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

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

1. **Använd Service Accounts** - Föredra Service Accounts framför Project Secret för autentisering på serversidan
2. **Inkludera `$insert_id`** - Sätt alltid ett unikt insert ID för händelsededuplicering
3. **Batcha profiluppdateringar** - Skicka upp till 2 000 profiluppdateringar per förfrågan för effektivitet
4. **Använd EU-endpoints** - För EU-dataresidens, använd `api-eu.mixpanel.com` för alla API-anrop
5. **Synka kohorter enligt schema** - Sätt upp daglig eller veckovis kohortsynk istället för kontinuerlig polling
6. **Mappa reserverade egenskaper** - Använd Mixpanels reserverade egenskaper (`$email`, `$first_name`) för profildata
7. **Ö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_id` fö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

## Relaterade resurser

- [Segment-koppling](https://tajo.io/se/docs/connectors/custom/segment)
- [Amplitude-koppling](https://tajo.io/se/docs/connectors/custom/amplitude)
- [Skill för kundsynkronisering](https://tajo.io/se/docs/skills/data-sync/customer-sync)
- [Brevo Events API](https://tajo.io/se/docs/events-engagement/create-event)
