Récupérez les ventes perdues : paniers Shopify abandonnés sur WhatsApp
Faites revenir ceux qui partent sans payer grâce à un rappel WhatsApp automatique pour chaque panier Shopify abandonné. Sans code, à configurer en un après-midi.

Environ 7 clients sur 10 qui ajoutent un article au panier repartent sans payer. La plupart des boutiques comptent sur l'e-mail pour les récupérer. Le problème, c'est que presque personne n'ouvre ces e-mails. WhatsApp, c'est différent : presque chaque message est lu, généralement en quelques minutes. Alors un petit rappel amical fait revenir une vraie part de ces clients. Le message peut être aussi simple que "Bonjour Alex ! Vous avez laissé la Veste en Laine Mérinos. Voici votre lien pour finaliser."
Le meilleur : la mise en place ne demande ni code, ni développeur, ni connaissances techniques, et vous pouvez la faire vous-même. Wali est le moyen le plus simple d'automatiser WhatsApp pour votre entreprise, et ce guide vous emmène sur le chemin exact, du début jusqu'à votre première vente récupérée.
Ce que vous mettez en place
Quand un client quitte votre boutique Shopify en plein paiement, il reçoit automatiquement un message WhatsApp avec son nom, le produit laissé et un lien direct pour revenir au paiement. Toujours pas d'achat ? Un message optionnel le lendemain ajoute un petit coupon. C'est tout. Une fois activé, ça tourne tout seul.
Vous connectez trois choses, une seule fois :
- Shopify, qui repère déjà les paniers abandonnés pour vous, quel que soit votre forfait.
- Wali, la façon la plus simple d'automatiser et d'envoyer vos messages WhatsApp sans toucher au code.
- Votre numéro WhatsApp, branché sur l'API officielle de WhatsApp Business.
Voici comment, étape par étape.
C'est Wali qui envoie le rappel, attend, relance et conclut la vente. Shopify, de son côté, n'envoie aucun WhatsApp et se borne à prévenir Wali au moment où un panier est abandonné. C'est la sonnette ; Wali est le vendeur.
Étape 1 · Créez votre compte Wali
Allez sur app.wali.chat/register et inscrivez-vous. Ça prend une minute.
Étape 2 · Connectez votre numéro WhatsApp
Dans Wali, connectez votre numéro sur l'API officielle de WhatsApp Business (de Meta). Wali vous guide pour enregistrer le numéro auprès de Meta. Vous pouvez utiliser un nouveau numéro ou apporter celui de votre entreprise.
Étape 3 · Créez votre message de rappel
WhatsApp demande aux entreprises d'utiliser un modèle de message approuvé pour des rappels comme celui-ci. Cette règle de Meta est justement ce qui garde WhatsApp sans spam. Dans Wali, créez un modèle simple qui réserve un champ au nom du client, un autre au produit et un dernier au lien de récupération, puis soumettez-le. L'approbation prend généralement jusqu'à 24 heures. Vous en avez déjà un ? Passez à l'étape suivante.
Deux règles simples pour rester dans les clous :
- N'écrivez qu'aux clients qui vous ont donné leur accord (ajoutez un opt-in WhatsApp au paiement).
- Arrêtez d'écrire à quiconque répond STOP.
Étape 4 · Construisez votre flux de récupération dans Wali
Dans Wali, ouvrez Flows et créez votre flux de récupération (inclus à partir du forfait Business). Voici ce que fait le flux : il vérifie que le client a laissé un numéro, envoie le rappel, attend un jour et envoie une relance avec un coupon.
Vous ne partez pas d'une page blanche. L'éditeur vous laisse poser ces étapes en quelques clics.
Envie de gagner du temps ? Importez ce flux prêt à l'emploi dans l'éditeur, puis renseignez votre clé API, votre appareil et les noms de templates :
{
"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": {}
}Copiez maintenant l'URL de votre webhook, le seul lien qui relie Shopify à Wali :
- Ouvrez le premier nœud du flux, Abandoned cart (c'est un webhook).
- Copiez son URL, puisque c'est là que Shopify enverra chaque panier abandonné.
- Gardez-la pour l'étape suivante, où vous la collerez dans Shopify.
Étape 5 · Connectez Shopify (cela ne fait que prévenir Wali)
Incapable d'envoyer lui-même un WhatsApp, Shopify Flow se contente de prévenir Wali dès qu'un panier est abandonné. Le lien entre les deux est une seule URL : Shopify Flow → (envoie les données du panier) → votre webhook Wali → Wali envoie le WhatsApp. Vous le configurez une seule fois :
Dans votre admin Shopify, ouvrez l'App Store et installez Shopify Flow. Elle est gratuite, signée Shopify, et c'est la pièce qui prévient Wali au moment où un panier est abandonné.

Cherchez Shopify Flow et cliquez sur Install.

Maintenant, dites à Shopify de déclencher ce flux dès que quelqu'un abandonne un panier. Ouvrez l'app Shopify Flow et :
1. Cliquez sur Create workflow.

2. Cliquez sur Add trigger, cherchez abandons et choisissez Customer abandons checkout. Puis cliquez sur le + en dessous.

3. Choisissez Action.

4. Cherchez Send HTTP request et sélectionnez-le.

5. Le formulaire de la requête s'ouvre vide.

6. Remplissez la requête exactement comme dans l'image ci-dessous. Renseignez chaque champ :
- Méthode :
POST - URL : l'URL du webhook de votre flux Wali (le nœud Abandoned cart copié précédemment)
- En-tête
Content-Type→application/json - En-tête
Token→ votre clé API Wali - Body : collez le bloc ci-dessous, puis utilisez le bouton Add variable de Flow pour renseigner chaque valeur. Vous n'avez pas à comprendre ce JSON du moment que les noms des champs correspondent :
{
"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 %}
]
}
Note : l'action Send HTTP request de Shopify est disponible à partir du forfait Grow.
Étape 6 · Activez-le
Cliquez sur Turn on workflow. Et voilà. Chaque panier abandonné déclenche désormais un rappel WhatsApp automatique. Voici ce que voit votre client :

Pas encore de boutique Shopify ? Démarrez un essai gratuit Shopify. Vous pouvez créer votre boutique et tester tout ce flux avant de passer à un forfait payant.
Une séquence de rappels en douceur
Un message récupère quelques paniers ; une séquence courte et respectueuse en récupère plus. Le flux ci-dessus l'intègre déjà. Arrêtez dès que le client achète ou répond STOP.
| Quand | Message |
|---|---|
| 1 heure après | Rappel amical + lien vers le paiement |
| 24 heures après | Relance + un petit coupon |
Questions fréquentes
Ai-je besoin d'un plugin pour détecter les paniers abandonnés ?
Non. Shopify enregistre les paiements abandonnés nativement sur tous les forfaits. Vous ajoutez simplement WhatsApp par-dessus.
Dois-je savoir coder ?
Non. Toute la configuration consiste à cliquer dans Shopify Flow et Wali.
De quels forfaits ai-je besoin ?
Wali forfait Business ou supérieur (pour les flux). Sur Shopify, l'étape Send HTTP request nécessite le forfait Grow ou supérieur.
Et si le client n'a pas laissé de numéro ?
Shopify ne capture le numéro que si le client le saisit, donc WhatsApp ne peut pas le joindre. Ceux-là restent couverts par l'e-mail de récupération de Shopify.
Ressources
Prêt à récupérer plus de ventes ?
Configurez-le une fois et il travaille pour vous pendant que vous dormez. Créez votre compte Wali gratuit et transformez les paniers abandonnés en commandes finalisées.