Коннектор Mixpanel

Подключите 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.

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

Project Token

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

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

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

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

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

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

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

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:

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:

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

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

// Импорт событий в 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

// Экспорт когорты 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
// }

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

// Установка свойств пользователя через 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: "[email protected]",
$first_name: "Jane",
$last_name: "Kim",
plan: "premium",
total_orders: 12,
lifetime_value: 1250.00
}
}])
});

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

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

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

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
  • Резидентность данных в ЕС, доступен дата-центр в ЕС для соответствия европейским требованиям

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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-ассистент

Привет! Спрашивайте меня о документации.