Notificações transacionais no WhatsApp: pedido, boleto e entrega
E-mail de confirmação de pedido tem taxa de abertura baixa e cai em promoções. SMS custa por unidade e não aceita link sem parecer golpe. O WhatsApp resolve os dois problemas: o cliente abre, responde e o histórico fica no aparelho dele.
A questão nunca foi se vale a pena, e sim quais avisos mandar, em que momento e como não virar chateação. Este guia trata da mensagem transacional — a que decorre de algo que o cliente fez — e da estrutura para entregá-la de forma confiável com a API do Zapixo.
Transacional não é marketing
A distinção parece óbvia e é a origem de quase todo problema:
Transacional é consequência de uma ação do cliente. Ele comprou, então recebe a confirmação. Ele gerou um boleto, então recebe o lembrete. A mensagem é esperada, útil e raramente gera denúncia.
Marketing é iniciativa sua. Promoção, lançamento, "sentimos sua falta". A mensagem não foi pedida, e a tolerância do destinatário é muito menor.
Misturar os dois na mesma automação é o erro que custa o número. Um cupom colado no fim da confirmação de entrega transforma um aviso legítimo em propaganda — e o cliente que marcaria "ok" marca "bloquear". Se a base legal do envio é execução de contrato, ela cobre o aviso da entrega, não a oferta pendurada nele; o assunto está detalhado no guia sobre LGPD em automação de WhatsApp.
Os avisos que valem a pena
Ordem de retorno, do maior para o menor, para uma operação de e-commerce típica:
1. Confirmação de pedido
Enviada segundos depois da compra. Reduz a ansiedade de "será que passou?" e corta a maior parte dos contatos de "meu pedido entrou?".
Pedido #4821 confirmado! 🎉 Recebemos seu pagamento e já estamos separando tudo. Previsão de envio: até quarta-feira. Acompanhe em: loja.com.br/pedido/4821
2. Aviso de boleto ou Pix a vencer
O maior impacto direto em dinheiro. Um lembrete no dia anterior recupera uma fatia relevante de pagamentos que virariam inadimplência por esquecimento.
Dispare um dia antes e, se ainda não foi pago, no dia do vencimento pela manhã. Dois avisos. Um terceiro depois do vencimento é cobrança, e cobrança tem regra própria — inclusive de horário e tom.
3. Código de rastreio
O aviso mais aguardado. Mande assim que o rastreio existir, não quando o pedido é despachado — sem o código, a mensagem só gera pergunta.
4. Saiu para entrega
Alto valor para produto que exige alguém em casa. Baixo valor para o resto: pense se o seu produto justifica mais uma notificação.
5. Pedido entregue + pesquisa
Junte os dois. "Chegou tudo certo?" é confirmação de entrega e abertura de canal de suporte na mesma mensagem, e a taxa de resposta é bem maior que a de um formulário por e-mail.
O que não mandar
- Mudança de status interno que não significa nada para o cliente ("em separação", "conferido", "faturado").
- Mais de um aviso por etapa.
- Qualquer coisa entre 21h e 8h. Notificação de madrugada gera bloqueio, não engajamento.
Como escrever a mensagem
Quatro regras que aumentam a leitura e reduzem a irritação:
Identifique-se na primeira linha. O cliente não tem seu número salvo. "Pedido #4821 confirmado — Loja X" é melhor que "Olá! Tudo bem?".
Uma informação por mensagem. Se você precisa dizer três coisas, provavelmente são três momentos diferentes.
Dado concreto, não texto genérico. Número do pedido, data, valor, código. Mensagem vaga gera pergunta, e pergunta gera trabalho para o seu atendimento.
Formatação nativa, com moderação. O WhatsApp usa *negrito*, _itálico_ e ~riscado~. Um negrito no número do pedido ajuda; cinco negritos viram poluição.
E deixe claro como sair. Mesmo em transacional, uma linha discreta — "Para não receber estes avisos, responda SAIR" — resolve o pedido de opt-out sem passar pelo seu suporte.
A estrutura técnica
O erro clássico é disparar a mensagem de dentro do mesmo bloco que processa o pagamento. Se a API demora, o checkout demora. Se a mensagem falha, você perde a venda ou o cliente vê um erro que não existe.
O desenho correto separa as duas coisas:
evento de negócio → fila → worker → API do WhatsApp
(pedido pago) (banco) (envia) (entrega)
O evento vira uma linha na fila
async function aoConfirmarPagamento(pedido) {
await enfileirarMensagem({
chaveUnica: `pedido-${pedido.id}-confirmado`,
instancia: "loja-principal",
numero: pedido.telefone,
texto: montarConfirmacao(pedido),
});
// o checkout segue sem esperar o WhatsApp
}
A chaveUnica é o que impede o cliente de receber a mesma confirmação duas vezes quando o gateway de pagamento reenvia o webhook — e ele reenvia. Com índice único no banco, a segunda inserção é rejeitada em silêncio. Mensagem transacional duplicada gera desconfiança: o cliente acha que foi cobrado de novo.
O worker envia
const res = await fetch("https://zapixo.com.br/api/v1/messages/text", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ZAPIXO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
instance: item.instancia,
number: item.numero,
text: item.texto,
}),
});
const dados = await res.json();
if (res.ok) {
await marcarEnviado(item.id, dados.messageId);
} else {
await tratarFalha(item, res.status, dados);
}
Guarde o messageId junto do pedido. Quando o cliente disser "não me avisaram", você tem a resposta em uma consulta.
A política de retentativa, os códigos que não devem ser retentados e o controle de ritmo estão em rate limit e fila. E vale lembrar: se a instância cair, a fila segura tudo até voltar — o procedimento está em instância desconectou.
Trate a resposta do cliente
Este é o passo que quase todo mundo esquece, e é o que separa notificação de conversa.
O cliente vai responder. "Chegou?", "posso trocar?", "não reconheço essa compra". Se ninguém lê, você criou um canal que ignora as pessoas — pior do que não ter criado.
O mínimo aceitável: configure o webhook de recebimento e encaminhe as respostas para onde o seu time já trabalha. Uma resposta automática do tipo "recebemos, respondemos em até X horas" é aceitável como primeiro contato, nunca como única resposta.
Duas respostas merecem tratamento automático imediato:
- Pedido de descadastro — processe na hora, sem intervenção humana.
- "Não fui eu" / "não reconheço" — sinal de fraude ou erro de cadastro. Marque e escale.
Se o volume de respostas justificar, um bot com IA resolve as perguntas repetidas e passa o resto para o humano.
O número que importa
Antes de expandir a automação, meça três coisas por tipo de aviso:
- Taxa de entrega — quantas saíram de fato, sobre o total enfileirado.
- Taxa de resposta — quantos clientes responderam. Alta demais pode significar mensagem confusa.
- Taxa de descadastro — o indicador mais honesto. Se subir depois de um aviso novo, aquele aviso não era desejado.
Descadastro crescendo é o aviso antecipado de um problema maior: o próximo passo dessa curva é denúncia, e denúncia leva ao bloqueio do número. As práticas para não chegar lá estão em como evitar banimento.
Comece pequeno
A tentação é automatizar os cinco avisos na primeira semana. O caminho que dá certo é outro:
- Semana 1: só confirmação de pedido. Meça.
- Semana 2: adicione o aviso de vencimento. Compare a inadimplência.
- Semana 3: rastreio.
- Depois: o resto, um de cada vez.
Cada aviso novo é uma hipótese sobre o que o cliente quer receber. Testar um por vez é a única forma de saber qual funcionou — e qual está gerando descadastro.
Resumo
Notificação transacional no WhatsApp funciona porque é esperada. Ela deixa de funcionar no momento em que vira propaganda, chega em duplicata ou não tem ninguém do outro lado quando o cliente responde.
A estrutura mínima é sempre a mesma: evento de negócio grava na fila com chave única, worker envia e registra o messageId, webhook devolve as respostas para o time. O resto é escrever bem e não exagerar na frequência. A referência dos endpoints está na documentação.