Conector Mixpanel
Conecte o Mixpanel ao Brevo através do Tajo para unir product analytics com automação de marketing. Sincronize perfis de usuário, eventos comportamentais e cohorts para criar campanhas orientadas a dados com base no uso real do produto.
Visão geral
| Propriedade | Valor |
|---|---|
| Plataforma | Mixpanel |
| Categoria | Analytics (Personalizado) |
| Complexidade de configuração | Média |
| Integração oficial | Não |
| Dados sincronizados | Eventos, Perfis, Cohorts, Grupos |
| Skills disponíveis | 7 |
Recursos
- Ingestão de eventos - Importe eventos de track via API de ingestão do Mixpanel para workflows do Brevo
- Sincronização de perfil de usuário - Mapeie propriedades de perfil de usuário do Mixpanel para atributos de contato do Brevo
- Exportação de cohort - Sincronize cohorts do Mixpanel para listas de contatos do Brevo para campanhas segmentadas
- Analytics de grupo - Sincronize dados em nível de grupo para marketing baseado em conta B2B
- Gestão de identidade - Aproveite o merge de identidade do Mixpanel para perfis unificados de cliente
- Consultas JQL - Execute consultas JQL personalizadas para extrair conjuntos específicos de dados para o Brevo
- Tabelas de lookup - Sincronize dados de enriquecimento de tabelas de lookup do Mixpanel
Pré-requisitos
Antes de começar, certifique-se de que você tem:
- Uma conta Mixpanel com um projeto criado
- Seu Project Token do Mixpanel para rastreamento do lado do cliente
- Uma Service Account com permissões apropriadas para acesso à API do lado do servidor
- Uma conta Brevo com acesso à API
- Uma conta Tajo com credenciais de API
Autenticação
Service Accounts (Recomendado)
O Mixpanel recomenda o uso de Service Accounts para autenticação de API. Service accounts usam HTTP Basic Auth com nome de usuário (username da service account) e senha (segredo da service account).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Project Token
O Project Token é usado para rastreamento de eventos do lado do cliente e é seguro incluir no código do cliente:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (para integrações de parceiros)
Para integrações de app que acessam múltiplos projetos:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Configuração
Configuração básica
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: 17Mapeamento de eventos
Mapeie eventos do Mixpanel para tipos de evento do 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"Mapeamento de propriedades de perfil
Mapeie propriedades de usuário do Mixpanel para atributos de contato do 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: LTVEndpoints da API
| Método | Endpoint | Descrição |
|---|---|---|
POST | /import | Importar eventos (API de ingestão) |
POST | /track | Rastrear eventos (lado do cliente) |
POST | /engage#$set | Definir propriedades de perfil de usuário |
POST | /engage#$set_once | Definir propriedades apenas se ainda não estiverem definidas |
POST | /engage#$delete | Excluir um perfil de usuário |
POST | /engage#$union | União para propriedades de lista |
POST | /groups | Definir propriedades de perfil de grupo |
GET | /export | Exportar dados brutos de eventos |
POST | /cohorts/list | Listar cohorts salvos |
POST | /engage/query | Consultar perfis de usuário |
POST | /jql | Executar consultas JQL personalizadas |
GET | /segmentation | Consultar relatórios de segmentação |
GET | /retention | Consultar relatórios de retenção |
GET | /funnels | Consultar relatórios de funil |
Exemplos de código
Inicializar o conector 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});Importar eventos via API de ingestão
// 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 }Sincronizar cohort para o 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// }Definir propriedades de perfil de usuário
// 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 } }])});Limites de taxa
| API | Limite | Detalhes |
|---|---|---|
| API de ingestão | 2 GB/min | Por projeto |
| Track API | Sem limite rígido | Entrega best-effort |
| Engage API | 2.000 atualizações/lote | Máx 2 GB/min por projeto |
| Query API | 60 requisições/hora | Por projeto (Service Account) |
| Export API | 60 requisições/hora | Máx 100 dias por consulta |
| JQL API | 60 requisições/hora | Por projeto |
| Cohort Export | 60 requisições/hora | Por projeto |
Deduplicação de eventos
O Mixpanel deduplica eventos usando a propriedade $insert_id. Sempre inclua um $insert_id único para evitar eventos duplicados ao tentar novamente importações que falharam.
Solução de problemas
| Problema | Causa | Solução |
|---|---|---|
| Eventos não aparecendo | Project token errado | Verifique se o token corresponde ao projeto alvo |
| Propriedades de perfil ausentes | Usando API errada | Use /engage#$set para propriedades de perfil, não /track |
| Exportação de cohort falha | Permissões insuficientes | Garanta que a Service Account tenha papel de Admin ou Analyst |
| Eventos duplicados | $insert_id ausente | Inclua $insert_id único em cada evento |
| 402 Payment Required | Limites de dados excedidos | Verifique os limites do plano Mixpanel e faça upgrade se necessário |
| Dados da UE não roteando | Residência de dados errada | Use api-eu.mixpanel.com para projetos da UE |
| Problemas de merge de identidade | distinct_id incorreto | Siga as melhores práticas de gestão de identidade do Mixpanel |
Melhores práticas
- Use Service Accounts - Prefira Service Accounts em vez de Project Secret para autenticação do lado do servidor
- Inclua
$insert_id- Sempre defina um insert ID único para deduplicação de eventos - Agrupe atualizações de perfil - Envie até 2.000 atualizações de perfil por requisição para eficiência
- Use endpoints da UE - Para residência de dados na UE, use
api-eu.mixpanel.compara todas as chamadas de API - Sincronize cohorts em agendamento - Configure sincronização de cohort diária ou semanal em vez de polling contínuo
- Mapeie propriedades reservadas - Use propriedades reservadas do Mixpanel (
$email,$first_name) para dados de perfil - Monitore a ingestão - Use a página de Eventos do Mixpanel para verificar se os eventos estão sendo recebidos corretamente
Segurança
- Somente HTTPS - Toda comunicação com a API exige criptografia TLS
- Isolamento de Service Account - Acesso com escopo por projeto com permissões baseadas em função
- Deduplicação de eventos - Dedup embutido via
$insert_idprevine problemas de integridade de dados - SOC 2 Type II - O Mixpanel é certificado SOC 2 Type II
- GDPR/CCPA - Suporta exclusão de dados do usuário via API GDPR
- Residência de dados na UE - Data center na UE disponível para conformidade europeia