received do Wabox, e POST como ação, chamando o send-text. No meio, um Filter para responder só a mensagens de texto de outras pessoas.
Base das rotas:
https://api.wabox.me/instances/{instance_id}/token/{token} — instance_id e token ficam no dashboard (instância › Credenciais). Envie o header Client-Token só se ele estiver ativado no workspace (Client-Token). O Webhooks by Zapier é um app premium em alguns planos do Zapier.Gatilho: receber mensagens
1
Crie o gatilho Catch Hook
Novo Zap → app Webhooks by Zapier → evento Catch Hook. Deixe o campo de chave filha (child key) vazio para receber o payload inteiro. Copie a URL gerada.O Zapier responde
200 ao Wabox assim que recebe a requisição, dentro do limite de 10 s.2
Configure a URL no Wabox
No dashboard, cole a URL no webhook de mensagens recebidas da instância, ou:
3
Teste o gatilho com uma mensagem de texto
Clique em testar o gatilho e envie uma mensagem de texto para o número conectado. O Zapier carrega a requisição como amostra e passa a oferecer os campos no mapeamento.O Zapier achata objetos aninhados usando
__ no nome: o texto da mensagem, que no payload é text.message, costuma aparecer como text__message. Os campos que você vai usar (payload completo em Webhook received):4
Adicione um Filter
Adicione um passo Filter by Zapier que só continua quando:
typeé exatamentereceivedfrom_meé falsotext__messageexiste
from_me, um Zap com notify_sent_by_me ligado responde às próprias respostas em loop.Ação: responder pelo WhatsApp
1
Adicione a ação POST
App Webhooks by Zapier → evento POST:
- URL:
https://api.wabox.me/instances/{instance_id}/token/{token}/send-text - Payload Type:
json - Data: duas chaves, mapeando os campos do gatilho:
phone→phonemessage→ texto da resposta, por exemploRecebemos:+text__message
- Wrap Request In Array: não
- Unflatten: sim (padrão) — assim uma chave como
a__bvira{ "a": { "b": … } }, o que não afetaphoneemessage - Headers:
Client-Tokense ele estiver ativado no workspace
reply_to_message_id mapeada para message_id.2
Use a resposta nos próximos passos
A API responde na hora:
id é um alias de message_id: existe justamente para facilitar o mapeamento em ferramentas que tratam id como campo padrão. Guarde-o se quiser cruzar com o webhook delivery, que traz o mesmo message_id com o resultado do envio. status: "queued" significa enfileirado, não entregue.Outras rotas
Troque a URL e as chaves de Data para enviar outros tipos — todos com o mesmo padrãophone + conteúdo, corpos completos na API Reference:
POST .../send-image—phone,image(URL),captionPOST .../send-document—phone,document,file_namePOST .../send-audio—phone,audio
Reentregas
Se o Zap estiver desligado ou o Zapier responder erro, o Wabox reenvia a entrega em 10 s, 1 min, 10 min, 1 h e 6 h com o mesmoevent_id. Se responder duas vezes ao cliente for um problema para você, use um passo de armazenamento (Storage by Zapier ou Zapier Tables) para registrar os event_id já processados e um Filter para descartar repetidos.
Verificar a assinatura
Cada entrega trazX-Wabox-Signature: t=<unix>,v1=<hex>, com v1 = HMAC-SHA256 do corpo cru (Assinatura de webhooks). O Catch Hook comum entrega o corpo já interpretado, então não serve para recalcular o HMAC. O Webhooks by Zapier tem uma variante que expõe o corpo bruto (Catch Raw Hook); com ela é possível verificar a assinatura em um passo Code by Zapier, desde que o header e o corpo cru estejam disponíveis para o código. Se a verificação for obrigatória para você, a opção mais simples é receber o webhook em um backend seu e encaminhar para o Zapier só depois de validar — veja Integração HTTP genérica.