Webhooks no N8N: Guia Prático para Receber Dados

Entenda como funcionam os webhooks no N8N, a diferença entre URL de teste e de produção, como proteger o endpoint e como responder a quem chamou.

Quase toda automação útil começa com um evento: um formulário enviado, um pagamento aprovado, uma mensagem recebida. Para que o N8N reaja a esses eventos no momento em que acontecem, o caminho mais comum é o webhook. Neste guia, vamos ver como ele funciona, como configurar com segurança e quais cuidados evitam dor de cabeça em produção.

O que é um webhook?

Um webhook é um endereço HTTP que fica esperando ser chamado. Em vez de o N8N perguntar a cada poucos minutos se há algo novo em um sistema, o próprio sistema avisa o N8N assim que o evento acontece, enviando os dados em uma requisição.

Essa inversão traz duas vantagens claras: a automação reage em segundos, e nenhum recurso é gasto com consultas que não encontram nada.

Abordagem Como funciona Quando usar
Polling O N8N consulta o sistema em intervalos fixos O sistema de origem não oferece webhooks
Webhook O sistema chama o N8N quando o evento acontece Sempre que a origem permitir

Como o nó Webhook funciona no N8N

O nó Webhook é um gatilho. Ao adicioná-lo como primeiro nó de um workflow, o N8N gera um endereço exclusivo para aquele fluxo. Cada requisição recebida nesse endereço inicia uma execução, e o corpo, os cabeçalhos e os parâmetros da requisição ficam disponíveis para os próximos nós.

As principais opções do nó são:

  • Método HTTP: GET, POST, PUT, PATCH, DELETE ou HEAD. A maioria das integrações envia POST.
  • Caminho: o final do endereço. Um caminho legível, como pedidos-loja, facilita a manutenção.
  • Autenticação: nenhuma, Basic Auth, Header Auth ou JWT.
  • Resposta: quando e o que devolver para quem chamou.

URL de teste e URL de produção

Este é o ponto que mais confunde quem está começando. Cada nó Webhook tem dois endereços.

A URL de teste funciona apenas enquanto você clica em ouvir evento de teste no editor. Ela recebe uma única chamada e mostra os dados na tela, o que é ótimo para montar o fluxo com dados reais.

A URL de produção só responde quando o workflow está ativo. É ela que deve ser cadastrada no sistema de origem. Se o sistema estiver configurado com a URL de teste, as chamadas vão falhar assim que você fechar o editor.

Uma regra simples evita o problema: use a URL de teste para desenvolver e troque pela de produção antes de ativar o workflow.

Protegendo o seu webhook

Um webhook é um endereço público. Qualquer pessoa que descubra a URL pode chamá-la, então vale adotar pelo menos uma camada de proteção.

Autenticação por cabeçalho

A opção Header Auth exige que a requisição traga um cabeçalho com um valor secreto. É a forma mais simples e funciona com quase todos os sistemas que permitem configurar cabeçalhos personalizados.

Verificação de assinatura

Plataformas de pagamento e de mensagens costumam assinar cada requisição com um segredo compartilhado. Nesse caso, vale validar a assinatura logo no início do fluxo, com um nó Code ou Crypto, e interromper a execução se ela não conferir.

Outros cuidados

  • Use sempre HTTPS. Os dados trafegam criptografados e o endereço não fica exposto na rede.
  • Evite caminhos óbvios. Um caminho aleatório não substitui autenticação, mas reduz chamadas indesejadas.
  • Valide os dados recebidos. Confira se os campos esperados existem antes de gravar qualquer coisa.
  • Limite o tamanho. O N8N rejeita corpos acima do limite definido em N8N_PAYLOAD_SIZE_MAX, que por padrão é de 16 MB.

Respondendo a quem chamou

Todo webhook devolve uma resposta HTTP. O N8N oferece três modos:

  1. Imediatamente: devolve um código 200 assim que recebe a chamada, antes de executar o fluxo. É o ideal quando a origem só precisa saber que o evento chegou.
  2. Quando o último nó terminar: espera o fluxo acabar e devolve os dados do último nó. Útil para fluxos curtos que calculam algo.
  3. Usando o nó Respond to Webhook: você decide em que ponto do fluxo responder e o que enviar, incluindo código de status e cabeçalhos.

Muitos sistemas desistem da chamada após alguns segundos e tentam de novo. Se o seu fluxo é longo, responda imediatamente e processe depois. Isso evita execuções duplicadas causadas por novas tentativas da origem.

Lidando com chamadas duplicadas

Mesmo com uma resposta rápida, a origem pode reenviar o mesmo evento. Para que isso não gere pedidos ou cobranças em dobro, trate cada evento como algo que pode chegar mais de uma vez.

A técnica mais comum é guardar o identificador de cada evento processado e verificar, no início do fluxo, se ele já foi visto. Se já foi, a execução termina sem efeito. Sistemas assim são chamados de idempotentes.

Exemplo: novo pedido da loja virtual

Imagine uma loja que precisa avisar a equipe e registrar cada pedido aprovado:

  1. A plataforma da loja chama o webhook de produção com os dados do pedido.
  2. O fluxo valida o cabeçalho secreto e responde imediatamente.
  3. Um nó IF confere se o status é aprovado.
  4. O pedido é gravado em uma planilha ou banco de dados.
  5. A equipe recebe uma mensagem com o resumo do pedido.

Esse fluxo leva poucos minutos para montar e substitui a conferência manual de pedidos ao longo do dia.

Webhooks precisam de uma instância sempre no ar

Um webhook só funciona se o N8N estiver disponível no instante em que o evento acontece. Se a instância estiver fora do ar, a chamada falha e, dependendo da origem, o evento se perde.

Por isso, quem depende de webhooks precisa de uma instância estável, com HTTPS configurado e endereço fixo. Com o lui, cada cliente tem uma instância dedicada do N8N com endereço próprio e HTTPS, pronta para receber webhooks desde o primeiro dia.

Conclusão

Webhooks são a forma mais rápida e eficiente de conectar o N8N aos sistemas que você já usa. Lembre-se de usar a URL de produção, proteger o endpoint, responder rápido e tratar eventos duplicados. Com esses cuidados, suas automações reagem em segundos e com segurança.

Explorar todos os artigos