Início › Glossário › Correlation ID (ID de correlação)
Glossário

O que é Correlation ID (ID de correlação)?

Correlation ID é um identificador único que viaja com uma “transação” de ponta a ponta (webhook → workflow → API → fila → e-mail), permitindo juntar logs e eventos que pertencem ao mesmo caso. Na prática, ele reduz o tempo de debug, evita caça ao erro por tentativa e ajuda em auditoria. Você pode gerar um UUID no gatilho e repassar em headers, campos e logs.

Correlation ID não é “ID do cliente” (e nem o ID do pedido)

Muita automação no Brasil começa com um identificador já existente: número do pedido, telefone, e-mail, ID do lead. Isso ajuda, mas não resolve o principal: uma mesma pessoa pode gerar várias execuções, várias tentativas (retry) e vários eventos parecidos.

Correlation ID é diferente: ele identifica a execução lógica daquela jornada. Se o workflow reprocessar, cair em fila, chamar três APIs e voltar, você ainda consegue dizer: “tudo isso aqui foi o mesmo caso”.

Para que serve na prática (os 4 ganhos que mais aparecem)

Onde ele brilha é no dia a dia de operação — especialmente quando você já passou da fase “funciona na minha máquina” e começou a ter volume, time e dependências.

  • Debug rápido: você pesquisa 1 valor e encontra todos os logs daquela jornada.
  • Auditoria: dá para reconstruir o caminho (quem chamou quem, quando, e com qual payload “resumido”).
  • Controle de duplicidade: facilita provar que dois eventos são repetição do mesmo gatilho (mesmo correlation ID) vs. dois casos distintos.
  • Atendimento interno: suporte/comercial consegue pedir “me manda o correlation ID” e parar de depender de prints.

Onde colocar o Correlation ID (headers, payload, logs e banco)

Você não precisa escolher um lugar só. O padrão mais resiliente é: header + campo no payload + persistência mínima em algum log/banco.

Ponto do fluxoComo passar o Correlation IDObservação prática
Webhook de entradaGerar e anexar (ex.: header X-Correlation-Id)Se o cliente já manda um ID, você pode reaproveitar, mas valide formato/colisão.
Chamadas HTTP para APIsRepassar em header (X-Correlation-Id) e/ou queryNem toda API registra isso, mas você registra do seu lado.
Filas (RabbitMQ/SQS/Kafka)Incluir em atributos/headers da mensagemAjuda a rastrear retries, DLQ e reprocessamento.
Logs do orquestrador (n8n/Make)Logar em cada etapa críticaEvite logar dados sensíveis; logue o ID e um resumo.
Banco (tabela de eventos)Salvar correlation_id + status + timestampsCria trilha de auditoria sem depender só do histórico da ferramenta.

Como gerar: UUID serve, mas o ponto é consistência

O caminho mais comum é gerar um UUID no início do fluxo (no primeiro nó/step) e guardar numa variável. Se você já recebe um identificador do sistema de origem (por exemplo, um event_id confiável), dá para usar como correlation ID — desde que ele seja único por tentativa e não só por entidade.

Se você não tem certeza se o ID recebido é realmente único por evento, prefira criar o seu e guardar também o ID original (ex.: source_event_id). Assim você cruza as duas visões.

Checklist rápido (sem romantizar): o mínimo que funciona

Se você só fizer o básico abaixo, já melhora muito a vida de quem opera a automação:

  • Gerar correlation ID no gatilho (ou aceitar o que veio, validando).
  • Propagar o mesmo valor em todas as chamadas HTTP e mensagens em fila.
  • Logar o correlation ID nas etapas que falham (e no sucesso final).
  • Persistir status final (OK/erro) + correlation ID em uma tabela/planilha de eventos.
  • Nunca usar correlation ID como segredo (ele não é token de segurança).

Erros comuns que fazem o Correlation ID “não servir pra nada”

Dá para implementar e ainda assim continuar cego. Os tropeços mais comuns são bem previsíveis:

  • Gerar um ID novo em cada nó (você perde a linha do tempo do caso).
  • Logar o ID só no começo e nunca mais (na hora da falha, cadê?).
  • Misturar ID de entidade (cliente/pedido) com ID de execução (correlação).
  • Colocar o ID, mas não propagar para filas/retries (justo onde mais precisa).
  • Salvar correlation ID junto com dados sensíveis em texto puro (desnecessário e perigoso).

Perguntas frequentes

Correlation ID é a mesma coisa que Idempotency Key?
Não. Correlation ID serve para rastrear e juntar eventos/logs do mesmo caso. Idempotency Key serve para evitar duplicidade de efeito (ex.: não criar dois pedidos) quando a mesma requisição é reenviada. Muitas operações usam os dois: um para rastreio, outro para garantia de “no máximo uma vez” no lado do destino.
No n8n e no Make eu consigo usar Correlation ID sem programar?
Sim. Você pode gerar um UUID e salvar em variável/campo, e então reutilizar esse valor nos próximos passos (HTTP headers, campos, logs e atualizações em planilhas/banco). Se a ferramenta não tiver um “UUID node” explícito, dá para gerar via expressão/função disponível, ou derivar de timestamp+random — desde que seja realmente difícil de colidir.
Posso usar o número do pedido como correlation ID?
Pode, mas com cuidado: número do pedido identifica a entidade, não a tentativa/executação. Se o mesmo pedido disparar reprocessamento, retentativas e webhooks duplicados, você perde a separação dos eventos. Um modelo comum é: correlation_id (execução) + order_id (entidade).
Correlation ID ajuda em filas e DLQ (dead-letter queue)?
Ajuda muito. Quando uma mensagem vai para retry ou acaba na DLQ, o correlation ID permite ligar a falha ao webhook original e às tentativas anteriores. Sem isso, a DLQ vira um “cemitério” difícil de investigar porque cada reprocessamento parece um caso isolado.

Termos relacionados

← Ver glossário completo