---
title: "Коннектор Mixpanel"
description: "Полное руководство по интеграции Mixpanel для синхронизации событий продуктовой аналитики, профилей пользователей и когорт с Brevo через Tajo."
url: https://tajo.io/ru/docs/connectors/custom/mixpanel/
markdown: https://tajo.io/ru/docs/connectors/custom/mixpanel.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор Mixpanel

Статус коннектора: Запланирован Ещё не создан. Сегодня Tajo не запускает этот коннектор.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Подключите Mixpanel к Brevo через Tajo, чтобы объединить продуктовую аналитику с маркетинговой автоматизацией. Синхронизируйте профили пользователей, поведенческие события и когорты для создания data-driven кампаний на основе реального использования продукта.

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Mixpanel |
| **Категория** | Аналитика (Custom) |
| **Сложность настройки** | Средняя |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | События, профили, когорты, группы |
| **Доступных скиллов** | 7 |

## Возможности

- **Приём событий**, импорт track-событий через Ingestion API Mixpanel в рабочие процессы Brevo
- **Синхронизация профилей пользователей**, сопоставление свойств профилей пользователей Mixpanel с атрибутами контактов Brevo
- **Экспорт когорт**, синхронизация когорт Mixpanel с листами контактов Brevo для целевых кампаний
- **Групповая аналитика**, синхронизация данных на уровне групп для account-based маркетинга в B2B
- **Управление идентичностью**, использование объединения идентичностей Mixpanel для единых профилей клиентов
- **JQL-запросы**, выполнение пользовательских JQL-запросов для извлечения конкретных наборов данных для Brevo
- **Таблицы поиска**, синхронизация данных обогащения из таблиц поиска Mixpanel

## Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

1. Аккаунт Mixpanel с созданным проектом
2. Project Token Mixpanel для отслеживания на стороне клиента
3. Service Account с соответствующими правами для серверного доступа к API
4. Аккаунт Brevo с доступом к API
5. Аккаунт Tajo с API-учётными данными

## Аутентификация

### Service Accounts (рекомендуется)

Mixpanel рекомендует использовать Service Accounts для аутентификации через API. Service accounts используют HTTP Basic Auth с именем пользователя и паролем service account.

```bash
# Аутентификация Service Account
curl https://mixpanel.com/api/app/me \
  -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"
```

### Project Token

Project Token используется для отслеживания событий на стороне клиента и безопасен для включения в клиентский код:

```javascript
// Инициализация на стороне клиента
mixpanel.init("YOUR_PROJECT_TOKEN");
```

### OAuth (для партнёрских интеграций)

Для интеграций приложений, получающих доступ к нескольким проектам:

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

## Конфигурация

### Базовая настройка

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

### Сопоставление событий

Сопоставьте события Mixpanel с типами событий Brevo:

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

### Сопоставление свойств профиля

Сопоставьте свойства пользователей Mixpanel с атрибутами контактов 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
```

## Эндпоинты API

| Метод | Эндпоинт | Описание |
| --- | --- | --- |
| `POST` | `/import` | Импорт событий (Ingestion API) |
| `POST` | `/track` | Отслеживание событий (на стороне клиента) |
| `POST` | `/engage#$set` | Установить свойства профиля пользователя |
| `POST` | `/engage#$set_once` | Установить свойства только если ещё не заданы |
| `POST` | `/engage#$delete` | Удалить профиль пользователя |
| `POST` | `/engage#$union` | Объединение со свойствами-списками |
| `POST` | `/groups` | Установить свойства группового профиля |
| `GET` | `/export` | Экспорт необработанных данных событий |
| `POST` | `/cohorts/list` | Список сохранённых когорт |
| `POST` | `/engage/query` | Запрос профилей пользователей |
| `POST` | `/jql` | Выполнить пользовательские JQL-запросы |
| `GET` | `/segmentation` | Запрос отчётов сегментации |
| `GET` | `/retention` | Запрос отчётов по удержанию |
| `GET` | `/funnels` | Запрос отчётов по воронкам |

