Skip to content

Do formulário do site para o WhatsApp sem ninguém digitar: o gatilho de webhook

Todos os outros gatilhos de um fluxo esperam o cliente escrever. O Webhook é o contrário: um sistema de fora (o formulário do site, o CRM, o ERP, uma planilha automatizada) avisa o Columba de que algo aconteceu, e o Columba inicia a conversa no WhatsApp com a pessoa certa, já sabendo o que ela pediu.

O caso mais comum é o lead do site. Hoje, o formulário manda um e-mail, alguém lê quando lê, copia o telefone, abre o WhatsApp e escreve "oi, vi que você se interessou". Com o webhook, isso acontece no segundo seguinte ao envio, e a IA ou uma sequência de mensagens faz o primeiro contato.

Como funciona

  1. Você cria um fluxo com o gatilho Webhook. Ao salvar, o Columba gera a URL e o token do fluxo.
  2. O sistema de origem faz um POST nessa URL com os dados em JSON e o token no cabeçalho X-Webhook-Token (ou em ?token=).
  3. O Columba localiza o contato pelo telefone ou cria um novo, abre a conversa no número de WhatsApp escolhido e inicia o fluxo.
  4. Tudo o que veio no JSON fica disponível no fluxo como {{webhook.campo}}, inclusive campos aninhados ({{webhook.lead.origem}}).

Gatilho Webhook no editor: URL, token e o painel de configuração

A configuração

CampoO que é
URL e TokenGerados ao salvar. O botão de atualizar gera um token novo e invalida o antigo
CanalWhatsApp: abre a conversa e o fluxo fala com o contato. Sem canal: o fluxo roda só ações internas (tags, ficha do contato, funil, chamados, chamada HTTP, avisos à equipe), sem abrir conversa
Número de WhatsAppPor qual número a conversa nasce. Sem escolha, o primeiro número público conectado
Telefone, Nome, E-mailO caminho de cada dado dentro do JSON, com ponto para níveis (lead.telefone)
DDI padrãoAplicado quando o telefone vem sem código do país (55). Telefone com + é respeitado
Tags no contatoAplicadas ao contato criado ou encontrado
Se este contato já estiver em um fluxoReiniciar (padrão) interrompe o fluxo atual daquela conversa e começa este. Ignorar mantém o que estava rodando e só registra o evento

Só o telefone é obrigatório. O resto você mapeia com um clique depois do primeiro evento de teste.

O evento de teste

A parte que mais economiza tempo: com o painel do gatilho aberto, o Columba fica ouvindo. Mande um POST de teste (o exemplo em curl está no próprio painel, pronto para copiar) e o último payload aparece com todos os campos. Cada campo tem um botão para marcá-lo como Telefone, Nome ou E-mail. Você não precisa saber de antemão como o seu formulário nomeia as coisas.

Painel do webhook depois de um evento de teste: o payload recebido, com os campos prontos para mapear

Um fluxo em rascunho só registra o evento; para executar de verdade, publique.

Um fluxo de primeiro contato

O fluxo da imagem faz o básico bem feito:

  1. Gatilho Webhook, com telefone em lead.telefone, nome em lead.nome, tag Lead.
  2. Enviar Texto: "Olá, {{contact.name}}! Vi que você pediu um orçamento pelo nosso site ({{webhook.lead.origem}}). Posso te ajudar por aqui mesmo?"
  3. Aguardar Resposta com timeout de 4 horas.
  4. Se respondeu, Resposta IA qualifica, com a mensagem original do formulário no prompt ({{webhook.lead.mensagem}}) para não perguntar de novo o que o lead já disse.
  5. Se não respondeu, Notificar Equipe: "Lead do site sem resposta há 4 h", para um humano decidir se liga.

O que o lead escreveu no formulário é a diferença entre "oi, vi que você se interessou" e "oi, vi que você quer 40 cadeiras para o auditório". Use os campos do payload no prompt da IA e nas mensagens.

As travas de segurança

Iniciar conversa é o tipo de automação que pode virar spam se não tiver freio. Por isso:

  • Conversa em atendimento humano nunca é interrompida. Se o contato está falando com alguém da equipe, o evento fica registrado e o fluxo não roda.
  • Limite de 60 eventos por minuto por fluxo.
  • Contato bloqueado ou descadastrado não recebe nada.
  • A resposta do webhook diz se o fluxo iniciou e, se não, o motivo. O sistema de origem pode registrar isso.
  • Contatos diferentes rodam em paralelo, cada um na sua conversa. A regra "se já estiver em um fluxo" vale só para o mesmo contato.

E a trava que não é técnica: o webhook só cabe para quem pediu contato. Formulário preenchido, pedido feito, boleto que a própria pessoa gerou. Lista comprada não é evento. O WhatsApp bane número que inicia conversa com quem não pediu, e a política de campanhas vale aqui também.

QR Code ou API oficial?

Num número conectado por QR Code, o fluxo manda texto livre para qualquer contato, então o primeiro contato sai como está escrito no nó. Num número pela API oficial da Meta, iniciar uma conversa fora da janela de 24 horas exige um modelo aprovado, e o nó Enviar Texto não é um modelo. Para o gatilho de webhook, prefira um número por QR Code, ou combine os dois como descrito em API oficial ou QR Code.

Três usos além do formulário

  • Lead novo no CRM (ou numa planilha com automação): o CRM chama o webhook e a IA faz a primeira abordagem antes de o vendedor ver o lead. O vendedor entra pela transferência quando o lead está qualificado.
  • Pedido aprovado no ERP: "seu pedido 4821 foi aprovado, previsão de entrega dia 30". Canal WhatsApp, sem IA, uma mensagem e encerra.
  • Boleto vencido: modo Sem canal. O fluxo aplica a tag Inadimplente, atualiza a ficha e avisa o financeiro pelo sino, sem mandar nada ao cliente. A cobrança continua sendo decisão humana.

Qualquer ferramenta que faça um POST com JSON serve de origem: o próprio backend do site, um plugin de formulário, ou automações como Zapier, Make e n8n no meio.

Depois que estiver no ar

Duas medidas dizem se o webhook está valendo a pena: o tempo até a primeira resposta humana e a taxa de resposta ao primeiro contato, nos relatórios do funil. Se o lead responde e ninguém pega, o problema não está no webhook, está na fila.


O gatilho de webhook está em todos os planos do Columba. Referência em Gatilhos, ou teste por 7 dias.