Recupera le vendite perse: carrelli abbandonati di Shopify su WhatsApp
Riporta chi se ne va senza pagare con un promemoria WhatsApp automatico per ogni carrello abbandonato di Shopify. Senza codice, si configura in un pomeriggio.

Circa 7 clienti su 10 che aggiungono qualcosa al carrello se ne vanno senza pagare. La maggior parte dei negozi prova a recuperarli via email. Quelle email però quasi nessuno le apre. WhatsApp è diverso: quasi ogni messaggio viene letto, di solito in pochi minuti. Così un promemoria breve e amichevole come "Ciao Alex! Hai lasciato la Giacca in Lana Merino. Ecco il link per completare." riporta indietro una parte reale di quei clienti.
La parte migliore è che puoi farlo da solo, senza scrivere codice, senza uno sviluppatore e senza conoscenze tecniche. Wali è il modo più semplice per automatizzare WhatsApp nella tua attività, e questa guida ti accompagna nel percorso esatto, dall'inizio fino alla tua prima vendita recuperata.
Cosa stai configurando
Quando un cliente lascia il tuo negozio Shopify a metà del checkout, riceve automaticamente un messaggio WhatsApp con il suo nome, il prodotto che ha lasciato e un link diretto per tornare al checkout. Ancora niente acquisto? Un messaggio opzionale il giorno dopo aggiunge un piccolo coupon. È tutto qui e, una volta attivo, funziona da solo.
Colleghi tre cose, una volta sola:
- Shopify individua già da solo i carrelli abbandonati, qualunque piano tu abbia attivo.
- Wali automatizza e invia i tuoi messaggi WhatsApp nel modo più semplice, senza che tu debba scrivere codice.
- Il tuo numero WhatsApp deve girare sull'API ufficiale di WhatsApp Business.
Ecco come, passo dopo passo.
Chi recupera la vendita è Wali, che manda il promemoria, aspetta, fa il follow-up e chiude l'ordine. Shopify si limita ad avvisare Wali nel momento in cui un carrello viene abbandonato, perché da solo non è in grado di inviare WhatsApp. È il campanello; Wali è chi vende.
Passo 1 · Crea il tuo account Wali
Vai su app.wali.chat/register e registrati. Ci vuole un minuto.
Passo 2 · Collega il tuo numero WhatsApp
Dentro Wali, collega il tuo numero sull'API ufficiale di WhatsApp Business (di Meta). Wali ti guida nella registrazione del numero con Meta e puoi usare un numero nuovo o portare quello della tua azienda.
Passo 3 · Crea il tuo messaggio promemoria
Per promemoria come questo, WhatsApp chiede alle aziende di usare un template di messaggio approvato, una regola di Meta che tiene la piattaforma libera dallo spam. In Wali, crea un template semplice con tre spazi per il nome del cliente, il prodotto e il link di recupero. Poi invialo per l'approvazione, che di solito arriva entro 24 ore. Ne hai già uno? Salta al passo successivo.
Due regole semplici per stare tranquillo:
- Scrivi solo a chi ti ha dato il permesso (aggiungi un opt-in WhatsApp al checkout).
- Smetti di scrivere a chiunque risponda STOP.
Passo 4 · Costruisci il tuo flusso di recupero in Wali
In Wali, apri Flows e crea il tuo flusso di recupero (è incluso dal piano Business in su). Il flusso verifica che il cliente abbia lasciato un numero, invia il promemoria, aspetta un giorno e manda un follow-up con un coupon. Funziona così:
L'editor ti fa inserire questi passaggi in pochi clic, quindi non parti da una tela bianca.
Vuoi partire avvantaggiato? Importa questo flusso già pronto nell'editor, poi imposta la tua API key, il dispositivo e i nomi dei template:
{
"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": {}
}Ora copia l'URL del tuo webhook, l'unico punto in cui Shopify e Wali si parlano:
- Apri il primo nodo del flusso, Abandoned cart (è un webhook).
- Copia il suo URL, l'indirizzo a cui Shopify manderà ogni carrello abbandonato.
- Tienilo per il passo successivo, dove lo incollerai in Shopify.
Passo 5 · Collega Shopify (questo avvisa solo Wali)
Shopify Flow non è in grado di inviare WhatsApp, quindi il suo unico compito è avvisare Wali appena un carrello viene abbandonato. Il collegamento tra i due è un solo URL: Shopify Flow → (invia i dati del carrello) → il tuo webhook Wali → Wali invia il WhatsApp. Lo configuri una volta sola:
Nel tuo pannello Shopify, apri l'App Store e installa Shopify Flow, l'app gratuita di casa Shopify che avvisa Wali nel momento in cui un carrello viene abbandonato.

Cerca Shopify Flow e clicca Install.

Ora di' a Shopify di attivare quel flusso ogni volta che qualcuno abbandona un carrello. Apri l'app Shopify Flow e:
1. Clicca Create workflow.

2. Clicca Add trigger, cerca abandons e scegli Customer abandons checkout. Poi clicca il + sotto.

3. Scegli Action.

4. Cerca Send HTTP request e selezionalo.

5. Il modulo della richiesta si apre vuoto.

6. Compila la richiesta esattamente come nell'immagine qui sotto. Imposta ogni campo:
- Metodo:
POST - URL: l'URL del webhook del tuo flusso Wali (il nodo Abandoned cart che hai copiato prima)
- Header
Content-Type→application/json - Header
Token→ la tua API key di Wali - Body: incolla il blocco qui sotto e usa il pulsante Add variable di Flow per inserire ogni valore (basta far combaciare i nomi dei campi senza doverlo capire):
{
"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 %}
]
}
Nota: l'azione Send HTTP request di Shopify è disponibile dal piano Grow in su.
Passo 6 · Attivalo
Clicca Turn on workflow. Ecco fatto. Ogni carrello abbandonato attiva ora un promemoria WhatsApp automatico. Questo è ciò che vede il tuo cliente:

Non hai ancora un negozio Shopify? Inizia una prova gratuita di Shopify, crea il tuo negozio e prova tutto questo flusso prima di passare a un piano a pagamento.
Una sequenza di promemoria
Un messaggio recupera alcuni carrelli; una sequenza breve e rispettosa ne recupera di più ed è già inclusa nel flusso qui sopra. Fermati nel momento in cui il cliente compra o risponde STOP.
| Quando | Messaggio |
|---|---|
| Dopo 1 ora | Promemoria amichevole + link al checkout |
| Dopo 24 ore | Follow-up + un piccolo coupon |
Domande frequenti
Mi serve un plugin per rilevare i carrelli abbandonati?
No. Shopify registra i checkout abbandonati in modo nativo su ogni piano e tu ci aggiungi sopra solo WhatsApp.
Devo saper programmare?
No. Tutta la configurazione è cliccare tra Shopify Flow e Wali.
Di quali piani ho bisogno?
Wali piano Business o superiore (per i flussi). Su Shopify, il passaggio Send HTTP request richiede il piano Grow o superiore.
E se il cliente non ha lasciato un numero?
Allora WhatsApp non può raggiungerlo, visto che Shopify registra il numero soltanto quando è il cliente a digitarlo. Per quei clienti resta comunque l'email di recupero di Shopify.
Risorse
Pronto a recuperare più vendite?
Configuralo una volta e lavora per te mentre dormi. Crea il tuo account gratuito Wali e trasforma i carrelli abbandonati in ordini completati.