Enviar dados para outro sistema com o passo Webhook
Nível: Intermediário Tempo de leitura: 7 min Plano necessário: Pro ou Ultra
Por que existe
Nem tudo que acontece numa automação termina no WhatsApp. Às vezes o próximo passo mora em outra ferramenta: criar uma tarefa no CRM, avisar o time no Slack, registrar numa planilha, abrir um fluxo no n8n ou no Make.
O passo Webhook faz essa ponte. Quando o contato chega nele, a Wevichat envia os dados desse contato para o endereço que você escolher. O outro sistema recebe e faz o que precisar.
Um exemplo comum: o contato parou de responder há 24 horas, a automação manda os dados para o n8n e o n8n cria uma tarefa de ligação para o vendedor.
Qual é a diferença para o webhook do gatilho
Os dois usam a palavra webhook, mas andam em sentidos opostos.
| Webhook externo (gatilho) | Passo Webhook | |
|---|---|---|
| Sentido | Outro sistema chama a Wevichat | A Wevichat chama outro sistema |
| O que faz | Coloca um contato na automação | Envia os dados do contato que já está nela |
| Onde fica | No nó Gatilho | Como um passo do fluxo, depois de qualquer outro |
Para o gatilho, veja Como disparar automação via webhook externo.
O que dá para configurar
- Método: POST (o mais comum), GET, PUT ou PATCH. Se o sistema de destino não disser nada, use POST.
- URL: o endereço que vai receber os dados. Precisa começar com
https://. - Cabeçalhos: pares de nome e valor enviados junto. Servem principalmente para autenticar, por exemplo um token que o n8n exige.
- Corpo: os dados enviados. Escolha entre o padrão da Wevichat ou um JSON montado por você.
- Se falhar: o que a automação faz quando o destino não responde bem.
- Enviar teste: manda uma requisição de teste e mostra a resposta e o que foi enviado. Escolha entre dados fictícios ou um contato real da sua conta.
Corpo padrão
Com Padrão da Wevichat, o destino recebe um JSON com tudo o que a Wevichat sabe do contato no momento do envio. Exemplo com dados fictícios:
{
"event": "automation.webhook",
"sent_at": "2026-09-15T14:30:00.000Z",
"automation": { "id": "8f1c...", "name": "Follow-up 24h" },
"run": { "id": "3b7a...", "trigger": "silence", "started_at": "2026-09-15T14:29:58.000Z" },
"contact": {
"id": "c41d...",
"name": "Maria Souza",
"phone": "5511999990000",
"email": "maria.souza@exemplo.com",
"notes": "Prefere contato à tarde",
"custom_fields": { "cidade": "Campinas", "plano": "Pro" },
"tags": ["cliente", "indicação"],
"pipelines": [
{ "pipeline": "Funil de vendas", "stage": "Negociação", "lost": false }
],
"assigned_user": { "name": "João Lima", "email": "joao.lima@exemplo.com" },
"first_referral": null
},
"conversation": {
"id": "9e2f...",
"status": "open",
"agent": { "name": "Atendimento" },
"assigned_user": null,
"last_message": { "role": "assistant", "content": "Posso te ajudar com mais alguma coisa?" }
},
"whatsapp_number": { "name": "Comercial", "phone_number": "+55 11 90000-0000" }
}
O exemplo acima foi resumido. O envio real traz também identificadores, datas (entrada na etapa, última mensagem, criação do contato) e a origem de anúncio, quando existir.
custom_fieldstraz os campos personalizados preenchidos no contato.pipelineslista cada funil em que o contato está, com a etapa atual. Veja Funis e etapas de contato.triggerdiz por qual gatilho o contato entrou.
Corpo personalizado
Com Personalizado, você escreve o JSON no formato que o outro sistema espera e usa variáveis para encaixar os dados:
{
"nome": "{{contact.name}}",
"telefone": "{{contact.phone}}",
"etapa": "{{contact.stage}}",
"id_do_negocio": "{{contact.id_deal}}",
"tags": "{{contact.tags}}"
}
Variáveis mais usadas:
| Variável | O que vira |
|---|---|
{{contact.name}}, {{contact.phone}}, {{contact.email}} |
Nome, telefone e email do contato |
{{contact.<campo>}} |
Qualquer campo personalizado, pela chave (ex: {{contact.cidade}}) |
{{contact.stage}}, {{contact.pipeline}} |
Etapa e funil atuais (o primeiro funil em que o contato está) |
{{contact.tags}} |
Etiquetas do contato |
{{contact.assigned_user.name}} |
Responsável pelo contato |
{{conversation.id}}, {{conversation.agent.name}} |
Conversa mais recente e o agente dela |
{{conversation.last_message.content}} |
Texto da última mensagem da conversa |
{{automation.name}}, {{trigger}} |
Nome da automação e gatilho que colocou o contato no fluxo |
{{whatsapp_number.phone_number}} |
Número de WhatsApp da automação |
{{now}} |
Data e hora do envio |
Qualquer campo do corpo padrão pode virar variável seguindo o mesmo caminho. Por exemplo, {{conversation.status}}.
Quando a variável ocupa o valor inteiro, entre aspas e sem mais nada, ela entra com o formato original. "{{contact.tags}}" chega como lista e "{{contact}}" chega como o objeto completo do contato. Misturada com texto, como "Olá {{contact.name}}", ela vira texto.
As variáveis também funcionam na URL e nos valores dos cabeçalhos. No método GET não há corpo, então use variáveis na URL se precisar mandar dados.
Passo a passo
- Abra a automação. Vá em Automações e entre no fluxo. Se ele estiver ativo, clique em Pausar antes de editar.
- Clique no + do passo anterior. Pode ser o Gatilho ou qualquer outro passo. O painel Adicionar próximo passo abre na direita.
- Escolha Webhook. O passo já nasce conectado e o painel de configuração abre em seguida.
- Cole a URL. No n8n, ela aparece no bloco Webhook do seu fluxo. No Make, no módulo Custom webhook.
- Adicione os cabeçalhos, se o destino pedir. Por exemplo, nome
Authorizatione valorBearer seu-token. - Escolha o corpo. Deixe o padrão ou monte o seu em Personalizado. Se o JSON tiver erro, o painel avisa na hora.
- Defina o que fazer se falhar. Veja a seção abaixo.
- Clique em Enviar teste. Em Enviar teste com, escolha Dados fictícios ou Um contato real e busque o contato por nome ou telefone. Confira se a resposta veio na faixa 200 e abra Ver o que foi enviado para checar os dados. O teste com contato real não coloca ninguém na automação e não manda nada no WhatsApp.
- Salve e ative. Clique em Salvar e depois em Ativar.
Uma automação pode ter só o passo Webhook, sem nenhuma mensagem. O caso "parou de responder, avisa o n8n" funciona assim.
Quando o destino falha
A Wevichat considera sucesso qualquer resposta na faixa 200 (200, 201, 204...). Resposta de erro, redirecionamento ou falta de resposta em 10 segundos contam como falha.
Antes de desistir, são 3 tentativas: na hora, depois de 1 minuto e depois de 5 minutos. Se as três falharem, vale o que você escolheu em Se falhar:
- Seguir para o próximo passo: a automação continua normalmente. Bom quando o webhook é um registro complementar e o contato ainda deve receber as próximas mensagens.
- Parar a automação deste contato: a execução termina como falha e aparece com o motivo
webhook_failedno monitor da automação. Bom quando os passos seguintes dependem do que o outro sistema faz.
Se o contato responder enquanto a automação espera uma nova tentativa, as saídas globais continuam valendo e ele sai do fluxo.
Dicas para um bom resultado
- Use a URL de teste do n8n só no Enviar teste. O n8n tem uma URL de teste, que só funciona com o fluxo aberto em modo de escuta, e uma de produção. Depois de mapear os campos, troque para a de produção antes de ativar a automação.
- Proteja o endereço com um cabeçalho. Qualquer pessoa que descobrir a URL consegue chamá-la. Configure autenticação por cabeçalho no n8n ou no Make e repita o mesmo nome e valor aqui.
- Coloque variáveis entre aspas no JSON. Escreva
"{{contact.name}}", com aspas. Os valores chegam como texto, inclusive números. - Responda rápido do outro lado. Se o seu fluxo no n8n demora, responda ao webhook logo no início e faça o trabalho pesado depois. Passou de 10 segundos, conta como falha.
- Cabeçalhos ficam visíveis para quem edita automações. Use um token criado só para isso, que você possa trocar se alguém sair da equipe.
- Endereços internos são bloqueados. Por segurança, a Wevichat recusa
http://,localhoste endereços de rede privada. O destino precisa estar acessível pela internet comhttps://.
E depois?
- Conectar a Wevichat ao n8n, para fazer o caminho contrário e agir na Wevichat a partir do n8n.
- Follow-up automático de quem parou de responder, o gatilho que mais combina com este passo.
- Como criar sua primeira automação passo a passo. A seção "Mexer no fluxo depois de montado" mostra como colocar um Se antes do webhook para pular o envio em alguns casos.
- Como acompanhar e monitorar suas automações
- Como configurar webhooks personalizados, para o agente chamar o seu sistema durante a conversa usando as mesmas variáveis.
- Agente de Fluxo avançado, onde o nó Webhook espera a resposta e usa o que voltou nos próximos passos.