Central de Ajuda › Enviar dados para outro sistema com o passo Webhook

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.

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

  1. Abra a automação. Vá em Automações e entre no fluxo. Se ele estiver ativo, clique em Pausar antes de editar.
  2. Clique no + do passo anterior. Pode ser o Gatilho ou qualquer outro passo. O painel Adicionar próximo passo abre na direita.
  3. Escolha Webhook. O passo já nasce conectado e o painel de configuração abre em seguida.
  4. Cole a URL. No n8n, ela aparece no bloco Webhook do seu fluxo. No Make, no módulo Custom webhook.
  5. Adicione os cabeçalhos, se o destino pedir. Por exemplo, nome Authorization e valor Bearer seu-token.
  6. Escolha o corpo. Deixe o padrão ou monte o seu em Personalizado. Se o JSON tiver erro, o painel avisa na hora.
  7. Defina o que fazer se falhar. Veja a seção abaixo.
  8. 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.
  9. 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_failed no 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://, localhost e endereços de rede privada. O destino precisa estar acessível pela internet com https://.

E depois?