Saltar al contenido
Todas las guíasE-commerce

Recupera ventas perdidas: carritos abandonados de Shopify por WhatsApp

Recupera a quien se va sin pagar con un recordatorio automático de WhatsApp por cada carrito abandonado de Shopify. Sin código, se configura en una tarde.

Unos 7 de cada 10 clientes que añaden algo al carrito se van sin pagar. La mayoría de tiendas intenta recuperarlos por email. Casi nadie abre esos correos. WhatsApp es distinto: casi todos los mensajes se leen, normalmente en minutos. Así que un recordatorio corto y cercano del estilo "¡Hola Alex! Te dejaste la Chaqueta de Lana Merino. Aquí tienes tu enlace para terminar." hace que vuelva una parte real de esos clientes.

Lo mejor: puedes montarlo tú mismo. Sin código, sin programador, sin conocimientos técnicos. Wali es la forma más fácil de automatizar WhatsApp en tu negocio, y esta guía te lleva por el camino exacto, desde el principio hasta tu primera venta recuperada.


Qué vas a montar

Cuando alguien deja tu tienda de Shopify a mitad de la compra, recibe automáticamente un mensaje de WhatsApp con su nombre, el producto que dejó y un enlace directo para volver al checkout. ¿Sigue sin comprar? Un mensaje opcional al día siguiente añade un pequeño cupón. Eso es todo. Una vez activado, funciona solo.

Conectas tres cosas, una sola vez:

  • Shopify, que ya registra por su cuenta los carritos abandonados en cualquier plan.
  • Wali, la forma más fácil de automatizar WhatsApp y enviar tus mensajes sin escribir código.
  • Tu número de WhatsApp, dado de alta en la API oficial de WhatsApp Business.

Vamos paso a paso.

Wali es quien recupera la venta. Envía el recordatorio, espera, hace el seguimiento y cierra la venta. Shopify no sabe enviar WhatsApp por su cuenta y se limita a avisar a Wali en cuanto alguien abandona un carrito. Hace de timbre, y quien vende es Wali.


Paso 1 · Crea tu cuenta de Wali

Entra en app.wali.chat/register y regístrate. Es cuestión de un minuto.


Paso 2 · Conecta tu número de WhatsApp

Dentro de Wali, conecta tu número en la API oficial de WhatsApp Business (de Meta). Wali te guía para registrar el número con Meta. Puedes usar un número nuevo o tu número de empresa de siempre.


Paso 3 · Crea tu mensaje recordatorio

WhatsApp pide a los negocios usar una plantilla de mensaje aprobada para recordatorios como este, una norma de Meta que mantiene la plataforma libre de spam. En Wali, crea una plantilla sencilla con tres huecos para el nombre del cliente, el producto y el enlace de recuperación, y envíala. La aprobación suele tardar hasta 24 horas. ¿Ya tienes una? Salta al siguiente paso.

Dos reglas sencillas para ir sobre seguro:

  • Mensajea solo a quien te dio permiso (añade un opt-in de WhatsApp en el checkout).
  • Deja de mensajear a quien responda STOP.

Paso 4 · Crea tu flujo de recuperación en Wali

En Wali, abre Flows y crea tu flujo de recuperación (está incluido desde el plan Business). El flujo funciona así: comprueba que el cliente dejó un teléfono, envía el recordatorio, espera un día y manda un seguimiento con un cupón.

No hace falta construirlo desde cero. El editor te deja colocar estos pasos en unos clics.

¿Quieres adelantar? Importa este flujo ya hecho en el editor y luego pon tu API key, tu dispositivo y los nombres de plantilla:

{
  "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": {}
}

Ahora copia la URL de tu webhook, porque Shopify y Wali no se conectan por ningún otro sitio:

  1. Abre el primer nodo del flujo, Abandoned cart (es un webhook).
  2. Copia su URL, que es la dirección a la que Shopify enviará cada carrito abandonado.
  3. Guárdala para el siguiente paso, donde la pegarás en Shopify.

