Recupere vendas perdidas: carrinhos abandonados da Shopify pelo WhatsApp
Traga de volta quem sai sem pagar com um lembrete automático de WhatsApp para cada carrinho abandonado da Shopify. Sem código, configure em uma tarde.

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. 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 como "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 Wali é 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. Uma vez ligado, funciona sozinho.
Você conecta três coisas, uma única vez:
- O próprio Shopify cuida de detectar os carrinhos abandonados, em qualquer plano.
- Com o Wali você automatiza e envia suas mensagens de WhatsApp pelo caminho mais fácil que existe, sem escrever código.
- Seu número de WhatsApp precisa estar rodando na API oficial do WhatsApp Business.
Vamos passo a passo.
Quem recupera a venda é o Wali, que envia o lembrete, espera, faz o acompanhamento e fecha a venda. Sem conseguir enviar WhatsApp sozinho, o Shopify se limita a avisar o Wali no momento em que um carrinho é abandonado. É a campainha; o Wali é quem vende.
Passo 1 · Crie sua conta Wali
Acesse app.wali.chat/register e cadastre-se. Leva um minuto.
Passo 2 · Conecte seu número de WhatsApp
Dentro do Wali, conecte seu número na API oficial do WhatsApp Business (da Meta). O Wali te guia no registro do número com a Meta, e você escolhe entre 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. Essa exigência da Meta é justamente o que mantém o WhatsApp livre de spam. No Wali, crie um modelo simples com três lacunas para 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 Wali
No Wali, abra Flows e crie seu fluxo de recuperação (está incluído a partir do plano Business). O fluxo faz assim: verifica se o cliente deixou um telefone, envia o lembrete, espera um dia e manda um acompanhamento com um cupom.
O editor deixa você encaixar esses passos em alguns cliques, sem montar nada do zero.
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.your-domain.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.your-domain.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, que é o único elo entre a Shopify e o Wali:
- Abra o primeiro nó do fluxo, Abandoned cart (é um webhook).
- Copie a sua URL, o endereço para onde a Shopify vai mandar 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 Wali)
Como o Shopify Flow não sabe enviar WhatsApp por conta própria, todo o papel dele aqui é avisar o Wali assim que um carrinho é abandonado. A ligação entre eles é uma única URL: Shopify Flow → (envia os dados do carrinho) → seu webhook do Wali → Wali envia o WhatsApp. Você configura uma vez só:
No seu painel da Shopify, abra a App Store e instale o Shopify Flow, um app gratuito da própria Shopify que serve justamente para avisar o Wali 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 Wali (o nó Abandoned cart que você copiou antes)
- Cabeçalho
Content-Type→application/json - Cabeçalho
Token→ a sua API key do Wali - Body: cole o bloco abaixo e use o botão Add variable do Flow para preencher cada valor (você não precisa entender nada disso, basta 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. A partir daí, cada carrinho abandonado dispara 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á vem 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, de modo que só falta você acrescentar o WhatsApp por cima.
Preciso saber programar?
Não. Todo o processo é clicar pelo Shopify Flow e pelo Wali.
Quais planos eu preciso?
Wali 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?
A Shopify só captura o telefone se o cliente digitar um, então quem não deixou número fica fora do alcance do WhatsApp e continua coberto 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 Wali e transforme carrinhos abandonados em pedidos concluídos.