Cerca de 7 em cada 10 clientes que adicionam algo ao carrinho saem sem pagar. A maioria das lojas tenta recuperá-los por e-mail — mas quase ninguém abre esses e-mails. O WhatsApp é diferente: quase toda mensagem é lida, normalmente em minutos. Então um lembrete curto e próximo — "Oi Alex! Você esqueceu a Jaqueta de Lã Merino. Aqui está seu link para finalizar." — traz de volta uma parte real desses clientes.
O melhor: você mesmo consegue montar isso. Sem código, sem programador, sem conhecimento técnico. O Wassenger é a forma mais fácil de automatizar o WhatsApp no seu negócio, e este guia mostra o caminho exato, do começo até a sua primeira venda recuperada.
O que você vai montar
Quando alguém deixa sua loja Shopify no meio da compra, recebe automaticamente uma mensagem de WhatsApp com o nome, o produto que deixou e um link direto de volta ao checkout. Ainda sem comprar? Uma mensagem opcional no dia seguinte adiciona um pequeno cupom. É só isso — e, uma vez ligado, funciona sozinho.
Você conecta três coisas, uma única vez:
- Shopify — já detecta os carrinhos abandonados para você, em qualquer plano.
- Wassenger — a forma mais fácil, sem código, de automatizar e enviar suas mensagens de WhatsApp.
- Seu número de WhatsApp — na API oficial do WhatsApp Business.
Vamos passo a passo.
O Wassenger é quem recupera a venda. Envia o lembrete, espera, faz o acompanhamento e fecha a venda. A única função do Shopify é avisar o Wassenger no momento em que um carrinho é abandonado — ele não consegue enviar WhatsApp sozinho. É a campainha; o Wassenger é quem vende.
Passo 1 · Crie sua conta Wassenger
Acesse app.wassenger.com/register e cadastre-se. Leva um minuto.
Passo 2 · Conecte seu número de WhatsApp
Dentro do Wassenger, conecte seu número na API oficial do WhatsApp Business (da Meta). O Wassenger te guia para registrar o número com a Meta — você pode usar um número novo ou trazer o número da sua empresa.
Passo 3 · Crie sua mensagem de lembrete
O WhatsApp pede que as empresas usem um modelo de mensagem aprovado para lembretes como este. É uma regra da Meta, e é o que mantém o WhatsApp livre de spam. No Wassenger, crie um modelo simples com três lacunas — o nome do cliente, o produto e o link de recuperação — e envie para aprovação. Costuma levar até 24 horas. Já tem um? Pule para o próximo passo.
Duas regras simples para ficar tranquilo:
- Mande mensagem só para quem te deu permissão (adicione um opt-in de WhatsApp no checkout).
- Pare de mandar mensagem para quem responder STOP.
Passo 4 · Monte seu fluxo de recuperação no Wassenger
No Wassenger, abra Flows e crie seu fluxo de recuperação (está incluído a partir do plano Business). O fluxo verifica se o cliente deixou um telefone, envia o lembrete, espera um dia e manda um acompanhamento com um cupom — assim:
Você não monta do zero — o editor deixa você encaixar esses passos em alguns cliques.
Quer adiantar? Importe este fluxo pronto no editor e depois defina sua API key, seu dispositivo e os nomes dos modelos:
{
"name": "WhatsApp abandoned-cart recovery",
"nodes": [
{ "parameters": { "httpMethod": "POST", "path": "abandoned-cart", "responseMode": "onReceived", "options": {} },
"id": "a1", "name": "Abandoned cart", "type": "n8n-nodes-base.webhook", "typeVersion": 2, "position": [260, 300], "webhookId": "abandoned-cart" },
{ "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "loose", "version": 2 }, "conditions": [ { "id": "c1a2b3", "leftValue": "={{ $json.body.phone }}", "rightValue": "", "operator": { "type": "string", "operation": "notEmpty", "singleValue": true } } ], "combinator": "and" }, "options": {} },
"id": "a2", "name": "Has phone?", "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [480, 300] },
{ "parameters": { "method": "POST", "url": "https://api.wassenger.com/v1/messages", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "Token", "value": "YOUR_API_KEY" }, { "name": "Content-Type", "value": "application/json" } ] }, "sendBody": true, "specifyBody": "json", "jsonBody": "={ \"device\": \"YOUR_DEVICE_ID\", \"phone\": \"{{ $('Abandoned cart').item.json.body.phone }}\", \"template\": { \"name\": \"abandoned_checkout_reminder\", \"language\": \"en\", \"components\": [ { \"type\": \"body\", \"parameters\": [ { \"type\": \"text\", \"text\": \"{{ $('Abandoned cart').item.json.body.first_name }}\" }, { \"type\": \"text\", \"text\": \"{{ $('Abandoned cart').item.json.body.product }}\" }, { \"type\": \"text\", \"text\": \"{{ $('Abandoned cart').item.json.body.recovery_url }}\" } ] } ] } }", "options": {} },
"id": "a3", "name": "Send reminder", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [720, 300] },
{ "parameters": { "amount": 24, "unit": "hours", "resume": "timeInterval" },
"id": "a4", "name": "Wait 24 hours", "type": "n8n-nodes-base.wait", "typeVersion": 1, "position": [940, 300], "webhookId": "wait-24h" },
{ "parameters": { "method": "POST", "url": "https://api.wassenger.com/v1/messages", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "Token", "value": "YOUR_API_KEY" }, { "name": "Content-Type", "value": "application/json" } ] }, "sendBody": true, "specifyBody": "json", "jsonBody": "={ \"device\": \"YOUR_DEVICE_ID\", \"phone\": \"{{ $('Abandoned cart').item.json.body.phone }}\", \"template\": { \"name\": \"abandoned_checkout_reminder_coupon\", \"language\": \"en\", \"components\": [ { \"type\": \"body\", \"parameters\": [ { \"type\": \"text\", \"text\": \"{{ $('Abandoned cart').item.json.body.first_name }}\" }, { \"type\": \"text\", \"text\": \"{{ $('Abandoned cart').item.json.body.product }}\" }, { \"type\": \"text\", \"text\": \"{{ $('Abandoned cart').item.json.body.recovery_url }}\" } ] } ] } }", "options": {} },
"id": "a5", "name": "Send reminder + coupon", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [1160, 300] }
],
"connections": {
"Abandoned cart": { "main": [[{ "node": "Has phone?", "type": "main", "index": 0 }]] },
"Has phone?": { "main": [[{ "node": "Send reminder", "type": "main", "index": 0 }], []] },
"Send reminder": { "main": [[{ "node": "Wait 24 hours", "type": "main", "index": 0 }]] },
"Wait 24 hours": { "main": [[{ "node": "Send reminder + coupon", "type": "main", "index": 0 }]] }
},
"active": false, "settings": { "executionOrder": "v1" }, "pinData": {}
}
Agora copie a URL do seu webhook — é o único elo que conecta a Shopify ao Wassenger:
- Abra o primeiro nó do fluxo, Abandoned cart (é um webhook).
- Copie a sua URL — o endereço para onde a Shopify vai enviar cada carrinho abandonado.
- Guarde-a para o próximo passo, onde você vai colá-la na Shopify.
Passo 5 · Conecte o Shopify (isto só avisa o Wassenger)
O Shopify Flow não consegue enviar WhatsApp — sua única função é avisar o Wassenger assim que um carrinho é abandonado. A ligação entre eles é uma única URL: Shopify Flow → (envia os dados do carrinho) → seu webhook do Wassenger → Wassenger envia o WhatsApp. Você configura uma vez só:
No seu painel da Shopify, abra a App Store e instale o Shopify Flow. É grátis, é da Shopify, e é a peça que avisa o Wassenger no momento em que um carrinho é abandonado.
Busque Shopify Flow e clique em Install.
Agora diga à Shopify para disparar esse fluxo sempre que alguém abandonar um carrinho. Abra o app Shopify Flow e:
1. Clique em Create workflow.
2. Clique em Add trigger, busque abandons e escolha Customer abandons checkout. Depois clique no + abaixo.
3. Escolha Action.
4. Busque Send HTTP request e selecione.
5. O formulário da requisição abre vazio.
6. Preencha a requisição exatamente como na imagem abaixo. Configure cada campo:
- Método:
POST - URL: a URL do webhook do seu fluxo Wassenger (o nó Abandoned cart que você copiou antes)
- Cabeçalho
Content-Type→application/json - Cabeçalho
Token→ a sua API key do Wassenger - Body: cole o bloco abaixo e use o botão Add variable do Flow para preencher cada valor (você não precisa entender — só combinar os nomes dos campos):
{
"event": "abandoned_checkout",
"checkout": {
"recovery_url": "{{ abandonedCheckout.abandonedCheckoutUrl }}",
"total": "{{ abandonedCheckout.totalPriceSet.presentmentMoney.amount }}",
"currency": "{{ abandonedCheckout.totalPriceSet.presentmentMoney.currencyCode }}"
},
"customer": {
"first_name": "{{ abandonedCheckout.customer.firstName }}",
"email": "{{ abandonedCheckout.customer.email }}",
"phone": "{{ abandonedCheckout.customer.phone }}"
},
"line_items": [
{% for lineItem in abandonedCheckout.lineItems %}
{ "title": "{{ lineItem.title }}", "quantity": {{ lineItem.quantity }} }{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
Observação: a ação Send HTTP request da Shopify está disponível a partir do plano Grow.
Passo 6 · Ative
Clique em Turn on workflow. Pronto — cada carrinho abandonado dispara agora um lembrete automático de WhatsApp. É isto que seu cliente vê:
Ainda não tem loja na Shopify? Comece um teste grátis da Shopify — crie sua loja e teste todo este fluxo antes de assinar um plano pago.
Uma sequência de lembretes
Uma mensagem recupera alguns carrinhos; uma sequência curta e respeitosa recupera mais — e já está embutida no fluxo acima. Pare assim que o cliente comprar ou responder STOP.
| Quando | Mensagem |
|---|---|
| 1 hora depois | Lembrete próximo + link de volta ao checkout |
| 24 horas depois | Acompanhamento + um pequeno cupom |
Perguntas frequentes
Preciso de um plugin para detectar carrinhos abandonados?
Não. A Shopify registra os checkouts abandonados de forma nativa em todos os planos — você só adiciona o WhatsApp por cima.
Preciso saber programar?
Não. Todo o processo é clicar pelo Shopify Flow e pelo Wassenger.
Quais planos eu preciso?
Wassenger plano Business ou superior (para os fluxos). Na Shopify, o passo Send HTTP request precisa do plano Grow ou superior.
E se o cliente não deixou um telefone?
Então o WhatsApp não consegue alcançá-lo — a Shopify só captura o telefone se o cliente digitar um. Esses continuam cobertos pelo e-mail de recuperação da Shopify.
Recursos
Pronto para recuperar mais vendas?
Monte uma vez e trabalhe por você enquanto dorme. Crie sua conta gratuita Wassenger e transforme carrinhos abandonados em pedidos concluídos.
















