Store Analytics Events (N8N)
Visão Geral
Este fluxo atua como um consumidor de eventos de analytics. Ele é acionado por mensagens na fila RabbitMQ e persiste os dados estruturados em uma coleção no MongoDB.
Objetivo
Garantir a persistência confiável e estruturada dos eventos de analytics para posterior análise e inteligência de dados.
- Desacoplamento: Processa eventos de forma assíncrona, sem impactar a performance do produtor.
- Estruturação: Normaliza e prepara os dados antes da inserção no banco.
Diagrama de Fluxo
graph TD Start((Início)) --> N1[1-webhook] N1 --> N2[2-set-variable---define-json] N2 --> N3[3-mongo---insert-into-events-collection] classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px; classDef webhook fill:#e1f5ff,stroke:#0077b6,stroke-width:2px; classDef database fill:#e9ecef,stroke:#adb5bd,stroke-width:2px; class N1 webhook; class N3 database;
Variáveis do Fluxo
Variáveis de Entrada (Input)
| Variável | Origem | Tipo | Obrigatório | Descrição | Uso no Fluxo |
|---|---|---|---|---|---|
body.event_type | webhook | string | Sim | Tipo do evento | Persistido no Mongo |
body.metadata | webhook | object | Não | Metadados | Persistido no Mongo |
body.payload | webhook | object | Sim | Dados do evento | Persistido no Mongo |
Variáveis Internas (Flow Variables)
| Variável | Criada em | Tipo | Fonte | Descrição |
|---|---|---|---|---|
event_type | Nó 2 | string | input.body | Mapeado para inserção |
timestamp | Nó 2 | number | Date.now() | Carimbo de tempo da inserção |
metadata | Nó 2 | object | input.body | Objeto de metadados |
payload | Nó 2 | object | input.body | Objeto de payload |
Fluxo Detalhado
Fase 1: Recepção e Persistência
O fluxo recebe o payload do evento, adiciona um timestamp de processamento e insere o documento na coleção analytics_events do MongoDB.
Nós: 1 → 2 → 3
Ações:
- Webhook (
1): Recebe a requisição POST com os dados do evento (simulando o consumo da fila). - Set Variable (
2): Extrai os campos do corpo da requisição e gera otimestampatual. - Mongo Insert (
3): Insere o documento JSON formatado na coleçãoanalytics_events.
Dependências Externas
Webhooks / APIs
Webhook Trigger
- Endpoint:
POST https://webhook.kloudbr.net/webhook/event/analytics - Propósito: Ponto de entrada para consumo de eventos (integrado à fila RabbitMQ).
Banco de Dados
MongoDB
- Resource: Document
- Collection: analytics_events
- Operation: Insert
- Campos:
event_type,timestamp,metadata,payload
Saída (Output)
Cenários de Finalização
Sucesso
- Documento inserido com sucesso no MongoDB.
Erro
- Falha na conexão com o Mongo ou erro de validação do schema (se houver).