Paso 5 · Conecta Shopify (esto solo avisa a Wali)

Lo único que hace Shopify Flow es avisar a Wali en cuanto un cliente abandona el carrito, porque enviar WhatsApp no está a su alcance. El enlace entre ambos es una sola URL: Shopify Flow → (envía los datos del carrito) → tu webhook de Wali → Wali envía el WhatsApp. Se configura una sola vez:

En tu panel de Shopify, abre la App Store e instala Shopify Flow, la app gratuita de Shopify que avisa a Wali en cuanto se abandona un carrito.

The Shopify admin home

Busca Shopify Flow y haz clic en Install.

Installing the free Shopify Flow app from the App Store

Ahora dile a Shopify que dispare ese flujo cada vez que alguien abandona un carrito. Abre la app Shopify Flow y:

1. Haz clic en Create workflow.

Creating a new workflow in Shopify Flow

2. Haz clic en Add trigger, busca abandons y elige Customer abandons checkout. Luego haz clic en el + de abajo.

The abandoned-checkout trigger with the button to add a step

3. Elige Action.

Choosing Action under the trigger

4. Busca Send HTTP request y selecciónalo.

Selecting the Send HTTP request action

5. El formulario de la solicitud se abre vacío.

The blank Send HTTP request form

6. Rellena la solicitud exactamente como en la imagen de abajo, campo por campo:

  • Método: POST
  • URL: la URL del webhook de tu flujo de Wali (el nodo Abandoned cart que copiaste antes)
  • Cabecera Content-Typeapplication/json
  • Cabecera Token → tu API key de Wali
  • Body: pega el bloque de abajo y usa el botón Add variable de Flow para rellenar cada valor. No hace falta que entiendas el JSON mientras los nombres de los campos coincidan:
{
  "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 %}
  ]
}
The configured Send HTTP request: POST, URL, headers and the JSON body

Nota: la acción Send HTTP request de Shopify está disponible a partir del plan Grow.


Paso 6 · Actívalo

Haz clic en Turn on workflow. Ya está. Cada carrito abandonado dispara ahora un recordatorio automático de WhatsApp. Esto es lo que ve tu cliente:

A WhatsApp chat showing the abandoned-cart reminder with the customer name, product, and a tappable link back to checkout

¿Aún no tienes tienda en Shopify? Empieza una prueba gratuita de Shopify y monta tu tienda para probar todo este flujo antes de pasar a un plan de pago.


Una secuencia de recordatorios

Un mensaje recupera algunos carritos; una secuencia corta y respetuosa recupera más. El flujo de arriba ya la incluye. Detente en el momento en que el cliente compra o responde STOP.

Cuándo Mensaje
1 hora después Recordatorio cercano + enlace al checkout
24 horas después Seguimiento + un pequeño cupón

Preguntas frecuentes

¿Necesito un plugin para detectar carritos abandonados?

No. Shopify registra los checkouts abandonados de forma nativa en todos los planes. Tú solo añades WhatsApp encima.

¿Necesito saber programar?

No. Todo el montaje es hacer clic por Shopify Flow y Wali.

¿Qué planes necesito?

Wali plan Business o superior (para los flujos). En Shopify, el paso Send HTTP request necesita el plan Grow o superior.

¿Y si el cliente no dejó un teléfono?

Shopify solo captura el teléfono si el cliente lo escribió, así que en ese caso WhatsApp no puede alcanzarle. A esos los sigue cubriendo el email de recuperación de Shopify.


Recursos


¿List@ para recuperar más ventas?

Móntalo una vez y trabaja por ti mientras duermes. Crea tu cuenta gratuita de Wali y convierte carritos abandonados en pedidos completados.

Deja de perder mensajes de WhatsApp hoy mismo

Únete a más de 5.000 equipos que ya usan WaliChat para crecer más rápido.

Iniciar Prueba Gratuita AhoraSiete días a nuestra cuenta · Nada que pagar por adelantado · Conectado en minutos