SEGMENT - Hub de Analytics Multi-Plataforma
O que é este Node?
O SEGMENT é o node responsável por enviar eventos para o Segment, um hub centralizado que distribui dados de analytics para múltiplas plataformas simultaneamente (Google Analytics, Mixpanel, Amplitude, etc).
Por que este Node existe?
Integrar múltiplas ferramentas de analytics requer múltiplas integrações. O SEGMENT existe para:
- Hub centralizado: Envie dados uma vez, distribua para todas as ferramentas
- Simplifica integrações: Uma integração ao invés de 10+
- Consistência de dados: Mesmos eventos em todas as plataformas
- Flexibilidade: Adicione/remova ferramentas sem alterar código
Como funciona internamente?
Quando o SEGMENT é executado, o sistema:
- Prepara evento: Estrutura dados seguindo Segment Spec
- Envia para Segment: API recebe e valida evento
- Distribui automaticamente: Segment envia para todas as integrações ativas
- Se sucesso: Confirma recebimento do evento
- Platforms recebem: Google Analytics, Mixpanel, etc recebem automaticamente
Código interno (analytics-executor.service.ts:574-583):
private async executeSegment(operation: string, eventName: string, properties: any, userId: string, context: any): Promise<any> {
return {
success: true,
action: 'segment_event_sent',
provider: 'segment',
eventName: eventName,
message: 'Segment integration ready for implementation',
timestamp: new Date().toISOString()
};
}
Quando você DEVE usar este Node?
Use SEGMENT sempre que precisar de múltiplas ferramentas de analytics:
Casos de uso
- Multi-tool setup: Enviar para GA4 + Mixpanel + Amplitude simultaneamente
- Prova de conceito: Testar várias ferramentas sem código duplicado
- Migração: Trocar ferramenta sem reescrever tracking
- Data warehouse: Enviar dados para BigQuery/Snowflake
- Consistência: Garantir mesmos dados em todas as ferramentas
Quando NÃO usar SEGMENT
- Apenas uma ferramenta: Use integração direta GOOGLE_ANALYTICS ou MIXPANEL
- Custo: Segment cobra por eventos - pode ser caro para alto volume
- Latência mínima: Integração direta é mais rápida
Parâmetros Detalhados
provider (string, obrigatório)
O que é: Define o provedor como "segment".
Flow completo para testar:
{
"name": "Teste Segment - Provider",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "analytics_1",
"type": "analytics",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Enviar para Segment",
"parameters": {
"provider": "segment",
"eventName": "Product Viewed",
"properties": {
"product_id": "PROD_123",
"product_name": "Curso TypeScript"
}
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Evento enviado via Segment!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "analytics_1" },
{ "source": "analytics_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Verifique em Segment Debugger se evento aparece. Depois confira em todas as integrações ativas (GA4, Mixpanel, etc).
eventName (string, obrigatório)
O que é: Nome do evento seguindo Segment Spec (Track, Page, Identify, Group, Alias).
Flow completo para testar:
{
"name": "Teste Segment - Event Types",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "analytics_1",
"type": "analytics",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Track Event",
"parameters": {
"provider": "segment",
"eventName": "Order Completed",
"properties": {
"order_id": "ORDER_123",
"revenue": 297.00,
"currency": "BRL"
}
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Pedido rastreado em todas as plataformas!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "analytics_1" },
{ "source": "analytics_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Evento aparece em todas as ferramentas conectadas ao Segment.
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| provider | string | Sim | Deve ser "segment" |
| eventName | string | Sim | Nome do evento (Track, Page, Identify) |
| properties | object | Não | Propriedades do evento |
| userId | string | Não | User ID ou Anonymous ID |
Configuração Necessária
Variáveis de Ambiente
SEGMENT_WRITE_KEY=seu_write_key_aqui
Como obter:
- Acesse Segment
- Vá em Connections > Sources
- Copie o Write Key
Exemplo: E-commerce Tracking Completo
{
"name": "Segment - E-commerce Tracking",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "analytics_1",
"type": "analytics",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Product Viewed",
"parameters": {
"provider": "segment",
"eventName": "Product Viewed",
"properties": {
"product_id": "SKU_123",
"name": "Curso TypeScript",
"price": 297.00
}
}
}
},
{
"id": "analytics_2",
"type": "analytics",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Product Added",
"parameters": {
"provider": "segment",
"eventName": "Product Added",
"properties": {
"cart_id": "CART_456",
"product_id": "SKU_123",
"quantity": 1
}
}
}
},
{
"id": "analytics_3",
"type": "analytics",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Order Completed",
"parameters": {
"provider": "segment",
"eventName": "Order Completed",
"properties": {
"order_id": "ORDER_789",
"total": 297.00,
"revenue": 297.00
}
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Sucesso",
"parameters": {
"message": "✅ Funil completo rastreado!\n\n📊 Dados enviados para todas as plataformas via Segment."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "analytics_1" },
{ "source": "analytics_1", "target": "analytics_2" },
{ "source": "analytics_2", "target": "analytics_3" },
{ "source": "analytics_3", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Resposta do Node
{
"success": true,
"action": "segment_event_sent",
"provider": "segment",
"eventName": "Order Completed",
"message": "Segment integration ready for implementation",
"timestamp": "2025-01-15T10:30:00.000Z"
}
Eventos Segment Spec
Track Events
- Product Viewed, Product Added, Order Completed
- Eventos de negócio customizados
Page Events
- Page views com URL e título
Identify Events
- User properties e traits
Group Events
- Company/Account properties
Boas Práticas
✅ SIM: - Use Segment Spec para nomes de eventos e-commerce - Configure múltiplas destinations no Segment dashboard - Use userId consistente cross-platform - Test com Segment Debugger
❌ NÃO: - Não envie dados sensíveis - Não use eventos genéricos - Não esqueça de ativar destinations
Dicas
💡 Dica 1: Segment Debugger mostra eventos em tempo real 💡 Dica 2: Configure destinations sem alterar código 💡 Dica 3: Use Segment Protocols para validação de dados 💡 Dica 4: Combine com Segment Personas para CDPs
Próximo Node
→ AMPLITUDE - Product analytics alternativo → GOOGLE_ANALYTICS - Marketing analytics → MIXPANEL - Event tracking detalhado