Skip to content
Back to Blog

Recupera ventas perdidas: carritos abandonados de Shopify por WhatsApp

A WhatsApp abandoned-cart reminder bringing a customer back to a Shopify checkout

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 — pero casi nadie abre esos correos. WhatsApp es distinto: casi todos los mensajes se leen, normalmente en minutos. Así que un recordatorio corto y cercano — "¡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. Wassenger 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 — y una vez activado, funciona solo.

Conectas tres cosas, una sola vez:

  • Shopify — ya detecta los carritos abandonados por ti, en cualquier plan.
  • Wassenger — la forma más fácil, sin código, de automatizar y enviar tus mensajes de WhatsApp.
  • Tu número de WhatsApp — en la API oficial de WhatsApp Business.

Vamos paso a paso.

Wassenger es quien recupera la venta. Envía el recordatorio, espera, hace el seguimiento y cierra la venta. Lo único que hace Shopify es avisar a Wassenger en el momento en que se abandona un carrito — no puede enviar WhatsApp por sí solo. Es el timbre; Wassenger es quien vende.


Paso 1 · Crea tu cuenta de Wassenger

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


Paso 2 · Conecta tu número de WhatsApp

Dentro de Wassenger, conecta tu número en la API oficial de WhatsApp Business (de Meta). Wassenger 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. Es una norma de Meta, y es lo que mantiene WhatsApp libre de spam. En Wassenger, crea una plantilla sencilla con tres huecos — 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 Wassenger

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

The recovery flow in Wassenger Flows: abandoned cart, phone check, first reminder, a 24-hour wait, and a coupon follow-up

No lo construyes 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.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": {}
}

Ahora copia la URL de tu webhook — es el único enlace que conecta Shopify con Wassenger:

  1. Abre el primer nodo del flujo, Abandoned cart (es un webhook).
  2. Copia su URL — 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 Wassenger)

Shopify Flow no puede enviar WhatsApp — su única función es avisar a Wassenger en cuanto se abandona un carrito. El enlace entre ambos es una sola URL: Shopify Flow → (envía los datos del carrito) → tu webhook de Wassenger → Wassenger envía el WhatsApp. Se configura una sola vez:

En tu panel de Shopify, abre la App Store e instala Shopify Flow. Es gratis, es de Shopify, y es la pieza que le avisa a Wassenger en el momento en que 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. Configura cada campo:

  • Método: POST
  • URL: la URL del webhook de tu flujo de Wassenger (el nodo Abandoned cart que copiaste antes)
  • Cabecera Content-Typeapplication/json
  • Cabecera Token → tu API key de Wassenger
  • Body: pega el bloque de abajo y usa el botón Add variable de Flow para rellenar cada valor (no necesitas entenderlo — solo hacer coincidir los nombres de los 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 %}
  ]
}

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 — monta tu tienda y prueba 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 — y ya está incluida en el flujo de arriba. 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 Wassenger.

¿Qué planes necesito?

Wassenger 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?

Entonces WhatsApp no puede alcanzarle — Shopify solo captura el teléfono si el cliente lo escribió. 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 Wassenger y convierte carritos abandonados en pedidos completados.

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger.

Browse more

Tutorials, guides and case studies on running WhatsApp at team scale.

Ready for the official WhatsApp Business API?See what Meta charges — and keep your current number.
WhatsApp API pricing