ZapFlowCentral de Ajuda

Desenvolvedores

Receber e enviar webhooks

Receba dados de qualquer sistema (formulários, n8n, Make, Zapier, checkouts) com o gatilho Webhook HTTP e avise outros sistemas com o bloco Requisição HTTP.

Oficial e QR codeQuem edita automações15 min
Onde ficaAutomaçõesfluxoEditarGatilhosWebhook HTTP

Resposta rápida

Para receber dados, use o gatilho Webhook HTTP: copie a URL do Webhook, mande um POST de teste com Iniciar Teste ligado e mapeie pelo menos o Telefone. Para enviar dados a outro sistema, use o bloco Requisição HTTP (aba Ações do editor), com método, URL, cabeçalhos e corpo em JSON.

Receber: o gatilho Webhook HTTP

Qualquer sistema que consiga fazer um POST em JSON pode iniciar um fluxo: o formulário do site, uma automação no n8n, no Make ou no Zapier, uma planilha com script, um checkout. Cada chamada vira um contato (criado ou atualizado pelo telefone) entrando no fluxo.

  1. 1

    Adicione o gatilho

    No editor do fluxo (clique em Editar no topo), abra Gatilhos no rodapé e clique em Webhook HTTP.

  2. 2

    Copie a URL

    Clique no bloco e, em URL do Webhook, clique no botão de copiar. Configure o outro sistema para mandar um POST para essa URL, com o corpo em JSON.

    integ-webhook-painel12
    1. 1Copiar a URL do webhook
    2. 2Iniciar Teste
  3. 3

    Mande um envio de teste

    Clique em Iniciar Teste e dispare um envio a partir do outro sistema em até 5 minutos. Quando chega, o painel mostra Payload recebido! Monte o mapeamento abaixo.

  4. 4

    Mapeie os campos

    O destino Telefone é obrigatório: clique em Adicionar campo e escolha de onde vem o telefone. Se o número chega em partes (DDI, DDD, número), adicione as partes no mesmo destino que o ZapFlow junta. Para nome, e-mail e campos personalizados, use Adicionar mapeamento. Clique em Salvar Mapeamento.

    integ-webhook-payload12
    1. 1Payload recebido
    2. 2Adicionar mapeamento
  5. 5

    Salve e ative o fluxo

    Clique em Salvar e deixe o fluxo Ativo. Fluxo pausado recusa os envios.

Exemplo de envio

bash
curl -X POST "https://app.metodox.com.br/api/webhook/flows/SEU_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "nome": "Carolina Duarte",
    "whatsapp": "5511987650001",
    "email": "carolina.duarte@email.com",
    "origem": "formulario-aula"
  }'

A URL de verdade é a que aparece no bloco. Nesse exemplo, whatsapp vai para Telefone, nome para Nome e email para E-mail.

Usar os dados recebidos nas mensagens

Tudo o que chegou fica disponível durante o fluxo como {{webhook.caminho}}. No exemplo acima, {{webhook.origem}} vale formulario-aula. Campos dentro de outros campos usam ponto: {{webhook.buyer.name}}. Veja Variáveis.

Evitar entradas repetidas

Alguns sistemas reenviam o mesmo evento. No painel do gatilho:

  • Bloquear reentrada se contato já tem agendamentos ativos (ligado por padrão): quem ainda está esperando um passo do fluxo não entra de novo.
  • Cooldown de re-entrada: o mesmo telefone não entra de novo no fluxo durante os minutos definidos.

Qual linha manda as mensagens

O webhook não chega por uma linha de WhatsApp, então defina em Ajustes do fluxo, no topo do editor, em Enviar por: Linha ativa do contato (a última que falou com a pessoa) ou Linha fixa (sempre a mesma). Para quem nunca falou com você numa linha oficial, a primeira mensagem tem que ser um template aprovado.

Enviar: o bloco Requisição HTTP

Use para avisar um CRM externo, gravar numa planilha via n8n, consultar uma API e trazer a resposta para o fluxo.

  1. 1

    Adicione o bloco

    No rodapé do editor, abra Ações e clique em Requisição HTTP.

  2. 2

    Configure a chamada

    Escolha o Método HTTP, preencha a URL e, se precisar, Headers (JSON) e Corpo da Requisição (JSON). Nos dois, você pode usar variáveis como {{name}} e {{phone}}.

    integ-http-request-painel1
    1. 1URL de destino
  3. 3

    Teste antes de ativar

    Em Testar Requisição, escolha um Contato de teste e clique em Executar Teste. O painel mostra o status da resposta, a resposta completa e as variáveis já resolvidas.

  4. 4

    Guarde a resposta (opcional)

    Em Mapear Resposta → Campos, informe o Caminho JSON da resposta (por exemplo data.id) e o Campo Destino do contato. A resposta também fica disponível no resto do fluxo como {{httpResponse.caminho}}.

  5. 5

    Trate o erro

    O bloco tem as saídas Sucesso e Erro. Em Configurações Avançadas, defina o Timeout (segundos) e o que fazer Em caso de erro: continuar para o próximo bloco ou parar o fluxo.

Um bloco Requisição HTTP configurado, com mapeamentos e as saídas Sucesso e Erro.
Um bloco Requisição HTTP configurado, com mapeamentos e as saídas Sucesso e Erro.

Se algo der errado

SintomaCausa provávelO que fazer
O sistema externo recebe 404O fluxo está pausado, ou o bloco foi apagado e a URL mudouAtive o fluxo, ou atualize a URL no sistema externo
O sistema externo recebe 400O envio chegou sem telefone no campo mapeadoConfira o campo do telefone no envio e o mapeamento
Nenhum campo encontrado no payload.O corpo não está em JSONEnvie com Content-Type: application/json
A Requisição HTTP sempre cai em ErroURL, cabeçalho ou corpo inválidos, ou o sistema demora demaisUse Executar Teste para ver a resposta e ajuste o Timeout (segundos)

Perguntas frequentes

Preciso de token para chamar a URL do webhook?

Não. A URL do bloco já identifica o fluxo. Para proteger, não publique a URL e prefira mandar os envios a partir de servidores, não do navegador do visitante.

Qual a diferença entre o webhook e a API?

O webhook só inicia um fluxo com os dados recebidos. A API REST faz de tudo um pouco (ler contatos, mandar mensagem, mover card) e exige token.

Existe webhook de saída nas configurações?

Não há uma tela de webhooks de saída. Para avisar outro sistema quando algo acontece, monte um fluxo com o gatilho do evento (tag, etapa do Kanban, campo alterado) e um bloco Requisição HTTP.

Artigos relacionados

Outros checkouts pelo webhookPrimeiros passos com a API RESTVariáveis e campos nas mensagensTodos os blocos do fluxoCriar um token de API
Este artigo ajudou?