← Todos los Proyectos
01 2026 Arquitecto de Automatización

Shopify — Suite de automatización para comercio DTC

Recuperación de ingresos, retención, soporte con IA y conciliación de pagos para una marca Shopify que vende en Estados Unidos, Canadá y Australia

ShopifyKlaviyoGorgiasn8nStripeOpenAIPostgreSQLShopify Admin API (GraphQL)Slack

Problema

La marca crecía en tres mercados, pero la operación no le seguía el ritmo. Los compradores abandonaban el checkout sin más seguimiento que un correo genérico. Clientes satisfechos con el producto olvidaban recomprar antes de que se les acabara. El equipo de soporte pasaba la mayor parte del día respondiendo a mano "¿dónde está mi pedido?". Y los pedidos pagados por convenios corporativos quedaban como "pendientes" en Shopify hasta que alguien revisaba el sistema de facturación y los marcaba como pagados manualmente, lo que frenaba el despacho y distorsionaba los reportes de ingresos.

Solución

La suite reúne cuatro automatizaciones que comparten un principio: cada sistema hace lo que mejor sabe hacer. Klaviyo maneja la comunicación con el cliente, Shopify es la fuente de verdad del pedido, Gorgias maneja la conversación humana y n8n orquesta todo lo que cruza esos límites.

1. Recuperación de checkouts abandonados (Klaviyo). Un flujo de tres pasos por email y SMS que se activa con el evento Started Checkout de Shopify. El primer mensaje es un recordatorio con el contenido del carrito; el segundo suma prueba social con reseñas del producto; el tercero ofrece un incentivo de un solo uso únicamente a compradores nuevos y carritos por encima de un umbral, para no acostumbrar a los clientes recurrentes a esperar el cupón. El flujo se detiene en cuanto entra el pedido, y el SMS solo se envía a suscriptores con consentimiento registrado según TCPA, CASL y la Spam Act australiana.

2. Reabastecimiento y recompra (Klaviyo + n8n). Cada SKU consumible tiene una ventana de consumo. n8n calcula cuándo se le va a acabar el producto a cada cliente, usando su propio historial de compras cuando existe y el valor del SKU en su defecto, y escribe esa fecha en su perfil de Klaviyo. Un flujo activado por fecha contacta al cliente unos días antes con un enlace a un carrito ya armado.

3. Agente de soporte con IA (chat embebido + Gorgias). Un widget de chat dentro de la tienda, respaldado por un agente de IA con acceso directo y de solo lectura a Shopify y al tracking de las transportadoras. Responde estado del pedido, tiempos de envío, preguntas de producto y políticas con datos en vivo, no con respuestas predefinidas. Los datos de un pedido solo se revelan después de verificar número de pedido y email. Cuando la solicitud es ambigua, involucra dinero o el cliente está molesto, el agente abre un ticket en Gorgias con la conversación completa, el contexto del pedido y una acción sugerida, para que la persona de soporte continúe sin pedirle al cliente que repita nada.

4. Conciliación de pagos por convenio (Stripe + n8n + Shopify Admin API). Los pedidos bajo convenios corporativos se facturan con invoices de Stripe, fuera de Shopify. Cada invoice lleva el ID del pedido de Shopify en sus metadatos. Cuando Stripe emite el evento invoice.paid, n8n verifica la firma del webhook, ubica el pedido correspondiente, confirma que el monto coincide y que sigue pendiente, lo marca como pagado mediante la Admin API, le pone la etiqueta "charged" y agrega una nota con el ID de la invoice y la fecha del pago. El flujo es idempotente: los reintentos de webhooks de Stripe nunca generan actualizaciones duplicadas. Cualquier inconsistencia (monto distinto, pedido inexistente, pedido ya pagado) nunca se resuelve sola: se envía a Slack para revisión humana.

Decisiones clave

  • Klaviyo para comunicar, n8n para la lógica. La entregabilidad, los flujos y el manejo de consentimiento de Klaviyo son difíciles de igualar, así que la comunicación vive ahí. Los cálculos propios, como la fecha de recompra por cliente, viven en n8n y alimentan a Klaviyo mediante propiedades de perfil: el equipo de marketing sigue editando textos y tiempos sin tocar código.
  • Los incentivos se ganan, no son la regla. Los descuentos del flujo de recuperación dependen del valor del carrito y del historial del cliente para proteger el margen.
  • El agente consulta, las personas deciden. El agente de soporte tiene acceso de solo lectura. Todo lo que tiene impacto financiero (reembolsos, cancelaciones) se escala con contexto, nunca se ejecuta de forma autónoma.
  • Coincidencia estricta antes que comodidad. Marcar un pedido como pagado afecta ingresos, impuestos y despacho. La conciliación solo actúa sobre coincidencias exactas; todo lo demás se marca para revisión.
  • Cumplimiento por mercado. El manejo de consentimiento se diseñó desde el inicio para tres marcos regulatorios distintos, no se agregó después.

Resultados

  • Seguimiento a los checkouts abandonados por email y SMS desde la primera hora, con incentivos reservados para compradores nuevos con carritos que califican: ventas recuperadas sin sacrificar margen
  • Recordatorios de recompra ajustados al ritmo de compra de cada cliente, no a un calendario fijo
  • Preguntas de estado del pedido, envíos y producto respondidas al instante, 24/7, con datos en vivo de la tienda
  • Los tickets escalados llegan a Gorgias con la conversación completa y el contexto del pedido: ningún cliente tiene que repetir su caso
  • Pedidos por convenio marcados como pagados en menos de un minuto desde que Stripe confirma el pago, reemplazando el cruce manual entre dos sistemas
  • Cada actualización automática de pago deja un rastro de auditoría con la referencia de Stripe y la fecha

Arquitectura

Shopify (Store)
  ├─ Started Checkout ──→ Klaviyo: Abandoned Checkout Flow
  │     ├─ Email 1 · 1h  (cart reminder)
  │     ├─ Email/SMS 2 · 24h  (social proof · consent-gated SMS)
  │     ├─ Email 3 · 48h  (conditional split: new customer + cart value → incentive)
  │     └─ Exit on Placed Order
  │
  ├─ Order Fulfilled ──→ n8n: Replenishment Engine
  │     ├─ SKU consumption windows (PostgreSQL)
  │     ├─ Per-customer reorder interval from purchase history
  │     └─ Klaviyo API → profile property: next_reorder_date
  │           └─ Klaviyo: Date-Triggered Replenishment Flow → prefilled cart link
  │
  └─ Storefront Chat Widget ──→ n8n: Support Agent (LLM)
        ├─ verify_customer (order # + email)
        ├─ get_order_status (Shopify Admin API)
        ├─ track_shipment (carrier tracking)
        ├─ search_products / get_policy
        └─ escalate_to_human → Gorgias API (transcript + order context + suggested action)

Stripe (invoice.paid)
  └─ Webhook ──→ n8n: Agreement Reconciliation
        ├─ Verify Stripe signature
        ├─ Idempotency check (event already processed?)
        ├─ Read shopify_order_id from invoice metadata
        ├─ Validate amount + financial status = pending (Shopify GraphQL)
        ├─ ✓ orderMarkAsPaid → tag "charged" → note (Stripe invoice ID + date)
        └─ ✗ mismatch → Slack alert for manual review