Adicionar Campaign Trigger V2
Visão Geral
Este fluxo é responsável por receber gatilhos de campanha via webhook, processar os dados recebidos e armazená-los na coleção campaign_triggers_v2 do MongoDB. Ele atua como um ponto de entrada para o registro de disparos de campanhas.
Objetivo
O objetivo principal é garantir que todos os disparos de campanhas sejam registrados de forma estruturada e segura, permitindo rastreabilidade e análise posterior. Ele desacopla o disparo da campanha do seu registro, garantindo que o registro ocorra de forma assíncrona e confiável.
Diagrama de Fluxo
graph TD Start((Início)) --> Node1[1-webhook<br/>Webhook] Node1 --> Node2[2-flow-variables<br/>Define JSON] Node2 --> Node3[3-flow-variables<br/>Parse Payload] Node3 --> Node4[4-mongo<br/>Insert Campaign Triggers] Node3 --> Node6[6-code<br/>Execution Data] Node4 --> Node5[5-respond-to-webhook<br/>Respond] Node5 --> End((Fim)) Node6 --> End classDef inicio fill:#e1f5ff classDef processo fill:#fff4e1 classDef fim fill:#e6fffa classDef database fill:#e8f5e9 class Start inicio class Node1,Node2,Node3,Node5,Node6 processo class Node4 database class End fim
Variáveis do Fluxo
Variáveis de Entrada (Input)
| Variável | Origem | Tipo | Obrigatório | Descrição | Uso no Fluxo |
|---|---|---|---|---|---|
body | webhook | object | Sim | Corpo da requisição contendo dados da campanha | Extraído para processamento |
Variáveis Internas (Flow Variables)
| Variável | Criada em | Tipo | Fonte | Descrição | Dependências |
|---|---|---|---|---|---|
flow.json | Nó 2 | object | input.body | O corpo do JSON recebido | Parse Payload |
flow.payload | Nó 3 | object | flow.json.payload | O payload da campanha, garantido como objeto | Insert Mongo |
Entrada (Input)
Estrutura Esperada
{
"campaign": "nome_da_campanha",
"metadata": {
"campaign_trigger_id": "uuid"
},
"phone": 5511999999999,
"payload": {
"environment": "production",
"projected_commission": "123,11"
}
}Fluxo Detalhado
Fase 1: Recepção e Tratamento
Nós: 1-webhook---webhook → 2-flow-variables---define-json → 3-flow-variables---parse-payload
- Recepção: O webhook recebe a requisição POST.
- Definição: O corpo da requisição é isolado na variável
json. - Parse: O campo
payloadé verificado e parseado se for uma string, garantindo que seja um objeto JSON válido para inserção no banco.
Fase 2: Persistência e Logging
Nós: 4-mongo---insert-campaign-triggers e 6-code---execution-data
- Persistência: Os dados tratados são inseridos na coleção
campaign_triggers_v2do MongoDB. - Logging: Paralelamente, os dados de execução são processados (provavelmente para logs do n8n).
Fase 3: Resposta
Nós: 5-respond-to-webhook---respond
- Após a inserção bem-sucedida no banco, o fluxo retorna uma resposta de sucesso para o chamador do webhook.
Dependências Externas
Webhooks / APIs
Campaign Trigger Webhook
- Endpoint:
POST https://webhook.kloudbr.net/webhook/campaign-trigger - Resposta esperada:
{
"status": "success",
"data": { ... }
}Banco de Dados
- MongoDB: Coleção
campaign_triggers_v2(Insert)
Saída (Output)
Retorno de Sucesso
{
"status": "success",
"data": {
"campaign": "...",
"metadata": { ... },
...
}
}