Bot do Afiliado

Webhooks de saída: receba os eventos do Bot no Make, n8n, Zapier ou no seu servidor

Como cadastrar uma URL HTTPS e receber um POST assinado quando um lead entra ou sai, um convite quebra, um número cai, uma campanha fica sem grupo aberto ou um envio falha.

Nesta página

Um webhook de saída é uma URL sua que o Bot chama, com um POST em JSON, toda vez que acontece algo que você assinou. Serve para automações no Make, n8n e Zapier, ou para o seu próprio servidor.

Cadastrar

Em Configurações → Webhooks, informe a URL e marque os eventos. Só https://, sem usuário e senha na URL e sem endereço IP. Cada organização pode ter até 5 webhooks; só dono e administrador criam, editam, testam e apagam.

Na criação o Bot mostra o secret uma única vez. Guarde-o: é com ele que você confere a assinatura. Se perder, use Rotacionar secret.

Eventos

Evento Quando dispara
lead.entrou alguém entrou num grupo acompanhado (Telegram ou WhatsApp)
lead.saiu alguém saiu ou foi removido
grupo.convite_invalido o link de convite do grupo parou de funcionar
grupo.suspenso o WhatsApp suspendeu o grupo
grupo.recuperado o grupo voltou a operar
numero.caiu um número do WhatsApp desconectou
numero.voltou o número reconectou
campanha.sem_grupo_aberto a campanha não tem grupo com vaga para receber quem clicou
envio.falhou um envio da fila do WhatsApp esgotou as tentativas

Assinar * recebe todos, inclusive os que forem criados depois. O botão Testar manda um webhook.teste só para aquele webhook.

O que chega

POST https://sua-url
content-type: application/json
x-bot-event: lead.entrou
x-bot-delivery: whd_9f3c…
x-bot-timestamp: 1789900000
x-bot-signature: sha256=…

{"id":"whd_9f3c…","evento":"lead.entrou","workspace_id":"7","ocorrido_em":"2026-09-16T12:00:00.000Z","dados":{"grupo_id":"…","campanha_id":"…"}}

Responda 2xx em até 10 segundos e processe depois. Redirecionamentos não são seguidos: cadastre a URL final. A mesma entrega pode chegar mais de uma vez se a sua resposta se perder na rede; use o x-bot-delivery para não processar em dobro. Entradas e saídas trazem apenas identificadores internos, nunca telefone.

Conferir a assinatura

x-bot-signature é sha256= seguido do HMAC-SHA256, em hexadecimal, do texto timestamp + "." + corpo cru, usando o secret do webhook. O timestamp é o do cabeçalho x-bot-timestamp e muda a cada tentativa.

import crypto from 'node:crypto';
const ts = req.get('x-bot-timestamp');
const esperado = 'sha256=' + crypto.createHmac('sha256', SECRET).update(`${ts}.${corpoCru}`).digest('hex');
const ok = crypto.timingSafeEqual(Buffer.from(esperado), Buffer.from(req.get('x-bot-signature') ?? ''));

No Make, n8n e Zapier o módulo “Webhook” recebe o corpo direto; a assinatura é opcional lá.

Reentregas e pausa

Resposta O que o Bot faz
2xx entrega concluída
410 Gone desativa o webhook na hora
outro status, redirecionamento, timeout ou erro de rede tenta de novo em 1 min, 5 min, 30 min e 2 h; a quinta tentativa é a última
20 falhas seguidas pausa o webhook e avisa o dono uma vez

Religar o webhook no painel zera a contagem. O histórico das últimas entregas, com status e payload, fica na própria tela.

Perguntas frequentes

Preciso de qual plano para usar webhooks?

Do módulo Conexão IA e API, o mesmo que libera as chaves de API e o MCP.

O Bot reenvia se o meu servidor estiver fora do ar?

Sim. Reenvia em 1 min, 5 min, 30 min e 2 h; na quinta tentativa desiste daquela entrega. Vinte falhas seguidas pausam o webhook e avisam o dono.

Como sei que o POST veio mesmo do Bot?

Pelo cabeçalho x-bot-signature, um HMAC-SHA256 do timestamp e do corpo com o secret que só aparece na criação.

Pronto para automatizar suas comissões?

Crie seu bot, conecte suas integrações e comece a converter links em segundos.