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:
- Hyperflow (Disparo): Inicia o processo e chama este subfluxo para obter um ID único.
- N8N (Registro): O Hyperflow envia os dados (incluindo o ID) para o fluxo Adicionar Campaign Trigger V2.
- 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ável | Origem | Tipo | Obrigatório | Descrição | Uso no Fluxo |
|---|---|---|---|---|---|
correlation_id | input | string | Não | ID de correlação pré-existente | Verificado para decidir se gera um novo |
Variáveis Internas (Flow Variables)
| Variável | Criada em | Tipo | Fonte | Descrição | Dependências |
|---|---|---|---|---|---|
flow.id | Nó 1 ou 4b | string | input.correlation_id ou Código UUID | O ID de correlação final a ser retornado | Retorno 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---id → 2-conditional---correlation-id
- Inicialização: O fluxo recebe os dados de entrada e tenta definir
flow.idcom o valor deinput.correlation_id. - 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-id → 4b-flow-variable---id
- Geração (Código): Um script JavaScript utiliza a biblioteca
uuidpara gerar um novo UUID v4. - 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).