## Примеры кода

### Инициализация коннектора Mixpanel

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

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

// Подключение проекта 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
});
```

### Импорт событий через Ingestion API

```javascript
// Импорт событий в Mixpanel (автоматически пересылается в 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 }
```

### Синхронизация когорты с Brevo

```javascript
// Экспорт когорты Mixpanel и синхронизация с листом 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
// }
```

### Установка свойств профиля пользователя

```javascript
// Установка свойств пользователя через 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
    }
  }])
});
```

## Ограничения скорости

| API | Лимит | Детали |
| --- | --- | --- |
| **Ingestion API** | 2 ГБ/мин | На проект |
| **Track API** | Без жёсткого лимита | Доставка по мере возможности |
| **Engage API** | 2 000 обновлений/пакет | Макс. 2 ГБ/мин на проект |
| **Query API** | 60 запросов/час | На проект (Service Account) |
| **Export API** | 60 запросов/час | Макс. 100 дней на запрос |
| **JQL API** | 60 запросов/час | На проект |
| **Cohort Export** | 60 запросов/час | На проект |

Дедупликация событий

Mixpanel дедублицирует события с помощью свойства `$insert_id`. Всегда включайте уникальный `$insert_id`, чтобы предотвратить дублирование событий при повторных попытках импорта.

## Устранение неполадок

| Проблема | Причина | Решение |
| --- | --- | --- |
| События не отображаются | Неверный project token | Проверьте, что токен соответствует целевому проекту |
| Отсутствуют свойства профиля | Использование неверного API | Используйте `/engage#$set` для свойств профиля, а не `/track` |
| Экспорт когорты завершается ошибкой | Недостаточно прав | Убедитесь, что Service Account имеет роль Admin или Analyst |
| Дублирование событий | Отсутствует `$insert_id` | Включайте уникальный `$insert_id` в каждое событие |
| 402 Payment Required | Превышены лимиты данных | Проверьте лимиты плана Mixpanel и обновитесь при необходимости |
| Данные ЕС не маршрутизируются | Неверный регион данных | Используйте `api-eu.mixpanel.com` для проектов ЕС |
| Проблемы с объединением идентичностей | Неверный distinct\_id | Следуйте рекомендациям Mixpanel по управлению идентичностями |

## Лучшие практики

1. **Используйте Service Accounts**, предпочитайте Service Accounts вместо Project Secret для серверной аутентификации
2. **Включайте `$insert_id`**, всегда задавайте уникальный insert ID для дедупликации событий
3. **Пакетные обновления профилей**, отправляйте до 2 000 обновлений профилей за запрос для эффективности
4. **Используйте эндпоинты ЕС**, для данных с резидентностью в ЕС используйте `api-eu.mixpanel.com` для всех вызовов API
5. **Синхронизируйте когорты по расписанию**, настройте ежедневную или еженедельную синхронизацию когорт вместо непрерывного опроса
6. **Используйте зарезервированные свойства**, используйте зарезервированные свойства Mixpanel (`$email`, `$first_name`) для данных профиля
7. **Контролируйте приём данных**, используйте страницу Events в Mixpanel для проверки получения событий

## Безопасность

- **Только HTTPS**, все API-коммуникации требуют TLS-шифрования
- **Изоляция Service Account**, доступ ограничен проектом с правами на основе ролей
- **Дедупликация событий**, встроенная дедупликация через `$insert_id` предотвращает проблемы целостности данных
- **SOC 2 Type II**, Mixpanel сертифицирован по SOC 2 Type II
- **GDPR/CCPA**, поддерживает удаление данных пользователей через GDPR API
- **Резидентность данных в ЕС**, доступен дата-центр в ЕС для соответствия европейским требованиям

## Связанные ресурсы

- [Коннектор Segment](https://tajo.io/ru/docs/connectors/custom/segment)
- [Коннектор Amplitude](https://tajo.io/ru/docs/connectors/custom/amplitude)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
- [Brevo Events API](https://tajo.io/ru/docs/events-engagement/create-event)
