---
title: "Connettore Mixpanel"
description: "Guida completa all'integrazione di Mixpanel per sincronizzare eventi di product analytics, profili utente e coorti con Brevo tramite Tajo."
url: https://tajo.io/it/docs/connectors/custom/mixpanel/
markdown: https://tajo.io/it/docs/connectors/custom/mixpanel.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Mixpanel

Stato del connettore: Pianificato Non ancora realizzato. Oggi Tajo non esegue questo connettore.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega Mixpanel a Brevo tramite Tajo per unire product analytics e marketing automation. Sincronizza profili utente, eventi comportamentali e coorti per creare campagne data-driven basate sull’utilizzo reale del prodotto.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Mixpanel |
| **Categoria** | Analytics (Custom) |
| **Complessità di setup** | Media |
| **Integrazione ufficiale** | No |
| **Dati sincronizzati** | Eventi, Profili, Coorti, Gruppi |
| **Skill disponibili** | 7 |

## Funzionalità

- **Ingestione eventi** - Importa eventi track tramite l’Ingestion API di Mixpanel nei flussi Brevo
- **Sync profilo utente** - Mappa le proprietà di profilo utente Mixpanel sugli attributi dei contatti Brevo
- **Export coorti** - Sincronizza le coorti Mixpanel su liste contatti Brevo per campagne mirate
- **Group analytics** - Sincronizza dati a livello di gruppo per il marketing account-based B2B
- **Identity management** - Sfrutta l’identity merge di Mixpanel per profili cliente unificati
- **Query JQL** - Esegui query JQL personalizzate per estrarre dataset specifici per Brevo
- **Lookup table** - Sincronizza dati di arricchimento dalle lookup table di Mixpanel

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Un account Mixpanel con un progetto creato
2. Il tuo Project Token Mixpanel per il tracking client-side
3. Un Service Account con i permessi appropriati per l’accesso API server-side
4. Un account Brevo con accesso API
5. Un account Tajo con credenziali API

## Autenticazione

### Service Account (consigliato)

Mixpanel consiglia l’uso dei Service Account per l’autenticazione API. I Service Account usano HTTP Basic Auth con username (username del service account) e password (secret del service account).

```bash
# Autenticazione Service Account
curl https://mixpanel.com/api/app/me \
  -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"
```

### Project Token

Il Project Token viene usato per il tracking eventi client-side ed è sicuro da includere nel codice client:

```javascript
// Inizializzazione client-side
mixpanel.init("YOUR_PROJECT_TOKEN");
```

### OAuth (per integrazioni partner)

Per integrazioni app che accedono a più progetti:

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

## Configurazione

### Setup di base

```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"  # oppure "EU"

    # Opzioni di sync dei dati
    sync:
      events: true
      profiles: true
      cohorts: true
      groups: false

    # Assegnazione liste Brevo
    lists:
      all_users: 15
      engaged_users: 16
      at_risk: 17
```

### Mapping degli eventi

Mappa gli eventi Mixpanel sui tipi di evento Brevo:

```yaml
event_mapping:
  # Evento Mixpanel -> evento Brevo
  "Purchase": "order_completed"
  "Sign Up": "customer_created"
  "Add to Cart": "cart_updated"
  "Page View": "page_viewed"
  "$experiment_started": "experiment_started"

  # Eventi custom
  "Feature Activated": "feature_used"
  "Subscription Renewed": "subscription_renewed"
```

### Mapping delle proprietà del profilo

Mappa le proprietà utente Mixpanel sugli attributi dei contatti Brevo:

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

## Endpoint API

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `POST` | `/import` | Importa eventi (Ingestion API) |
| `POST` | `/track` | Traccia eventi (client-side) |
| `POST` | `/engage#$set` | Imposta proprietà del profilo utente |
| `POST` | `/engage#$set_once` | Imposta proprietà solo se non già impostate |
| `POST` | `/engage#$delete` | Elimina un profilo utente |
| `POST` | `/engage#$union` | Union su proprietà di tipo lista |
| `POST` | `/groups` | Imposta proprietà del profilo di gruppo |
| `GET` | `/export` | Esporta dati evento raw |
| `POST` | `/cohorts/list` | Elenca le coorti salvate |
| `POST` | `/engage/query` | Interroga i profili utente |
| `POST` | `/jql` | Esegui query JQL personalizzate |
| `GET` | `/segmentation` | Interroga i report di segmentazione |
| `GET` | `/retention` | Interroga i report di retention |
| `GET` | `/funnels` | Interroga i report di funnel |

