Generate Correlation ID

Visão Geral

Este é um subfluxo auxiliar projetado para garantir a existência de um identificador de correlação (correlation_id) único. Ele verifica se um ID já foi fornecido; caso contrário, gera um novo UUID v4.

Nota: Este fluxo é amplamente utilizado por outros fluxos para manter a rastreabilidade.

Objetivo

O principal objetivo deste fluxo é padronizar a geração e a propagação de IDs de correlação entre diferentes etapas de automação. Isso permite:

  • Rastreabilidade: Unificar logs e eventos de um mesmo processo através de um ID único.
  • Resiliência: Garantir que, mesmo se o iniciador do processo não fornecer um ID, um será gerado.

Fluxos que utilizam este subfluxo

Este fluxo é uma dependência comum. Abaixo estão os fluxos que atualmente o invocam:

Contexto de Uso: Registro de Gatilhos de Campanha

Este subfluxo desempenha um papel crucial no ciclo de registro de disparos de campanhas. O correlation_id gerado ou validado aqui é utilizado para rastrear o evento desde o disparo no Hyperflow até o seu registro no MongoDB via N8N.

Ciclo de Relações:

  1. Hyperflow (Disparo): Inicia o processo e chama este subfluxo para obter um ID único.
  2. N8N (Registro): O Hyperflow envia os dados (incluindo o ID) para o fluxo Adicionar Campaign Trigger V2.
  3. MongoDB (Persistência): O N8N insere os dados na coleção campaign_triggers_v2.

Diagrama de Fluxo

graph TD
    Start((Início)) --> Node1[1-flow-variable<br/>Set ID]
    Node1 --> Node2{2-conditional<br/>Correlation ID existe?}
    
    Node2 -->|Sim| Node5[5-end-flow<br/>Sucesso]
    Node2 -->|Não| Node3b[3b-code<br/>Gera UUID]
    
    Node3b -->|Sucesso| Node4b[4b-flow-variable<br/>Set ID]
    Node3b -->|Erro| Node4c[4c-end-flow<br/>Erro]
    
    Node4b --> Node5
    
    classDef inicio fill:#e1f5ff
    classDef decisao fill:#ffe1e1
    classDef fim fill:#e6fffa
    classDef erro fill:#ffe6e6
    
    class Start inicio
    class Node2 decisao
    class Node5 fim
    class Node4c erro

Variáveis do Fluxo

Variáveis de Entrada (Input)

VariávelOrigemTipoObrigatórioDescriçãoUso no Fluxo
correlation_idinputstringNãoID de correlação pré-existenteVerificado para decidir se gera um novo

Variáveis Internas (Flow Variables)

VariávelCriada emTipoFonteDescriçãoDependências
flow.idNó 1 ou 4bstringinput.correlation_id ou Código UUIDO ID de correlação final a ser retornadoRetorno do fluxo

Saída (Output)

Retorno de Sucesso

{
  "id": "uuid-v4-string"
}

Retorno de Erro

O fluxo termina sem retorno de dados em caso de falha na geração do código.

Fluxo Detalhado

Fase 1: Verificação e Geração

Nós: 1-flow-variable---id2-conditional---correlation-id

  1. Inicialização: O fluxo recebe os dados de entrada e tenta definir flow.id com o valor de input.correlation_id.
  2. Verificação: O nó condicional verifica se um ID válido já existe.

Decisão (Nó 2):

  • Sim (ID existe): O fluxo segue diretamente para a finalização (Nó 5), retornando o ID existente.
  • Não (ID não existe): O fluxo segue para a geração de um novo ID.

Fase 2: Geração de Novo ID (Se necessário)

Nós: 3b-code---cria-correlation-id4b-flow-variable---id

  1. Geração (Código): Um script JavaScript utiliza a biblioteca uuid para gerar um novo UUID v4.
  2. Atribuição: O novo UUID gerado é atribuído à variável flow.id.

Fase 3: Finalização

Nós: 5-end-flow (Sucesso) ou 4c-end-flow---error (Erro)

  • Sucesso: Retorna um objeto JSON contendo o id.
  • Erro: Caso o script de geração falhe, o fluxo termina em erro.

Notas Técnicas

Sobre Variáveis

  • flow.id: É a variável central que normaliza o output, independentemente de o ID ter vindo do input ou ter sido gerado internamente.

Sobre Integrações

  • Bibliotecas JS: Utiliza uuid (v4).

6 items under this folder.