
Si querés vender y dar soporte por WhatsApp sin errores, Shopify tiene que mandar y WhatsApp tiene que leer y ejecutar. Así de simple.
Yo resumiría todo el proceso en esto:
Hay un dato que marca por qué esto importa: en WhatsApp, la recuperación de carritos puede convertir entre 25 % y 35 %, mientras que email suele quedar entre 8 % y 12 %. Pero si el precio está viejo o el stock no coincide, ese flujo pierde sentido.
En pocas palabras: yo conectaría una app personalizada de Shopify, registraría webhooks como orders/create, fulfillments/create, products/update y checkouts/create, y dejaría que una capa de integración procese cada evento con control de errores.
| Parte | Para qué sirve |
|---|---|
| Shopify | Guarda el estado final de catálogo, clientes, pedidos e inventario |
| WhatsApp API | Envía mensajes, muestra productos y acompaña ventas y postventa |
| Middleware | Recibe webhooks, valida HMAC, mapea datos y frena duplicados |
Después, el foco pasa por probar todo de punta a punta con datos de Argentina: ARS, +54, direcciones locales, acentos, ñ, plantillas aprobadas y códigos de error como #131026, #132015 o 401.
Si yo tuviera que quedarme con una sola idea del artículo, sería esta: sincronizar bien no es “conectar dos apps”, sino hacer que cada cambio de Shopify llegue a WhatsApp una sola vez, con el dato correcto y en el formato correcto.

Para armar esta integración necesitás tres piezas base: una app personalizada en Shopify, una cuenta activa en WhatsApp Business Platform o Cloud API, y una capa de integración que procese webhooks. Sin eso, el flujo queda rengo. Con esas tres partes listas, el paso siguiente es mapear eventos y permisos.
En Shopify, la app personalizada tiene que contar con permisos de lectura y escritura sobre Productos, Pedidos, Clientes, Inventario y Fulfillments. Eso le da acceso a los datos que después vas a usar en automatizaciones, avisos y sincronizaciones.
En WhatsApp, usá las credenciales de la cuenta activa para autenticar cada llamada. Dicho simple: Shopify expone los cambios, tu middleware los procesa y WhatsApp ejecuta el mensaje o la acción que corresponda.
Acá conviene dejar una regla clara desde el arranque: Shopify es la fuente de verdad para catálogo, pedidos, clientes e inventario. WhatsApp consume esa info y dispara eventos, pero no debería transformarse en el lugar donde “mandan” los datos.
En la práctica, esto significa que los mensajes y acciones del cliente en WhatsApp pueden crear o actualizar pedidos en Shopify. Después, Shopify conserva el estado final. Cuando definís eso de entrada, cada webhook ya tiene un destino claro dentro del middleware y evitás cruces raros entre sistemas.
Cada evento de Shopify puede activar una acción puntual en WhatsApp. Estos son los topics que después vas a registrar y procesar en la integración:
| Evento de Shopify | Caso de uso en WhatsApp |
|---|---|
orders/create | Envía la confirmación inmediata del pedido |
orders/updated | Notifica cambios en el estado o los ítems del pedido |
fulfillments/create | Dispara el aviso de envío con el link de seguimiento |
fulfillments/update | Informa en camino o entregado según el estado |
checkouts/create | Inicia el flujo de recuperación de carrito abandonado tras un tiempo configurable |
refunds/create | Notifica al cliente que el reembolso fue procesado |
products/update | Sincroniza cambios de precio o stock al catálogo de WhatsApp |
Visto de otra forma, cada webhook responde a una situación puntual del negocio: una compra, un cambio de estado, un envío, un reintegro o una actualización de catálogo. Si el mapeo está bien hecho desde el comienzo, después el flujo corre mucho mejor.
Cómo Sincronizar Shopify con WhatsApp API: Arquitectura y Flujo de Datos
Con la arquitectura ya definida, ahora sí toca poner manos a la obra con la integración entre Shopify y WhatsApp. Primero va la autenticación. Después, los webhooks de Shopify y la capa que los recibe y procesa.
En WhatsApp, usá OAuth y asegurate de que tu cuenta de Meta Business Manager y WhatsApp Business esté activa antes de salir a producción.
En Shopify, seguí esta ruta: Configuración > Apps y canales de venta > Desarrollar apps. Desde ahí creás una app personalizada, le ponés nombre y ajustás los permisos de la API de Admin. Los scopes mínimos son read_products, read_orders y read_customers. Si WhatsApp va a crear pedidos, sumá write_orders.
| Paso | Acción | Dónde hacerlo |
|---|---|---|
| 1 | Habilitar desarrollo de apps | Configuración > Apps y canales de venta > Desarrollar apps |
| 2 | Crear la app | Seleccionar "Crear una app", ingresar nombre y correo de emergencia |
| 3 | Configurar permisos | Integración con la API de Admin |
| 4 | Instalar la app | Credenciales de API > "Instalar app" |
| 5 | Obtener el token | Mostrar el token de acceso a la API de Admin (empieza con shpat_) |
Una vez instalada la app, registrá webhooks como orders/create, orders/updated, fulfillments/create, products/update y checkouts/create. Así, la sincronización de productos, pedidos y clientes se dispara en tiempo real.
Con la app instalada y los webhooks activos, el paso que sigue es conectar el middleware.

