Enviar atualizações de encomendas do WooCommerce por WhatsApp
Crie um webhook do WooCommerce para eventos de encomendas que aponte para um recetor, como um fluxo n8n ou uma pequena rota PHP. O recetor verifica a assinatura do WooCommerce, confirma que o cliente aceitou receber mensagens de WhatsApp e envia um template aprovado através da Cloud API, com o phone number id e o token do número ligado.
O WooCommerce desativa um webhook depois de mais de cinco falhas de entrega consecutivas.
Cabeçalho com um HMAC-SHA256 do payload codificado em base64, gerado com o segredo do webhook.
Fora da janela de atendimento ao cliente, só se podem enviar mensagens de template pré-aprovadas.
Como é que uma encomenda do WooCommerce desencadeia uma mensagem de WhatsApp?
Através de um webhook do WooCommerce e de um recetor. No WooCommerce, em Definições, Avançado, Webhooks, adicione um webhook com um tópico de encomenda, como encomenda criada ou encomenda atualizada, um URL de entrega e um segredo. A partir daí, o WooCommerce envia a encomenda em JSON para esse URL sempre que o evento ocorre.
O payload é fixo, por isso não pode ser dirigido diretamente à Cloud API. Entre os dois fica um recetor: um nó Webhook do n8n, uma rota no PHP da própria loja ou qualquer serviço pequeno. Lê a encomenda, escolhe o número de telefone do cliente e os dados de que a mensagem precisa, e faz um pedido HTTPS ao endpoint de mensagens da Cloud API para o número ligado, com o token de acesso do número como token bearer.
O tópico order.updated não está associado a um único estado, pelo que o recetor deve ler o campo status da encomenda e enviar uma só vez por cada transição que lhe interessa. Por predefinição, o WooCommerce faz a entrega em segundo plano através do wp-cron, pelo que a mensagem pode chegar com um pequeno atraso em relação à encomenda.
Como sabe o recetor que o pedido veio da loja?
Pela assinatura do WooCommerce. Cada entrega traz um cabeçalho X-WC-Webhook-Signature, um HMAC-SHA256 do payload bruto codificado em base64 e calculado com o segredo que definiu no webhook. O recetor calcula o mesmo hash sobre o corpo que recebeu, compara e rejeita tudo o que não coincida.
Este é o segredo da própria loja, pelo que, ao contrário da assinatura da Meta nas mensagens de WhatsApp recebidas, pode ser validado. Compare em tempo constante e calcule o hash do corpo bruto antes de qualquer framework o processar, porque um JSON recodificado produz um hash diferente.
Responda depressa com um 2xx. O WooCommerce conta como falha qualquer resposta que não seja 2xx, 301 ou 302 e, depois de mais de cinco falhas seguidas, desativa o webhook. Um recetor parado por causa de uma atualização, ou lento por esperar pela Meta antes de responder, pode desligar as mensagens da loja sem que ninguém repare.
O que pode a loja enviar, e quando?
Um template aprovado, sempre que a loja fala primeiro. A janela de atendimento ao cliente de 24 horas da Meta só abre quando o cliente envia mensagem ao número, por isso uma confirmação de encomenda ou uma atualização de expedição é iniciada pela empresa e o texto livre é recusado. Crie um template de utilidade para cada atualização, aguarde a aprovação e envie-o pelo nome e idioma, com o número da encomenda e outros dados como parâmetros.
A Meta exige ainda opt-in: o cliente forneceu o seu número e aceitou receber mensagens desta empresa por WhatsApp. Uma caixa de seleção no checkout, guardada na encomenda, é o registo mais simples, e o recetor deve verificá-la antes de enviar.
Quando o cliente responde, a conversa passa a ser Coexistência normal. A resposta aparece na app WhatsApp Business no telemóvel da loja, a janela fica aberta para texto livre e a equipa responde a partir da app, como sempre fez.
Erros comuns
- Fazer a chamada à Cloud API antes de responder ao WooCommerce. Um envio lento ou falhado conta contra o webhook, que é desativado após mais de cinco falhas.
- Calcular o hash do JSON já processado em vez do corpo bruto. A assinatura nunca coincide e todas as entregas legítimas são rejeitadas.
- Enviar em cada entrega de order.updated. O tópico não está associado a um único estado, pelo que, sem registar qual a transição já notificada, os clientes recebem mensagens duplicadas.
Ligue o número da loja em easycoexistence.com e dê ao recetor o phone number id e o token que constam do painel. A partir de US$ 9 por número por mês, descendo até US$ 1 à medida que adiciona números, com os primeiros 3 dias gratuitos.
Perguntas frequentes
Preciso de um plugin do WordPress para isto?
Não. Bastam os webhooks nativos do WooCommerce e um recetor, que pode ser uma rota na mesma aplicação PHP.
Quem paga as mensagens das encomendas?
A Meta cobra as mensagens diretamente à empresa, na sua própria conta WhatsApp Business, e a EasyCoexistence nunca aplica qualquer margem.
A equipa pode continuar a usar o telemóvel?
Sim. A Coexistência mantém a app WhatsApp Business a funcionar no número da loja, e o template enviado pela loja aparece na conversa.
E se um webhook tiver sido desativado?
Corrija o recetor e volte a definir o estado do webhook como ativo no WooCommerce. As encomendas criadas enquanto esteve desativado não desencadearam mensagem.
Continue a ler
Pronto para começar?
Configure a Coexistência do WhatsApp em minutos, não em meses. A aplicação continua a funcionar no telemóvel.
Começar período experimental gratuitoVerificado em