E-commerce brasileiro abandona ~70% dos carrinhos. Email de recuperação resgata em média 5%. WhatsApp resgata 12 a 18% — porque chega em segundos, é lido em ~95% dos casos e fecha a fricção do checkout em vez de esperar o cliente "voltar amanhã".
Este guia mostra a arquitetura completa: trigger no checkout, fila com 3 toques temporais, templates A/B testados e métricas para medir o que importa.
A receita: 3 toques, decaimento exponencial
| Momento | Tom | Taxa típica de recuperação |
|---|---|---|
| 30 minutos após abandono | Lembrança gentil + ajuda | ~7% |
| 2 horas depois | Senso de urgência leve (estoque) | ~4% |
| 24 horas depois | Incentivo (cupom 5–10%) | ~3% |
| Total composto | ~13% |
Importante: parar no terceiro toque. Quarto toque tem retorno marginal e multiplica taxa de denúncia em 4x — caminho rápido para o ban.
Arquitetura técnica
// Quando o cliente abandona (30min sem checkout completo)
async function onCarrinhoAbandonado(carrinho) {
// Validação obrigatória: cliente tem opt-in WhatsApp?
if (!carrinho.cliente.whatsappOptIn) return;
// Fila com 3 jobs delayed
await fila.add('toque-30min',
{ carrinhoId: carrinho.id, toque: 1 },
{ delay: 30 * 60 * 1000 }
);
await fila.add('toque-2h',
{ carrinhoId: carrinho.id, toque: 2 },
{ delay: 2 * 60 * 60 * 1000 }
);
await fila.add('toque-24h',
{ carrinhoId: carrinho.id, toque: 3 },
{ delay: 24 * 60 * 60 * 1000 }
);
}
// Worker
fila.process(async (job) => {
const carrinho = await db.carrinhos.findById(job.data.carrinhoId);
// Cancela toques se cliente já comprou
if (carrinho.status === 'pago') return;
const mensagem = montarMensagem(carrinho, job.data.toque);
await zapApi.send({
phone: carrinho.cliente.whatsapp,
type: 'text',
body: mensagem
});
await db.carrinhosToques.create({
carrinhoId: carrinho.id,
toque: job.data.toque,
enviadoEm: new Date()
});
});
Templates A/B testados
Toque 1 (30min) — gentil, focado em ajuda
Oi [NOME]! 👋
Vi que você estava finalizando seu pedido aqui na [LOJA] —
o [PRODUTO] ficou no carrinho.
Travou em alguma parte? Posso te ajudar a finalizar.
🛒 Voltar ao carrinho: [LINK]
Qualquer coisa, é só me responder.
Toque 2 (2h) — urgência leve, sem agressividade
[NOME], seu carrinho ainda está aqui! 🛒
[PRODUTO] - R$ [VALOR]
Atenção: estoque limitado. Para garantir, finalize hoje:
👉 [LINK]
Frete grátis acima de R$ 199. ✨
Toque 3 (24h) — última cartada, com cupom
Olá [NOME], última chance! 💛
Como agradecimento por considerar a [LOJA], libero um cupom de
10% OFF só para você:
🎁 Código: VOLTA10
🛒 Aplique no checkout: [LINK]
Válido por 24h. Depois disso, o estoque pode acabar.
Por que cada decisão importa
Por que 30 minutos no primeiro toque?
Antes disso, o cliente ainda está no fluxo (pode estar pagando, comparando frete). Mensagem cedo demais incomoda e parece invasão. Depois disso, perde o "calor" da intenção.
Por que 24h no terceiro toque?
Pular para "amanhã de manhã" ativa o gatilho psicológico de "perdi a oportunidade". Acima de 48h, retornos caem para < 1%.
Por que cupom só no toque 3?
Se você dá cupom no primeiro toque, está ensinando o cliente a abandonar carrinho de propósito (já vi isso em ~15% dos clientes recorrentes). Cupom é última cartada.
Métricas para medir
- Taxa de entrega: mensagens enviadas / mensagens entregues. < 95% = problema (número errado, formato).
- Taxa de leitura: entregues / lidas. WhatsApp tem ~90% típico — abaixo disso, pode ser número inativo.
- Click rate: lidas / cliques no link. Bom: 25–40%.
- Conversion rate: cliques / pedidos pagos. Bom: 35–50% (cliente que clicou já estava interessado).
- Recovery rate por toque: medir individualmente — se toque 3 está performando melhor que toque 1, repensar copy do primeiro.
- Opt-out rate: abaixo de 0,5% por mensagem é saudável; acima, copy está agressivo demais.
LGPD e ética: opt-in não-negociável
Recuperação de carrinho via WhatsApp exige opt-in explícito. Não é "interesse legítimo". O caminho:
- Checkbox no checkout: "Aceito receber atualizações sobre meu pedido pelo WhatsApp" (NÃO marcado por padrão).
- Salvar timestamp + IP do consentimento.
- Implementar opt-out automático na palavra "SAIR".
- Apagar dados após 12 meses se cliente não comprar (anonimização).
ANPD multou um e-commerce em 2024 por recuperação de carrinho sem opt-in — não vale o risco.
Integrações prontas
A ZAP API tem template n8n para os principais e-commerces brasileiros — basta importar em /dashboard/integrations/templates:
- WooCommerce — webhook nativo de carrinho abandonado.
- Shopify — via webhook
checkouts/abandon. - VTEX — orderForm callback.
- Loja Integrada — webhook de pedido criado + status.
- Magento 2 — observer no
checkout_cart_save_after.
FAQ
- E se o cliente não tem WhatsApp cadastrado no e-commerce?
Não tente recuperar via WhatsApp — sem número e sem opt-in, é spam puro. Use o canal que ele autorizou (email). - Funciona para ticket alto (R$ 1.000+)?
Sim, e até melhor — recovery rate sobe para ~20% em ticket alto, porque o cliente está pesquisando mais. Vale escalar para humano nesses casos. - Posso mandar imagem do produto?
Sim, e melhora ~25% a conversão. Usetype: "image"com mediaUrl + caption. - Quantas instâncias eu preciso?
Volume médio de e-commerce (5k pedidos/mês, 70% abandono = 3.5k carrinhos × 3 toques = 10.5k mensagens/mês) cabe em 1 instância. Acima de 50k pedidos/mês, divida em 2–3 instâncias. - WhatsApp Business pessoal serve?
Não para escala. Disparar 100 mensagens automatizadas por dia em conta pessoal banimento é em dias. Use API.
Criar conta para e-commerce: trial 7 dias — templates incluídos.