Destinos de Eventos
Destinos definem para onde seus eventos serao enviados alem do NotifyChain. Voce pode integrar com ferramentas de analytics, data warehouses e sistemas customizados.
Destinos Disponiveis
NotifyChain (Padrao)
Todos os eventos sao processados internamente para:
- Gatilhos de jornadas
- Segmentacao de audiencias
- Metas de campanhas
- Analytics interno
Configuracao: Sempre ativo, nao requer configuracao.
Google Analytics
Envie eventos para o Google Analytics 4.
Configuracao:
- Acesse Eventos > Destinos
- Clique em Google Analytics
- Preencha:
- Measurement ID: G-XXXXXXXXXX
- API Secret: Obtido no GA4
Mapeamento de Eventos:
| NotifyChain | Google Analytics |
|---|---|
| Nome do evento | event_name |
| Propriedades | event_parameters |
| userId | user_id |
Exemplo de configuracao:
Evento: "Compra Realizada"
GA Event Name: "purchase"
Parametros:
- transaction_id = orderId
- value = total
- currency = "BRL"
Mixpanel
Envie eventos para o Mixpanel.
Configuracao:
- Acesse Eventos > Destinos
- Clique em Mixpanel
- Preencha:
- Project Token: Obtido no Mixpanel
- API Secret (opcional): Para server-side
Mapeamento:
| NotifyChain | Mixpanel |
|---|---|
| Nome do evento | Event Name |
| Propriedades | Properties |
| userId | distinct_id |
| timestamp | time |
Webhook
Envie eventos para qualquer endpoint HTTP.
Configuracao:
- Acesse Eventos > Destinos
- Clique em Webhook
- Configure:
- URL: Endpoint de destino
- Metodo: POST (padrao)
- Headers: Autenticacao e outros headers
- Formato: JSON
Headers comuns:
Authorization: Bearer seu-token
Content-Type: application/json
X-Webhook-Secret: seu-secret
Formato do payload:
{
"event": "Compra Realizada",
"userId": "user-123",
"timestamp": "2024-01-15T14:30:00Z",
"properties": {
"orderId": "ORD-12345",
"total": 299.90
},
"context": {
"ip": "189.123.45.67",
"userAgent": "Mozilla/5.0...",
"page": {
"url": "https://seusite.com/checkout",
"title": "Checkout"
}
}
}
Configurando Destinos por Evento
Cada evento pode ter destinos especificos:
- Acesse o evento
- Na secao Destinos, marque os desejados
- Configure mapeamentos especificos
Exemplo:
Evento: "Compra Realizada"
Destinos:
✓ NotifyChain (sempre)
✓ Google Analytics (purchase)
✓ Mixpanel
✓ Webhook (ERP)
Evento: "Pagina Visitada"
Destinos:
✓ NotifyChain (sempre)
✓ Google Analytics
✗ Mixpanel (economizar quota)
✗ Webhook
Transformacao de Dados
Mapeamento de Propriedades
Renomeie propriedades para cada destino:
NotifyChain → Google Analytics
-----------------------------------------
orderId → transaction_id
total → value
items[].productId → items[].item_id
items[].name → items[].item_name
Filtros
Envie apenas eventos que atendam criterios:
Evento: "Compra Realizada"
Destino: Webhook (ERP)
Filtro: total > 1000
→ Apenas compras acima de R$ 1000 vao para o ERP
Enriquecimento
Adicione dados extras antes de enviar:
Evento: "Compra Realizada"
Destino: Mixpanel
Adicionar:
- currency: "BRL"
- source: "web"
- environment: "production"
Retry e Fallback
Politica de Retry
Quando um destino falha:
- Primeira tentativa: Imediata
- Segunda tentativa: Apos 1 minuto
- Terceira tentativa: Apos 5 minutos
- Quarta tentativa: Apos 30 minutos
- Desistir: Apos 4 falhas
Monitoramento
Acompanhe status de entrega:
- Acesse Eventos > Logs
- Filtre por destino
- Veja status: Sucesso, Pendente, Falha
Alertas
Configure alertas para falhas:
Alerta: "Webhook ERP com falhas"
Condicao: > 10 falhas em 1 hora
Acao: Enviar email para equipe
Latencia e Performance
Processamento Assincrono
Eventos sao enviados de forma assincrona:
1. Tracker envia evento → NotifyChain
2. NotifyChain processa internamente (sincrono)
3. NotifyChain envia para destinos (assincrono)
Ordem de Entrega
- Eventos sao enviados na ordem recebida
- Nao ha garantia de ordem entre destinos diferentes
- Timestamps permitem ordenacao no destino
Rate Limits
Respeite limites de cada destino:
| Destino | Limite Tipico |
|---|---|
| Google Analytics | 500 req/s por propriedade |
| Mixpanel | 2000 req/s por projeto |
| Webhook | Depende do seu servidor |
Seguranca
Autenticacao
Google Analytics:
- API Secret armazenada criptografada
- Comunicacao via HTTPS
Mixpanel:
- Project Token + API Secret
- Server-side para dados sensiveis
Webhook:
- HTTPS obrigatorio
- Headers de autenticacao
- Assinatura HMAC (opcional)
Assinatura HMAC (Webhook)
Valide que o webhook veio do NotifyChain:
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return signature === `sha256=${expected}`;
}
// No seu endpoint
app.post('/webhook', (req, res) => {
const signature = req.headers['x-notifychain-signature'];
const isValid = verifyWebhook(
JSON.stringify(req.body),
signature,
'seu-webhook-secret'
);
if (!isValid) {
return res.status(401).send('Invalid signature');
}
// Processar evento
processEvent(req.body);
res.status(200).send('OK');
});
Dados Sensiveis
Filtre dados sensiveis antes de enviar:
Evento original:
{
"userId": "user-123",
"email": "maria@email.com", // PII
"cpf": "123.456.789-00" // PII
}
Evento para Google Analytics:
{
"userId": "user-123"
// email e cpf removidos
}
Boas Praticas
Configure apenas os destinos que voce realmente usa. Adicione mais conforme necessario.
Verifique logs de entrega semanalmente para identificar problemas cedo.
Mantenha documentacao de como eventos sao transformados para cada destino.
Alguns destinos cobram por evento. Filtre eventos desnecessarios para controlar custos.