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ávelOrigemTipoObrigatórioDescriçãoUso no Fluxo
bodywebhookobjectSimCorpo da requisição contendo dados da campanhaExtraído para processamento

Variáveis Internas (Flow Variables)

VariávelCriada emTipoFonteDescriçãoDependências
flow.jsonNó 2objectinput.bodyO corpo do JSON recebidoParse Payload
flow.payloadNó 3objectflow.json.payloadO payload da campanha, garantido como objetoInsert 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---webhook2-flow-variables---define-json3-flow-variables---parse-payload

  1. Recepção: O webhook recebe a requisição POST.
  2. Definição: O corpo da requisição é isolado na variável json.
  3. 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_v2 do 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": { ... },
    ...
  }
}