La capa de sincronización recibe los eventos, los valida y evita duplicados. Burbuxa hace ese trabajo y mantiene al día productos, pedidos, clientes e inventario entre WhatsApp y Shopify.
Con esta conexión lista, ya podés pasar al mapeo de productos, clientes y pedidos.
Con el middleware activo, definí cómo se mueve cada dato entre Shopify y WhatsApp. Arrancá por el catálogo: si ahí hay un error de precio o de stock, ese problema después se replica en todo el flujo.
Un buen mapeo evita mostrar precios desactualizados o productos sin stock en WhatsApp.
| Variable de Shopify | Campo en WhatsApp |
|---|---|
{{ product.title }} | Nombre del producto |
{{ variant.sku }} | SKU / ID |
{{ variant.price }} | Precio en ARS |
{{ variant.inventory_quantity }} | Disponibilidad |
{{ product.images.src }} | URL de imagen |
El inventario tiene que actualizarse en tiempo real para evitar quiebres de stock.
Después del catálogo y el inventario, el dato más sensible pasa a ser el número de WhatsApp del cliente.
El número +54 conecta el contacto de WhatsApp con el cliente correcto en Shopify. Registrá el opt-out y normalizá el teléfono en formato E.164 con +54.
Con el contacto bien identificado, ya podés registrar pedidos y responder eventos de postventa sin cruces ni errores.
Cada evento del pedido debería disparar una sola acción: confirmar, avisar, actualizar o cancelar.
orders/create → confirmación inmediata del pedidoorders/updated → cambios en el estado de pago o modificacionesfulfillments/create / fulfillments/update → datos de envío y enlace de seguimientorefunds/create / orders/cancelled → notificación de devolución o cancelaciónUsá formato ARS: $ 15.999,50 y fecha DD/MM/AAAA. Para confirmaciones y avisos de envío, usá plantillas aprobadas. Y para que no salgan mensajes duplicados, aplicá idempotencia con el ID del pedido como clave única.
Con estos mapeos listos, ya podés probar que cada evento llegue una sola vez y con el formato correcto.
Con el mapeo ya definido, probá el flujo completo antes de pasar a producción. Hacé una prueba de punta a punta con datos de verdad: un número con prefijo +54, una dirección de envío argentina - por ejemplo, Rosario, Santa Fe - y precios en ARS.
En esta etapa, revisá puntos muy concretos:
Si la ñ o los acentos fallan, casi seguro hay un problema de UTF-8.
También conviene probar los eventos más sensibles del flujo: stock, carrito abandonado, confirmación de pedido y actualización de envío. Si algo se rompe en esta prueba, arreglarlo ahora te va a ahorrar un dolor de cabeza después, cuando un cliente reciba un mensaje con el precio mal o, peor, vacío.
Si las pruebas salen bien, activá monitoreo, reintentos e idempotencia. En producción, estos son los códigos de error que tenés que contemplar:
| Código de error | Causa probable | Acción recomendada |
|---|---|---|
| #131026 | Número inválido o bloqueado | Validá formato E.164 y que el número siga activo |
| #131042 | Problema de facturación en Meta | Revisar el método de pago en Meta Business Manager |
| #132015 | Plantilla pausada o rechazada | Revisar o recrear la plantilla |
| #133004 | Servidor temporalmente no disponible | Usá reintentos con backoff exponencial |
| 401 Unauthorized | HMAC inválido o token vencido | Verificar HMAC y renovar tokens |
Si el webhook se reintenta, aplicá idempotencia con identificadores únicos para no duplicar pedidos ni mensajes. Además, sumá un health check periódico para Shopify Admin API y WhatsApp Business API. También dejá definidos umbrales de escalado manual, así el equipo sabe cuándo intervenir sin perder tiempo.
Con el sistema ya validado y monitoreado, toca dejar claras las reglas de operación. Si la prueba de punta a punta, los reintentos con backoff y el monitoreo continuo están bien configurados, la sincronización queda lista para operar.
Mantené activos los logs, las alertas por expiración de tokens y los umbrales de escalado manual. Ahí está la base que mantiene la automatización funcionando con el paso del tiempo.
No necesariamente. Si usás una plataforma como Burbuxa para manejar la integración, no hace falta desarrollar un middleware propio.
Burbuxa se conecta con tu tienda Shopify mediante APIs y webhooks. Eso te evita programar capas intermedias o meterte en configuraciones manuales complejas. Además, sincroniza de forma automática productos, pedidos, clientes e inventario en tiempo real.
Si un webhook de Shopify falla o llega duplicado, primero revisá los permisos y la conexión con la API de WhatsApp Business dentro de tu plataforma.
Si el problema sigue, hablá con el soporte técnico de la herramienta que usás para la integración. Ese equipo suele encargarse de la recepción y el procesamiento de estos eventos para mantener la sincronización en tiempo real.
Para evitar errores con precios, stock y teléfonos en Argentina, la clave es usar una plataforma que sincronice los datos de Shopify en tiempo real mediante webhooks, como Burbuxa. Así, cada cambio de precio o stock se refleja al instante en WhatsApp y te ahorrás las actualizaciones manuales.
Además, está hecha para formatos locales, como precios en pesos ($1.234,56) y fechas DD/MM/AAAA. La sincronización bidireccional ayuda a evitar productos sin stock, precios desactualizados y datos inconsistentes de clientes y pedidos.