Конектор Mixpanel
Свържете Mixpanel с Brevo чрез Tajo, за да обедините продуктовата аналитика с маркетинговата автоматизация. Синхронизирайте потребителски профили, поведенчески събития и кохорти, за да създавате data-driven кампании, базирани на реално използване на продукта.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Mixpanel |
| Категория | Analytics (Персонализирана) |
| Сложност на настройка | Средна |
| Официална интеграция | Не |
| Синхронизирани данни | Събития, профили, кохорти, групи |
| Налични умения | 7 |
Функции
- Ingestion на събития – Импортирайте track събития чрез Mixpanel Ingestion API в работните потоци на Brevo
- Синхронизация на потребителски профили – Мапвайте свойства на потребителски профили от Mixpanel към атрибути на контактите в Brevo
- Експорт на кохорти – Синхронизирайте кохортите от Mixpanel към списъци с контакти в Brevo за насочени кампании
- Групова аналитика – Синхронизирайте данни на ниво група за B2B account-based маркетинг
- Управление на идентичности – Използвайте identity merge на Mixpanel за унифицирани клиентски профили
- JQL заявки – Изпълнявайте персонализирани JQL заявки за извличане на конкретни набори от данни за Brevo
- Lookup таблици – Синхронизирайте данни за обогатяване от lookup таблиците на Mixpanel
Предварителни условия
Преди да започнете, уверете се, че имате:
- Акаунт в Mixpanel със създаден проект
- Вашия Mixpanel Project Token за client-side проследяване
- Service Account с подходящи разрешения за server-side API достъп
- Акаунт в Brevo с API достъп
- Акаунт в Tajo с API идентификационни данни
Автентикация
Service Accounts (препоръчително)
Mixpanel препоръчва използването на Service Accounts за API автентикация. Service accounts използват HTTP Basic Auth с потребителско име (username на service account) и парола (secret на service account).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Project Token
Project Token се използва за client-side проследяване на събития и е безопасно да се включва в клиентски код:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (за партньорски интеграции)
За интеграции на приложения, които достъпват множество проекти:
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: LTVAPI крайни точки
| Method | Endpoint | Описание |
|---|---|---|
POST | /import | Импортиране на събития (Ingestion API) |
POST | /track | Проследяване на събития (client-side) |
POST | /engage#$set | Задаване на свойства на потребителския профил |
POST | /engage#$set_once | Задаване на свойства само ако вече не са зададени |
POST | /engage#$delete | Изтриване на потребителски профил |
POST | /engage#$union | Union към list свойства |
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});
// Connect Mixpanel projectawait 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
// 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 }Синхронизация на кохорта към Brevo
// Export a Mixpanel cohort and sync to a Brevo listconst 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// }Задаване на свойства на потребителския профил
// Set user properties via the Engage APIconst 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: { $first_name: "Jane", $last_name: "Kim", plan: "premium", total_orders: 12, lifetime_value: 1250.00 } }])});Лимити на заявки
| API | Лимит | Детайли |
|---|---|---|
| Ingestion API | 2 GB/мин | За проект |
| Track API | Без твърд лимит | Best-effort доставка |
| Engage API | 2000 обновявания/batch | Максимум 2 GB/мин за проект |
| 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 за ЕС проекти |
| Проблеми с identity merge | Неправилен distinct_id | Следвайте най-добрите практики на Mixpanel за управление на идентичности |
Най-добри практики
- Използвайте Service Accounts – Предпочитайте Service Accounts пред Project Secret за server-side автентикация
- Включвайте
$insert_id– Винаги задавайте уникален insert ID за дедупликация на събития - Групирайте обновяванията на профили – Изпращайте до 2000 обновявания на профили на заявка за ефективност
- Използвайте ЕС крайни точки – За ЕС резидентност на данни използвайте
api-eu.mixpanel.comза всички API повиквания - Синхронизирайте кохортите по график – Настройте ежедневна или седмична синхронизация на кохорти, вместо непрекъснато допитване
- Мапвайте резервираните свойства – Използвайте резервираните свойства на Mixpanel (
$email,$first_name) за данни на профила - Наблюдавайте ingestion – Използвайте страницата Events на Mixpanel, за да проверите, че събитията се получават правилно
Сигурност
- Само HTTPS – Цялата API комуникация изисква TLS криптиране
- Изолация на Service Account – Обхватен достъп за всеки проект с разрешения на базата на роли
- Дедупликация на събития – Вградена дедупликация чрез
$insert_idпредотвратява проблеми с целостта на данните - SOC 2 Type II – Mixpanel е сертифициран по SOC 2 Type II
- GDPR/CCPA – Поддържа изтриване на потребителски данни чрез GDPR API
- ЕС резидентност на данни – Наличен ЕС център за данни за европейско съответствие