Configurando webhooks no GoHighLevel: guia para quem nunca usou

Intermediário6 min de leituraAtualizado em 04/08/2026

Webhooks são uma das formas mais poderosas de conectar o GoHighLevel a sistemas externos sem depender de verificações periódicas ou integrações pré-construídas. Se você já ouviu o termo mas nunca soube exatamente como funciona na prática, este guia cobre o essencial: o que é um webhook, onde configurá-lo na plataforma e como evitar os erros mais comuns.

O que é um webhook e por que ele importa

Um webhook é, em termos simples, uma notificação automática que um sistema envia para outro quando um evento específico acontece. Em vez de o seu sistema ficar perguntando "aconteceu alguma coisa?", o GoHighLevel avisa proativamente: "aconteceu isso agora, aqui estão os dados".

Isso é útil em cenários como:

  • Enviar dados de um lead novo para uma planilha, CRM externo ou sistema de cobrança;
  • Acionar uma automação em ferramentas como Make (Integromat), Zapier ou n8n;
  • Registrar eventos de pipeline em um banco de dados próprio;
  • Notificar um sistema de atendimento quando um contato responde a uma mensagem.

Se a sua necessidade é apenas conectar o GoHighLevel ao Zapier para um fluxo simples, considere usar a integração nativa antes de configurar webhooks manualmente — ela costuma ser mais rápida de implementar. Webhooks manuais fazem mais sentido quando você precisa de controle granular sobre os dados ou está integrando com sistemas próprios.

Onde os webhooks ficam no GoHighLevel

O GoHighLevel oferece webhooks em dois contextos principais, e é importante não confundi-los:

1. Webhooks dentro de Workflows (Automações) Essa é a opção mais comum para a maioria dos usuários. Dentro de um workflow, você pode adicionar uma ação do tipo Webhook para disparar uma requisição HTTP sempre que aquele ponto do fluxo for atingido.

2. Webhooks de nível de conta (configurações globais) Alguns planos permitem configurar webhooks globais que disparam para eventos da conta como um todo, independentemente de workflows. A disponibilidade dessa funcionalidade pode variar conforme o plano contratado — consulte a documentação oficial da HighLevel para verificar o que está incluso no seu nível de acesso.

Passo a passo: configurando um webhook em um Workflow

Este é o caminho mais direto para quem está começando.

  1. Acesse o painel da sua sub-conta e clique em Automation no menu lateral.
  2. Abra um workflow existente ou crie um novo clicando em Create Workflow.
  3. Defina o gatilho (Trigger) que vai iniciar o fluxo — por exemplo, Contact Created ou Form Submitted.
  4. Clique no botão + para adicionar uma nova ação após o gatilho.
  5. Na lista de ações, procure e selecione Webhook.
  6. No campo Webhook URL, cole a URL do endpoint que vai receber os dados. Essa URL é fornecida pela ferramenta de destino (Make, n8n, seu servidor, etc.).
  7. Escolha o Method da requisição. Para a maioria dos casos de envio de dados, use POST.
  8. Em Headers, adicione os cabeçalhos necessários. Se o sistema de destino exigir autenticação por token, é aqui que você inclui, por exemplo, Authorization: Bearer seu_token.
  9. No campo Body, defina o payload. Você pode usar variáveis dinâmicas da plataforma (como {{contact.email}} ou {{contact.full_name}}) para enviar dados do contato que acionou o fluxo.
  10. Clique em Save Action e, em seguida, salve o workflow.
  11. Use a opção de teste do workflow (Test Workflow) para disparar o gatilho com um contato real ou de teste e verificar se o webhook chegou corretamente ao destino.

Dica sobre o formato do Body

O GoHighLevel envia o corpo da requisição como JSON por padrão quando você usa o formato estruturado. Se o sistema de destino espera application/x-www-form-urlencoded, ajuste o header Content-Type manualmente. Sempre verifique o que o sistema receptor espera antes de montar o payload.

Testando e validando a integração

Antes de ativar o workflow em produção, valide se os dados estão chegando corretamente. Ferramentas como Webhook.site ou RequestBin permitem criar uma URL temporária que captura e exibe qualquer requisição recebida — sem precisar configurar nenhum servidor. É a forma mais rápida de verificar se o payload está saindo do GoHighLevel no formato esperado.

Passos recomendados para validação:

  1. Crie uma URL de teste no Webhook.site.
  2. Cole essa URL no campo Webhook URL da ação.
  3. Dispare o workflow manualmente com um contato de teste.
  4. Acesse o Webhook.site e verifique o corpo, os headers e o status da requisição recebida.
  5. Ajuste o payload ou os headers conforme necessário antes de trocar para a URL definitiva.

Erros comuns e como resolver

O webhook não está disparando Verifique se o workflow está publicado (Published) e não apenas salvo como rascunho. Workflows em modo rascunho não executam ações em contatos reais.

Recebo erro 401 ou 403 no destino Esses códigos indicam falha de autenticação. Revise os headers de autorização — um token expirado, ausente ou mal formatado é a causa mais comum.

Recebo erro 400 (Bad Request) O sistema de destino rejeitou o payload. Isso geralmente acontece quando o formato do corpo está incorreto (ex.: enviando JSON sem o header Content-Type: application/json) ou quando um campo obrigatório está faltando ou com nome errado.

As variáveis dinâmicas chegam vazias Se campos como {{contact.phone}} chegam em branco, o dado provavelmente não existe no contato que acionou o fluxo. Confirme se o formulário ou a fonte de entrada coleta aquele campo antes de assumir que é um bug da plataforma.

O webhook dispara, mas os dados estão desatualizados Lembre-se de que o webhook captura os dados no momento exato em que aquela ação é executada no workflow. Se você precisa dos dados mais recentes de um contato, adicione uma ação de Update Contact antes do webhook para garantir que os valores estejam sincronizados.

Timeout na requisição O GoHighLevel espera uma resposta do servidor de destino dentro de um tempo limitado. Se o seu servidor demorar muito para responder, a requisição pode ser marcada como falha. Certifique-se de que o endpoint responde rapidamente com um status 200, mesmo que o processamento real aconteça de forma assíncrona depois.

Limitações que vale conhecer

Webhooks no GoHighLevel não têm, nativamente, um sistema robusto de reenvio automático em caso de falha — o comportamento pode variar conforme atualizações da plataforma. Se a confiabilidade na entrega for crítica para o seu caso de uso, considere usar uma camada intermediária (como o Make ou n8n) que ofereça filas e retentativas configuráveis. Para integrações financeiras ou de missão crítica, essa camada extra de resiliência costuma valer o esforço adicional de configuração.

Ainda com dúvida?

Se este passo a passo não resolveu o seu caso, descreva o cenário exato. Cada dúvida recebida vira um novo tutorial nesta central.

Enviar minha dúvida