## Esempi di codice

### Inizializzare il connettore Mixpanel

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

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

// Collega un progetto Mixpanel
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
});
```

### Importare eventi tramite Ingestion API

```javascript
// Importa eventi su Mixpanel (inoltrati automaticamente a 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"
      }
    }
  ])
});

// Risposta attesa: { "code": 200, "status": "OK", "num_records_imported": 1 }
```

### Sincronizzare una coorte su Brevo

```javascript
// Esporta una coorte Mixpanel e sincronizzala su una lista Brevo
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
// }
```

### Impostare proprietà del profilo utente

```javascript
// Imposta proprietà utente tramite la 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
    }
  }])
});
```

## Limiti di rate

| API | Limite | Dettagli |
| --- | --- | --- |
| **Ingestion API** | 2 GB/min | Per progetto |
| **Track API** | Nessun limite fisso | Consegna best-effort |
| **Engage API** | 2.000 update/batch | Max 2 GB/min per progetto |
| **Query API** | 60 richieste/ora | Per progetto (Service Account) |
| **Export API** | 60 richieste/ora | Max 100 giorni per query |
| **JQL API** | 60 richieste/ora | Per progetto |
| **Cohort Export** | 60 richieste/ora | Per progetto |

Deduplicazione eventi

Mixpanel deduplica gli eventi usando la proprietà `$insert_id`. Includi sempre un `$insert_id` univoco per evitare eventi duplicati quando fai retry di import falliti.

## Risoluzione dei problemi

| Problema | Causa | Soluzione |
| --- | --- | --- |
| Eventi non visibili | Project token errato | Verifica che il token corrisponda al progetto target |
| Proprietà del profilo mancanti | API errata | Usa `/engage#$set` per le proprietà del profilo, non `/track` |
| Export coorte fallisce | Permessi insufficienti | Assicurati che il Service Account abbia ruolo Admin o Analyst |
| Eventi duplicati | `$insert_id` mancante | Includi un `$insert_id` univoco su ogni evento |
| 402 Payment Required | Oltre i limiti di dati | Controlla i limiti del piano Mixpanel ed eventualmente aggiorna |
| Dati EU non instradati | Data residency errata | Usa `api-eu.mixpanel.com` per i progetti EU |
| Problemi di identity merge | distinct\_id errato | Segui le best practice di identity management di Mixpanel |

## Best practice

1. **Usa i Service Account** - Preferisci i Service Account al Project Secret per l’autenticazione server-side
2. **Includi `$insert_id`** - Imposta sempre un insert ID univoco per la deduplicazione eventi
3. **Raggruppa gli update di profilo in batch** - Invia fino a 2.000 update di profilo per richiesta per efficienza
4. **Usa gli endpoint EU** - Per la data residency EU, usa `api-eu.mixpanel.com` per tutte le chiamate API
5. **Sincronizza le coorti secondo schedule** - Imposta sync di coorte giornaliero o settimanale anziché polling continuo
6. **Mappa le proprietà riservate** - Usa le proprietà riservate di Mixpanel (`$email`, `$first_name`) per i dati di profilo
7. **Monitora l’ingestione** - Usa la pagina Events di Mixpanel per verificare che gli eventi vengano ricevuti correttamente

## Sicurezza

- **Solo HTTPS** - Tutte le comunicazioni API richiedono cifratura TLS
- **Isolamento Service Account** - Accesso limitato per progetto con permessi basati su ruolo
- **Deduplicazione eventi** - Dedup integrata tramite `$insert_id` previene problemi di integrità dati
- **SOC 2 Type II** - Mixpanel è certificata SOC 2 Type II
- **GDPR/CCPA** - Supporta la cancellazione dei dati utente tramite GDPR API
- **Residenza dati EU** - Data center EU disponibile per la compliance europea

## Risorse correlate

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