Saltar a contenido

Editor de flujos de trabajo de Loyalty

Un flujo de trabajo es una regla que recompensa a los clientes de forma automática. Cada flujo empieza con un disparador («cuando pasa esto»), puede bifurcarse según condiciones («solo si…») y ejecuta una o más acciones («haz esto»). Lo construyes de forma visual en un lienzo.

Abre el editor desde el panel de Loyalty: haz clic en Manage Workflows, luego en Create Workflow y elige una receta ya hecha o Start from scratch. Para editar un flujo existente, haz clic en su nombre en la lista.

El editor de flujos de trabajo: lienzo, barra de herramientas y panel de configuración

El editor tiene tres áreas:

  • Toolbar (arriba): el nombre del flujo, su programación y presupuesto, su estado y los botones de acción. Consulta La barra de herramientas.
  • Canvas (centro): el flujo visual de tu disparador y tus pasos.
  • Config panel (derecha): los ajustes del paso que hayas seleccionado. Si haces clic en Performance, este panel muestra los resultados del flujo.

Pedidos sin cuenta de cliente

Los flujos recompensan a un cliente, así que un pedido hecho como invitado (sin cliente asociado) no ejecuta ningún flujo.


Paso 1: elige un disparador

Cada flujo necesita exactamente un disparador. Haz clic en la tarjeta Start when... del lienzo y elige un disparador del menú. Para cambiarlo más tarde, selecciona el disparador y haz clic en Change en el panel de configuración: al cambiarlo se borran los ajustes del disparador y, si los habías modificado, te lo pregunta antes.

Elegir un disparador

Disparador Se activa cuando…
Order Complete Un pedido se paga. Opcionalmente, define Only orders with a subtotal of at least un importe (artículos después de descuentos, antes de envío e impuestos), o marca Skip orders paid entirely with discounts.
Customer Signup Se crea una cuenta de cliente nueva. Opcionalmente, marca Only if the email is verified at sign-up: un cliente que verifique su correo más tarde no se detecta, porque Shopify no envía un segundo evento.
Customer Birthday Es el cumpleaños del cliente, comprobado una vez al día a las 09:00 UTC. Elige On the day o Days before (hasta 30). La fecha sale de un metacampo del cliente (custom.birthday por defecto; abre More options para usar otro namespace.key) o de una etiqueta del cliente con el formato bday:MM-DD.
Product Purchase Se compra un producto concreto. Elige los productos, una cantidad total mínima (1 por defecto) y, opcionalmente, un rango de importes que esos productos deben sumar.
Collection Purchase Se compra un producto de una colección elegida. Opcionalmente, define un rango de importes que deben sumar los artículos de la colección.
Order Fulfilled Un pedido se envía por completo (por defecto), o elige Any shipment.
Refund Created Se emite un reembolso. Elige Any refund, Full refund only o Partial refund only, y un importe mínimo de reembolso opcional.

Al seleccionar un disparador se abren sus ajustes en el panel de configuración.

Elegir variantes concretas

El selector de productos se abre mostrando las variantes. Si marcas todas las variantes, se elige el producto completo, así que las variantes que añadas después también cuentan. Si marcas solo algunas, el flujo se limita exactamente a esas variantes, lo cual es útil cuando un mismo producto mezcla tarjetas de regalo de distintos valores con otros artículos. El panel las cuenta por separado, por ejemplo «1 product, 9 variants».

Recompensas por niveles de importe

Product Purchase y Collection Purchase solo se activan cuando los productos elegidos (o los artículos de la colección) suman un importe From un valor Under otro. Por ejemplo, de 150 $ a menos de 200 $. Solo cuentan las líneas que coinciden, al precio después de descuentos; el resto del carrito no. El límite inferior está incluido y el superior no, así que puedes crear un flujo por nivel (150–200 $, 200–250 $, … y uno final desde 1 000 $ sin límite superior) y exactamente uno de ellos se activa para cualquier pedido. El panel repite tu rango («Matches from $150 to under $200»), y marca un rango que ningún pedido podría cumplir. Usa {{ trigger.matched_amount }} en un mensaje para mostrar el importe que contó. Si quieres recompensar toda una escalera en un solo flujo, y contar las compras de un cliente en una ventana de tiempo como una sola, usa Reward Tiers en su lugar.

Reembolso total o parcial

Un reembolso cuenta como total cuando, junto con los reembolsos anteriores del pedido, devuelve el importe completo del pedido. Así, si primero reembolsas parte de un pedido y luego el resto, el primer reembolso es parcial y el segundo es total. Todos los reembolsos anteriores a ese punto son parciales. En Refund Created, condiciones como Order contains product revisan el pedido reembolsado: por ejemplo, ejecuta un flujo solo para los reembolsos de pedidos que contenían tu producto de tarjeta de regalo. El flujo se ejecuta en cada reembolso de un pedido.

Los disparadores determinan qué condiciones y acciones están disponibles

Las condiciones que leen datos del pedido (como Order Amount) y las acciones Add Order Tag / Note y Reward Tiers solo aparecen cuando tu disparador aporta datos del pedido. Con Customer Signup o Customer Birthday, por ejemplo, están ocultas porque no hay pedido. Si cambias el disparador de un flujo después de añadir una de ellas, el paso se marca y el flujo no se puede activar hasta que vuelvas a cambiar el disparador o elimines el paso.

Paso 2: añade pasos

Haz clic en el botón + debajo de cualquier tarjeta para añadir el siguiente paso. Puedes añadir una condición o una acción. Para eliminar un paso, haz clic en la ✕ de su tarjeta.

El menú de añadir paso, con condiciones y acciones

Condiciones

Una condición es una puerta. Los pasos colocados en su rama YES solo se ejecutan si la comprobación se cumple; los pasos de la rama NO se ejecutan si no se cumple.

Elige Add condition en el menú y después elige qué comprobar en el selector Condition type del panel de configuración. El panel se lee como una frase («Go to YES when all of these are true») y cada comprobación ofrece comparaciones en lenguaje sencillo:

Condición Comprueba Opciones
Order Amount El Subtotal (before tax/shipping), el Total (after tax/shipping) o el Discount amount del pedido is at least, is more than, is at most, is less than, is exactly
Customer Tag Las etiquetas del cliente en Shopify has any of, has all of, has none of
First Order Si es el primer pedido del cliente is the first order, is a repeat order
Tier Level El nivel de fidelidad actual del cliente, comparado por nivel is, is not, is at least, is at most
Order contains product Si el pedido incluye productos (o variantes) concretos, con una cantidad mínima contains, does not contain
Product in Collection Si los productos pedidos pertenecen a ciertas colecciones has a product from, has only products from, has no products from
Order Item Count El número de artículos, como Total quantity o Unique items las mismas cinco comparaciones que Order Amount
Customer Total Spent El gasto total histórico del cliente, antes de este pedido las mismas cinco comparaciones que Order Amount
Tier Reward Earned Si el paso Reward Tiers anterior dio a este pedido un complemento de recompensa. Se ofrece cuando el flujo tiene un paso Reward Tiers earned a tier reward top-up, earned no top-up
Tier Reward Reduced Si el reembolso redujo la recompensa por niveles; consulta Reembolsos y Reward Tiers. Se ofrece cuando el flujo tiene un paso Reward Tiers Refund reduced the tier reward, left the tier reward as it was

Para exigir varias comprobaciones a la vez, haz clic en + Add condition en el panel: cada fila debe cumplirse para la rama YES; si no, el pedido sigue la rama NO. Haz clic en una fila para abrirla, y en el icono de papelera para eliminarla.

Una condición con dos comprobaciones y sus ramas YES y NO

Cómo ven First Order, Customer Total Spent y Tier Level a tus clientes

Gift Card Hero cuenta por sí mismo los pedidos y el gasto total de cada cliente, a partir de la primera vez que el cliente recibió una recompensa; ese es el momento en que se crea su saldo de recompensas. Los pedidos anteriores no se cuentan. Por eso First Order es verdadero para cualquier cliente que aún no haya recibido una recompensa, aunque ya te haya comprado antes, y Customer Total Spent empieza desde cero. Ambas miran al cliente antes del pedido actual. Un cliente sin nivel nunca cumple una comprobación de Tier Level, ni siquiera «is not». Consulta Niveles para ver cómo se cuenta el gasto.

Acciones

Las acciones son lo que el flujo hace realmente.

Acción Qué hace
Issue Credit Añade crédito de la tienda al saldo de recompensas del cliente. Elige Fixed amount o % of order, y si quieres Boost by customer tier. En More options: un maximum credit cap, cuándo caduca el crédito y una nota.
Issue Cashback Devuelve un porcentaje del pedido como crédito de la tienda. Define el percentage y un máximo opcional. El cálculo parte de los artículos después de descuentos, y puedes añadirle envío e impuestos. En More options: un importe mínimo de pedido y una nota.
Send Message Envía un mensaje al cliente por email, SMS o como Klaviyo event. Para el email, parte de una plantilla (Credit earned, Tier changed, Credit expiring, Birthday reward, una que hayas guardado, o en blanco) y edítala libremente. Consulta Enviar un mensaje más abajo.
Add Customer Tag Añade una o más etiquetas al cliente en Shopify.
Remove Customer Tag Quita una o más etiquetas del cliente.
Add Order Tag / Note Añade etiquetas al pedido y una línea en su nota de Shopify, para que tu equipo vea qué hizo el flujo cuando busque el pedido. Solo disparadores de pedido. Consulta Marcar el pedido más abajo.
Reward Tiers Suma las compras del cliente dentro de una ventana de tiempo y calcula la recompensa del nivel que alcanza: una sola tabla en lugar de un flujo por nivel. No emite crédito de la tienda. Consulta Recompensas por niveles más abajo.
Reward Tiers Refund Con Refund Created: calcula lo que el reembolso hizo a la recompensa Reward Tiers del pedido reembolsado: la recompensa antes, después y cuánto se restó. Consulta Reembolsos y Reward Tiers más abajo.
Update Tier Up one tier, Set to a specific tier o Recalculate from spend. Consulta Niveles.
Wait / Delay Pausa el flujo durante un número de minutos, horas o días antes de que se ejecuten los pasos siguientes. Consulta Recompensas retrasadas con Wait / Delay.

Para cambiar una acción seleccionada por otra, haz clic en Change arriba del panel de configuración. Como con los disparadores, al cambiarla se borran los ajustes del paso.

Un canal por acción

El email, el SMS y un evento de Klaviyo son acciones independientes. Para llegar a un cliente por email y por SMS, añade dos acciones Send Message. Consulta Enviar un mensaje para ver canales, variables y pruebas.

Cómo calculan Issue Credit e Issue Cashback el importe

  1. La base. Issue Credit con Fixed amount paga ese importe por pedido. Con % of order, y en Issue Cashback, la base es el subtotal del pedido: los artículos después de descuentos, antes del envío. Issue Cashback te deja añadir a la base: haz clic en Change junto a «Based on» y marca + shipping y/o + tax. Con precios que incluyen impuestos, si no marcas + tax, la parte del impuesto se quita de la base.
  2. El impulso por nivel. Con Boost by customer tier activado (por defecto), el importe se multiplica por el multiplicador de nivel del cliente. Un cliente sin nivel no recibe impulso.
  3. El límite. El crédito máximo (o el cashback) se aplica después del impulso, en ambos modos; así, un nivel de 2x nunca puede pagar más que el límite.
  4. Redondeo. El resultado se redondea a céntimos. Un importe de cero no emite nada.

El Only for orders of at least de Issue Cashback (en More options) se comprueba contra la misma base, así que añadir envío o impuestos a la base también cuenta para el mínimo.

El nivel usado para el impulso es el del cliente antes de contar este pedido. Un pedido que sube a un cliente a un nivel superior se recompensa al nivel anterior; el siguiente pedido ya usa el nuevo.

Credit expires (Issue Credit, en More options) ofrece Store default y After N days. Hoy Store default significa que el crédito no caduca: no existe una configuración de caducidad para toda la tienda. Elige After N days para dar al crédito una fecha de caducidad. Issue Cashback no tiene opción de caducidad, así que el cashback no caduca. Consulta las preguntas frecuentes sobre dinero para saber cómo funciona la caducidad.

Las recompensas se acumulan en el saldo del cliente

El crédito y el cashback se suman al saldo único de recompensas del cliente, que el cliente gasta con su código de recompensas. Consulta Cómo canjean los clientes sus recompensas.

Recompensas retrasadas con Wait / Delay

La acción Wait / Delay retiene los pasos posteriores hasta que pase un tiempo determinado. Introduce un número y elige Minutes, Hours o Days; un paso nuevo empieza en un día.

Es útil para retener una recompensa hasta que termine tu plazo de devolución. Por ejemplo: Order Complete → Wait / Delay 14 days → Issue Cashback.

Qué pasa cuando termina la espera:

  • Los pasos continúan tal como estaba el pedido al realizarse. La recompensa se calcula a partir del pedido tal como estaba al inicio: un reembolso parcial durante la espera no la reduce, y el crédito que nunca se emitió no se puede recuperar.
  • Un reembolso total anula la recompensa. Si para entonces el pedido está reembolsado por completo, los pasos restantes no se ejecutan: ni crédito ni mensaje.
  • Un flujo eliminado, o pedidos pendientes que cancelaste, no continúan.
  • Desactivar el flujo no detiene los pedidos en espera. Una ejecución pausada termina aunque el flujo esté ahora inactivo, a menos que la canceles; consulta Desactivar un flujo con pedidos en curso. Los límites de gasto siguen aplicándose en el momento en que se emite el crédito.
  • Si Gift Card Hero no puede comprobar el pedido con Shopify en ese momento, los pasos siguen adelante en lugar de perder una recompensa.

Las reanudaciones se ejecutan según una programación, así que los pasos pueden empezar un poco después de que se cumpla el tiempo. El flujo cuenta como una sola ejecución, tenga las esperas que tenga. En Test workflow, un paso Wait / Delay no espera de verdad: la prueba muestra cuánto tiempo pausaría y continúa.

Consulta las preguntas frecuentes sobre dinero para ver cómo interactúan los reembolsos y la recuperación.

Marcar el pedido con Add Order Tag / Note

Add Order Tag / Note escribe en el pedido que inició el flujo, para que quien lo abra en Shopify, o lo busque en la caja, vea lo que pasó. Rellena uno de los dos campos o ambos:

  • Tags to add: por ejemplo, wine-reward-70. Las etiquetas que el pedido ya tiene se conservan. Shopify permite hasta 40 caracteres por etiqueta; una más larga se acorta a 40.
  • Note line: por ejemplo, Wine reward $70 - NOT REDEEMED ({{ order.name }}). Se añade como una línea nueva debajo de la nota existente del pedido; la nota que ya tiene el pedido nunca se reemplaza.

Ambos campos pueden usar las mismas variables que un mensaje; {{ order.name }} es la habitual. Haz clic en Insert variable para añadir una a la línea de nota.

Algunas cosas que conviene saber:

  • Cada línea se añade una sola vez. Si la nota del pedido ya tiene exactamente esa línea (porque el mismo pedido se procesó otra vez, o porque otro flujo escribió las mismas palabras), no se añade una segunda vez.
  • Los reembolsos marcan el pedido original. Con Refund Created, el paso etiqueta y anota el pedido reembolsado. Por ejemplo, un flujo de Refund Created configurado en Full refund only, con una condición Order contains product para tu producto de recompensa, puede añadir wine-reward-void y la línea Wine reward VOID ({{ order.name }}); otro configurado en Partial refund only puede añadir wine-reward-check para que el personal revise la recompensa a mano.
  • Funciona después de una espera y dentro de ramas. Un paso colocado después de Wait / Delay, o en la rama YES o NO de una condición, sigue marcando el mismo pedido.
  • Test workflow muestra las etiquetas y la línea de nota que escribiría (con #1001 como número de pedido de ejemplo) sin tocar ningún pedido.

Recompensas por niveles con Reward Tiers

Reward Tiers paga una recompensa según el importe que gasta un cliente, y cuenta sus compras dentro de una ventana de tiempo como una sola; así, dividir una compra de 600 $ en cuatro de 150 $ da la misma recompensa que un pedido de 600 $, y no cuatro veces la recompensa de 150 $.

El paso Reward Tiers: qué contar, la ventana y la tabla de niveles

Configúralo en el paso:

  • Count: lo que aporta cada pedido. Puede ser The trigger's products (en Product Purchase o Collection Purchase, las líneas que coincidieron con el disparador), Chosen products, Products from collections o The whole order (su subtotal). Los precios de las líneas cuentan después de descuentos.
  • Add up within: la ventana, en horas (24 por defecto, hasta 720).
  • Tiers: filas de From y Reward. Desde cada importe (incluido), las compras de la ventana ganan esa recompensa. Por ejemplo: desde 150 $ → 40 $, desde 200 $ → 50 $, desde 300 $ → 65 $… desde 1 000 $ → 300 $. Haz clic en Add tier para otra fila (hasta 50). Las filas se ordenan por importe; los importes y las recompensas deben ser mayores que cero, dos filas no pueden empezar en el mismo importe, y un nivel superior no puede pagar menos que uno inferior.
  • Add up purchases of: la cuenta del cliente (por defecto) o la dirección de email del pedido.

Cómo funciona la ventana: la primera compra válida del cliente la abre, y cada pedido hasta que pase la duración de la ventana se une a ella. Un pedido posterior abre una ventana nueva. Cada pedido gana la recompensa del nivel que la ventana ha alcanzado, menos lo que ya obtuvieron los pedidos anteriores de la ventana:

Pedido Total de la ventana Recompensa del nivel Este pedido gana
150 $ 150 $ 40 $ 40 $
150 $ 300 $ 65 $ 25 $
150 $ 450 $ 80 $ 15 $
150 $ 600 $ 125 $ 45 $

125 $ en total: lo mismo que un único pedido de 600 $.

Después del paso, usa estas variables en un mensaje o en una nota de pedido: {{ reward.delta }} (lo que gana este pedido), {{ reward.amount }} (la recompensa del nivel que alcanzó la ventana) y {{ reward.window_total }} (las compras de la ventana). Pon el mensaje y la marca del pedido en la rama YES de una condición Tier Reward Earned, para que un pedido que no aporta nada nuevo no envíe un email:

  1. Disparador: Product Purchase: Gift Card - Dollar Value
  2. Reward Tiers: cuenta los productos del disparador, en 24 horas, con tu tabla
  3. Condición: Tier Reward Earned. YES: Send Message («Your wine reward: {{ reward.delta }}») y Add Order Tag / Note (Wine reward +{{ reward.delta }} ({{ order.name }}))

Algunas cosas que conviene saber:

  • No se emite crédito de la tienda. El paso solo calcula los importes; cómo entregas la recompensa depende de los pasos posteriores.
  • Procesar un pedido de nuevo no cambia nada. Un evento reintentado o duplicado encuentra el pedido ya contado y da el mismo resultado; nada se gana dos veces y el mensaje no se envía dos veces.
  • Los reembolsos reducen la recompensa. Cuando se reembolsan productos que contaron, el importe reembolsado se resta del total de la ventana y la recompensa se recalcula con lo que queda; consulta Reembolsos y Reward Tiers.
  • Un paso Reward Tiers por flujo. Necesita un pedido, así que no se ofrece con Customer Signup, Customer Birthday ni Refund Created (en ese caso usa Reward Tiers Refund).
  • Test workflow muestra qué contaría el pedido, el total de la ventana, el nivel y el complemento: para un cliente existente, incluidos sus pedidos reales dentro de la ventana actual, sin registrar nada.

Reembolsos y Reward Tiers

La recompensa es el nivel que alcanzan las compras de la ventana, así que un reembolso que reduce las compras también reduce la recompensa. Esto ocurre por sí solo en cada reembolso; no tienes que crear nada:

  • Un reembolso parcial baja la recompensa al nivel de lo que queda. Un pedido de 300 $ ganó 65 $; reembolsas 150 $ de él, y la ventana conserva 150 $, que es el nivel de 40 $; por tanto, se restan 25 $ de la recompensa.
  • Un reembolso total del único pedido de la ventana quita toda la recompensa (65 $ → 0 $).
  • Un reembolso de uno de varios pedidos recalcula toda la ventana: dos pedidos de 150 $ ganaron 40 $ y 25 $; reembolsas el segundo, y la ventana vuelve a 150 $, es decir 40 $; por tanto, se quitan sus 25 $.
  • El siguiente pedido de la ventana cuenta desde la recompensa más baja. Reembolsas 150 $ de un pedido de 300 $ y luego compras 150 $ más dentro de la ventana: la ventana vuelve a estar en 300 $ y ese pedido gana 25 $.
  • Solo importan las líneas contadas. Un reembolso de productos que el paso no contó (el vino, otros productos), de envío, o de dinero sin líneas de artículos, no cambia nada.
  • Un reembolso se aplica una sola vez. Si Shopify envía dos veces el mismo reembolso, la segunda vez no cambia nada.
  • La ventana conserva su inicio: reembolsar su primer pedido no la mueve.

Para avisar al cliente o a tu equipo, añade un flujo Refund Created con un paso Reward Tiers Refund. Este paso lee lo que hizo el reembolso:

  • Reward Tiers workflow: el flujo cuyo paso Reward Tiers contó el pedido. Si tu tienda solo tiene uno, se elige por ti; si tiene varios, elige uno: el flujo no se puede activar hasta que lo hagas.
  • Después del paso: {{ reward.previous_amount }} (la recompensa de la ventana antes del reembolso), {{ reward.amount }} (después), {{ reward.reversed }} (cuánto se restó) y {{ reward.window_total }} (las compras que quedan en la ventana), además de sus versiones _value como números simples.
  • Pon la marca del pedido, y un mensaje si lo quieres, en la rama YES de Tier Reward Reduced. Un reembolso que deja la ventana en el mismo nivel no resta nada y sigue la rama NO.

Por ejemplo:

  1. Disparador: Refund Created: Any refund
  2. Reward Tiers Refund: Gift for Gifting
  3. Condición: Tier Reward Reduced. YES: Add Order Tag / Note (wine-reward-reduced, Wine reward {{ reward.previous_amount }} → {{ reward.amount }} ({{ order.name }}))

Test workflow reembolsa el pedido de muestra como si el flujo de Reward Tiers lo hubiera contado por sí solo: completo, o la mitad con Partial refund only. Añade a la muestra los productos que cuenta el paso Reward Tiers, con sus precios.

Una recompensa ya entregada no se recupera

Gift Card Hero no sabe si la recompensa ya se entregó; por ejemplo, si el vino se recogió en la caja. La nueva recompensa es lo que valen ahora las compras; si la anterior ya se canjeó, decide en la caja usando la nota del pedido. Y si, después de un reembolso así, el cliente vuelve a comprar dentro de la misma ventana, el pedido nuevo gana su complemento a partir de la recompensa más baja, así que puede recibir más de lo que realmente recogió. Con una ventana de 24 horas es raro, pero conviene saberlo.


Enviar un mensaje

La acción Send Message llega al cliente por un canal a la vez: email, SMS o un Klaviyo event. Elige el canal, escribe (o elige) el mensaje, y el resto del flujo sigue ejecutándose pase lo que pase con él. Un mensaje es un efecto secundario, no una puerta.

La acción Send Message: selector de canal, campos del mensaje y vista previa en directo

Los mensajes dentro de la app no están disponibles

No hay canal de notificaciones dentro de la app. Un paso heredado de una versión anterior que estaba configurado como In-app notification nunca entregó nada; el editor muestra ese paso como Email. Elige un canal para enviar de verdad.

Elegir el canal

Canal Qué necesita
Email Envía desde el Gift Card Hero email por defecto, o desde tu propio servidor de correo una vez que lo eliges como Send from; consulta Entrega más abajo. No hay que conectar nada extra para usar el email de Gift Card Hero.
SMS Necesita un proveedor de SMS conectado en Settings → Integrations (hoy, Onfon Media).
Klaviyo event Necesita Klaviyo conectado en Settings → Integrations. Gift Card Hero envía el evento; un Flow que construyes en Klaviyo envía el mensaje real.

Consulta Integrations para conectar cualquiera de estos.

Un flujo no se puede activar con un canal que no está listo

Activate se rechaza, en el propio paso Send Message, cuando ese paso envía SMS sin un proveedor conectado, un evento de Klaviyo sin Klaviyo conectado, o email a través de un servidor de correo que no está configurado. Guardar como Draft siempre está permitido, así que puedes construir el resto del flujo primero. Si eliges un canal que no está conectado, el panel muestra un aviso con un botón que abre Settings → Integrations en una pestaña nueva.

Escribir el mensaje

  • Email: parte de una plantilla y edita el asunto, el mensaje y el botón libremente. Consulta Email: plantillas y edición más abajo.
  • SMS: un solo campo Text message, rellenado previamente con un texto breve integrado la primera vez que cambias a SMS.
  • Klaviyo event: un Klaviyo event name (opcional; consulta más abajo) y una lista de solo lectura con las propiedades que lleva el evento. No hay texto de mensaje que escribir: tu Flow de Klaviyo compone lo que ve el cliente.

En Email y SMS, haz clic en Insert variable para colocar una variable en el cursor en lugar de escribirla. Una Preview debajo muestra el mensaje renderizado (asunto, texto y botón en el email; texto y su número de segmentos en SMS; nombre del evento y sus propiedades en Klaviyo), y se actualiza un momento después de que dejes de escribir.

Email: plantillas y edición

Todos los campos son tuyos para editar, partas de donde partas; no hay un estado de «integrada» de solo lectura una vez que has escrito algo.

El selector Template, la confirmación de reemplazo y «Started from»

El selector Template muestra las cuatro integradas (Credit earned, Tier changed, Credit expiring, Birthday reward), luego Your templates (las que hayas guardado antes) y después Blank. Manage templates abre Emails de Loyalty en una pestaña nueva.

Los nombres de las integradas son textos de partida, no disparadores

Un flujo envía el texto de Tier changed o Credit expiring solo si tu disparador y tus pasos hacen que se envíe; no hay ningún disparador que se active con un cambio de nivel o con crédito por caducar. Para anunciar un nivel nuevo, por ejemplo, coloca un Send Message justo después de un paso Update Tier. Gift Card Hero también envía su propio recordatorio antes de que caduque el crédito; consulta las preguntas frecuentes sobre dinero.

  • Si eliges una plantilla mientras Subject y Message no se han tocado, rellena los campos al momento.
  • Si eliges una cuando ya has escrito tu propio texto, Gift Card Hero lo comprueba antes: «¿Reemplazar el asunto y el mensaje con la plantilla [plantilla]?». Replace rellena los campos; Cancel deja tu texto como estaba.

La primera edición que hagas en el asunto, el mensaje o el botón de una integrada copia el texto de esa plantilla al paso. El propio texto integrado nunca se modifica al escribir, ni tampoco cualquier otro paso que use esa plantilla. A partir de ahí, aparece Started from [name] · edited debajo del selector Template, indicando que este paso ahora tiene su propia copia. Si partía de una plantilla guardada que después se eliminó, dice Started from a deleted template.

Haz clic en + Add a button para añadir uno debajo del mensaje: una Button label (por ejemplo, «Shop now») y un Button link, que debe ser una dirección https:// completa. Liquid también funciona ahí, así que https://{{ shop.domain }} lleva a los clientes a tu tienda online. Si dejas la etiqueta vacía, no hay botón. Las cuatro integradas ya traen un botón Shop now a tu tienda online.

Haz clic en View email para ver el mensaje exactamente como lo recibe el cliente: el nombre de tu tienda arriba, el mensaje, el botón si lo hay, y un pie de página con el nombre y el email de contacto de tu tienda.

View email: el mensaje tal como lo recibe el cliente

Save as template guarda el asunto, el mensaje y el botón actuales del paso (y sus traducciones) con un nombre que elijas, para que el siguiente flujo pueda partir de ellos en lugar de una página en blanco; gestiona las plantillas guardadas en Emails de Loyalty. Un paso que parte de una plantilla guardada conserva su propia copia: editar o eliminar después la plantilla guardada nunca cambia un email que ya está en un flujo.

Idiomas

Si tu tienda publica más de un idioma en Shopify, un paso de email o SMS muestra un selector Language encima del texto. La primera entrada es el idioma principal de tu tienda, marcado (default); cada otro idioma publicado indica cuánto está traducido: translated, incomplete o uses default.

El selector Language en un paso de email

Elige un idioma para escribir su asunto, su mensaje y la etiqueta del botón (o su mensaje de texto). Un campo vacío muestra el texto por defecto en gris, con Falls back to English. El enlace del botón es el mismo en todos los idiomas.

Cuando se envía el mensaje, Gift Card Hero usa el idioma del cliente tal como lo tiene Shopify. Busca una coincidencia exacta (pt-BR), luego solo el idioma (pt), y si no la encuentra, envía el idioma por defecto. Un email nunca se traduce a medias: una traducción solo se usa si tiene asunto y mensaje; si no, todo el email sale en el idioma por defecto. El editor lo indica debajo del campo. Los eventos de Klaviyo no tienen traducciones: tu Flow se encarga del idioma.

Variables

Variable Qué contiene Ejemplo
customer.first_name El nombre del cliente Jane
customer.last_name El apellido del cliente Doe
customer.name Un nombre para saludar: el nombre, o «there» si se desconoce Jane
customer.email La dirección de email del cliente jane.doe@example.com
customer.phone El teléfono del cliente, en formato internacional +254712345678
customer.locale El idioma del cliente tal como lo informa Shopify; vacío si se desconoce fr
reward.amount El crédito de la tienda que este flujo emitió antes en esta ejecución, en el formato de dinero de tu tienda; vacío si no hay ninguno. Después de un paso Reward Tiers: la recompensa del nivel que alcanzaron las compras. Después de un paso Reward Tiers Refund: la recompensa que queda tras el reembolso $10.00
reward.amount_value El mismo importe como número simple 10
reward.delta Reward Tiers: lo que ganó este pedido, es decir, la recompensa del nivel menos lo que obtuvieron los pedidos anteriores de la ventana (solo flujos Reward Tiers) $10.00
reward.delta_value Lo mismo como número simple (solo flujos Reward Tiers) 10
reward.window_total Reward Tiers: lo que suman las compras del cliente en la ventana, incluido este pedido; después de un reembolso, lo que queda (solo flujos Reward Tiers) $150.00
reward.window_total_value El mismo total como número simple (solo flujos Reward Tiers) 150
reward.previous_amount Reward Tiers Refund: la recompensa de la ventana antes del reembolso (solo flujos de reembolso con un paso Reward Tiers Refund) $25.00
reward.previous_amount_value Lo mismo como número simple (solo Reward Tiers Refund) 25
reward.reversed Reward Tiers Refund: cuánto restó el reembolso a la recompensa, es decir, la recompensa anterior menos la posterior (solo Reward Tiers Refund) $15.00
reward.reversed_value Lo mismo como número simple (solo Reward Tiers Refund) 15
wallet.balance El saldo de crédito de la tienda del cliente, en el formato de dinero de tu tienda $25.00
wallet.balance_value El saldo como número simple 25
wallet.currency Moneda del saldo USD
tier.name El nivel de fidelidad del cliente; vacío si no tiene Silver
tier.next_name El siguiente nivel; vacío en el nivel más alto o sin niveles Gold
tier.spend_to_next Lo que al cliente todavía le falta gastar para llegar al siguiente nivel, en el formato de dinero de tu tienda $150.00
tier.spend_to_next_value Lo mismo, como número simple 150
order.name El número de pedido (solo disparadores de pedido) #1001
order.total El total del pedido, en el formato de dinero de tu tienda (solo disparadores de pedido) $120.00
order.total_value El total del pedido como número simple (solo disparadores de pedido) 120
trigger.matched_amount Lo que suman los productos o artículos de colección que coincidieron con el disparador, después de descuentos, en el formato de dinero de tu tienda (solo disparadores Product / Collection Purchase) $100.00
trigger.matched_amount_value El mismo importe como número simple (solo disparadores Product / Collection Purchase) 100
workflow.name El nombre de este flujo Your workflow
shop.name El nombre de tu tienda Your Store
shop.domain El dominio de tu tienda online your-store.com
shop.email El email de contacto de tu tienda hello@your-store.com

Cuatro variables de antes de que estos mensajes usaran Liquid siguen funcionando en cualquier mensaje que no hayas reescrito: {{amount}}, {{balance}}, {{customer_name}} y {{store_name}}, con los mismos valores que reward.amount, wallet.balance, customer.name y shop.name. Escribe los mensajes nuevos con la tabla de arriba.

Nociones básicas de Liquid

Un mensaje es una pequeña plantilla de Liquid. Dos cosas cubren casi todo lo que necesita un comerciante:

  • Mostrar una variable con dobles llaves: Hi {{ customer.first_name }}, your balance is {{ wallet.balance }}.
  • Mostrar algo solo a veces con {% if %}…{% endif %}:
{% if reward.amount_value > 0 %}You also earned a reward on this order!{% endif %}

No se muestra nada entre las etiquetas cuando la condición es falsa: ni línea en blanco, ni signos de puntuación sobrantes.

Un mensaje con un error de Liquid no se puede guardar: el editor señala el campo y explica el problema.

Longitud del SMS y segmentos

Un mensaje de texto se factura por segmento: un mensaje sencillo cabe en 160 caracteres en un segmento, y 153 caracteres por cada segmento posterior. Un carácter fuera del alfabeto latino básico (un emoji, unas comillas curvas, muchas letras acentuadas) cambia todo el mensaje a un modo que solo admite 70 caracteres por segmento (67 después del primero), así que un solo carácter perdido puede duplicar el coste de un mensaje. El recuento bajo el campo Text message es la longitud de lo que escribiste, frente al límite de 1 000 caracteres. El número de segmentos que ocupa el mensaje aparece en la vista previa: cuenta el texto renderizado, después de rellenar las variables con valores de muestra, no las etiquetas {{ }} en sí; así que un nombre de cliente o un importe largos pueden añadir un segmento.

Entrega

Cada canal termina con un grupo Delivery en la parte inferior del panel: cómo sale el mensaje y quién puede recibirlo.

El grupo Delivery: Send from y la casilla de consentimiento

Send from (solo email) es el canal por el que sale el email:

Opción Envía como
Gift Card Hero email <Nombre de tu tienda> <giftcardhero@syncube.email>, con las respuestas dirigidas al email de contacto de tu tienda. Siempre disponible.
Your mail server (SMTP) La dirección configurada para ello en Settings → Integrations. Aparece como «— not set up» y deshabilitada hasta que se conecte un servidor de correo allí.

Manage senders abre Settings → Integrations en una pestaña nueva. Un paso guardado antes de que existiera esta opción sigue la configuración de email de toda la tienda (consulta Integrations) hasta que elijas aquí un remitente para él.

Si el servidor de correo que usa un paso deja de funcionar, el email sigue saliendo, pero desde Gift Card Hero email, y el resultado del paso lo indica. Un Send test a través de un servidor de correo roto falla directamente en lugar de cambiar de remitente, con «Your mail server isn't set up», para que te enteres antes que un cliente. Un flujo no se puede activar mientras el servidor de correo elegido para un paso de email no esté configurado; consulta el aviso de arriba.

Para SMS y Klaviyo, este grupo muestra el estado de la conexión en lugar de Send from: si hay una pasarela o Klaviyo conectado.

Cada canal también tiene su propia casilla de consentimiento: «Only send to customers subscribed to SMS marketing» para SMS, o «Only send to customers subscribed to email marketing» para email y Klaviyo. Lee el consentimiento de marketing del cliente exactamente como lo registra Shopify para ese canal.

Está activada por defecto para SMS y desactivada para email y Klaviyo, y al cambiar de canal se restablece ese valor por defecto, aunque la hubieras cambiado antes. Desactívala para SMS solo si estás seguro de que todos los destinatarios han aceptado recibir textos; los mensajes transaccionales de recompensa cuestan un segmento de todos modos.

El evento de Klaviyo y cómo construir el Flow

Un paso de Klaviyo envía un evento (métrica), no un mensaje: tu cuenta de Klaviyo convierte ese evento en lo que envíe tu Flow. El nombre del evento por defecto es Loyalty: <workflow name>; escribe el tuyo (hasta 128 caracteres) para apuntar a un Flow concreto, lo cual es útil cuando más de un paso Send Message de tu cuenta alimenta a Klaviyo.

El evento lleva como propiedad cada variable de la tabla de arriba (no las cuatro heredadas), además de workflow_id, step_id e is_test. Se asocia al perfil del cliente por email: un cliente sin email registrado no puede recibir un evento de Klaviyo.

Construye un Flow en Klaviyo activado por esta métrica de la misma forma que lo harías para recordatorios o notificaciones de canje; un evento sin Flow detrás llega a Klaviyo y no hace nada.

Enviar una prueba

Dos cosas distintas envían una prueba, con fines diferentes:

  • Test workflow, en la barra de herramientas, ejecuta todo el flujo como una simulación (dry-run). Para un paso Send Message muestra el asunto y el texto renderizados (o el evento de Klaviyo y sus propiedades) y el destinatario enmascarado, y no contacta a ningún proveedor de email, SMS o Klaviyo.
  • Send test, dentro del propio editor de la acción Send Message, envía un mensaje real con valores de muestra del cliente, de la recompensa y del saldo a una dirección de email o número de teléfono que escribas; en email, viene rellenado con la propia dirección de tu tienda. Una prueba de SMS es un mensaje real y facturado. Una prueba de email siempre sale por el remitente del propio paso y nunca cambia a otro; si ese remitente no está configurado, la prueba falla directamente, con «Your mail server isn't set up», y una prueba correcta confirma tanto la dirección como el remitente usado. Una prueba de Klaviyo envía un evento real, con is_test: true, al email que escribas, para que termines de construir tu Flow con él. Send test está deshabilitado hasta que el canal que prueba esté conectado. Si el paso tiene traducciones, la prueba sale en el idioma seleccionado en ese momento.

Cuando un mensaje no se envía

Un paso Send Message nunca detiene el resto del flujo: pase lo que pase con el mensaje, los pasos siguientes se ejecutan igualmente. Además, se envía como máximo una vez por paso y por pedido o evento: un trabajo reintentado o un webhook repetido de Shopify nunca envía el mismo mensaje dos veces.

Cuando un mensaje no iba a salir, Test workflow indica el motivo justo en ese paso. En las ejecuciones reales se registra el mismo motivo para el paso, pero el admin no lista las ejecuciones individuales; usa Test workflow con el mismo cliente para reproducirlo.

Lo que indica Qué pasó
no email address is known for this customer El canal es email o Klaviyo, y el cliente no tiene email registrado.
no usable phone number is known for this customer El canal es SMS, y no se encontró ningún número de teléfono utilizable para el cliente.
the customer is not subscribed to SMS marketing / email marketing La casilla de consentimiento de Entrega está marcada en este paso, y Shopify no tiene al cliente marcado como suscrito en ese canal.
no SMS gateway is connected (Settings → Integrations) El proveedor de SMS no está conectado, o se desconectó después de activar este paso.
Klaviyo is not connected (Settings → Integrations) Lo mismo, para un paso de Klaviyo.
the message shows the reward amount, but this run issued no store credit El mensaje imprime {{ reward.amount }} (o el {{amount}} heredado, o reward.delta / reward.window_total / reward.previous_amount / reward.reversed) en algún punto, y esta ejecución concreta no añadió crédito; así, a un cliente nunca se le dice que ganó «$0.00». Probar reward.amount_value en un {% if %} sin imprimir el importe (como en el ejemplo de Nociones básicas de Liquid) evita esto. Después de un paso Reward Tiers esto nunca se aplica: usa Tier Reward Earned para ramificar; después de un paso Reward Tiers Refund, usa Tier Reward Reduced.
already sent for this event by an earlier attempt Un reintento o un webhook duplicado intentó enviar otra vez el mensaje de ese paso.

Un mensaje también puede fallar: el proveedor lo rechazó, o la plantilla no se pudo renderizar, y el resultado del paso muestra el error que devolvió Gift Card Hero.


Ejemplo de bifurcación

Un patrón habitual recompensa más generosamente los pedidos grandes:

  1. Disparador: Order Complete
  2. Añade una condición: Order Amount is more than 100
  3. En la rama YES, añade Issue Cashback al 10%
  4. En la rama NO, añade Issue Cashback al 5%

Cuando colocas una condición en medio de una cadena existente, los pasos que venían después pasan automáticamente a la rama YES.

Validar y guardar

El botón Save permanece deshabilitado hasta que el flujo sea válido: necesita un nombre, un disparador y al menos un paso.

Al guardar, Gift Card Hero también comprueba los ajustes de cada paso. Si falta un campo obligatorio o un número está fuera de rango (por ejemplo, un porcentaje debe estar entre 0.1 y 100), el editor muestra un banner de error y resalta el campo concreto que hay que corregir. Corrígelo y guarda de nuevo. Lo mismo ocurre con un rango de importes del disparador cuyo importe superior no es mayor que el inferior (ningún pedido podría cumplirlo), con una tabla de Reward Tiers que tenga una fila vacía, en cero, repetida o decreciente, y con una programación que termina antes de empezar.

La primera vez que guardas un flujo nuevo, queda como Draft. Los cambios en un flujo que ya está Active surten efecto en cuanto guardas.

La barra de herramientas

La barra de herramientas del editor: programación, presupuesto, anuncio, estado y botones

A la izquierda: el nombre del flujo, luego Schedule, Budget, Advertise y la insignia de estado (más Unsaved siempre que tengas cambios sin guardar).

  • Schedule: Always on: opcionalmente limita el flujo a un intervalo. Elige una fecha y hora de inicio y de fin (o un preajuste como Next 30 days); deja el fin vacío para que no tenga fin; haz clic en Always on para borrarlo. El flujo recompensa un evento solo si ocurrió dentro del intervalo, así que un pedido hecho antes de la fecha de fin sigue ganando recompensa aunque se procese un poco después. El fin debe ser posterior al inicio. Fuera del intervalo, la insignia dice Scheduled (aún no ha empezado) o Ended.
  • Budget: No cap: un Monthly budget cap para este flujo. Cuando el crédito que ha emitido en el mes natural (UTC) superaría el límite, el flujo deja de emitir crédito y se pausa. Vacío significa sin límite. Un límite para toda la tienda y uno por cliente se configuran en la página Settings de Loyalty; consulta las preguntas frecuentes sobre dinero.
  • Advertise: crea o vincula una promoción de la tienda online; consulta Anunciar la recompensa de un flujo. Está deshabilitado hasta que guardes el flujo.

A la derecha, una vez que el flujo se ha guardado al menos una vez:

Test workflow (simulación)

Antes de activar, o cada vez que cambies un flujo en vivo, simúlalo. No se emite nada ni se envía ningún mensaje, ni por email, ni por SMS, ni por Klaviyo. La prueba ejecuta el lienzo exactamente como está ahora mismo, incluidos los cambios que aún no has guardado. Test workflow aparece cuando el flujo se ha guardado por primera vez.

  1. Haz clic en Test workflow en la barra de herramientas.
  2. Elige con quién probar. New customer es el valor por defecto: un comprador nuevo sin etiquetas, sin nivel y sin gasto. Elige Existing customer para escribir un Email; Gift Card Hero busca al cliente, muestra una insignia verde con su nombre, nivel y número de pedidos, y rellena sus etiquetas, nivel y gasto reales.
  3. Rellena el pedido. El diálogo muestra solo los campos que tu flujo lee realmente: una línea arriba, «This workflow checks…», los enumera. Subtotal siempre aparece para los disparadores de pedido; los demás (Customer tags, Tier, Lifetime spent, Treat as this customer's first order, Order total, Discount, Products) aparecen cuando una condición los necesita. Todo lo demás está en More options. Cuando un disparador o un paso Reward Tiers trabaja con importes de productos, dale también a cada producto de muestra un Price.
  4. Haz clic en Run test en la barra de título del diálogo.

Resultado de Test workflow (simulación)

El resultado enumera las comprobaciones que hizo el flujo (y si cada una tomó la rama YES o NO), y después lo que haría cada acción. Un paso Send Message muestra lo que enviaría y a quién (enmascarado); consulta Cuando un mensaje no se envía para el texto cuando no saldría. Un recuadro verde en la parte inferior muestra el crédito que recibiría el cliente; si no hay ninguno, dice No credit would be issued y por qué. Si el propio filtro del disparador no coincidiría (por ejemplo, el pedido está por debajo de tu importe mínimo), la prueba dice Workflow would not run y el motivo.

Simular clientes «como si»

Cambia los campos Tier, Treat as this customer's first order o Lifetime spent para probar como si un cliente estuviera en cierto nivel, en su primer pedido o con cierto gasto, sin necesidad de un cliente real que ya cumpla esas condiciones.

Una prueba también respeta tus límites de gasto: si un límite bloquearía la recompensa, la prueba muestra que quedó bloqueada.

Activar, desactivar y estado

Un flujo tiene uno de tres estados que tú eliges, mostrados como insignia:

  • Draft: nuevo y todavía no en marcha.
  • Active: en vivo y ejecutándose con eventos reales.
  • Inactive: guardado pero pausado.

Otras dos etiquetas se calculan a partir de la programación y los límites: Scheduled y Ended (consulta La barra de herramientas), y Paused by guardrail en la lista de flujos cuando un límite de presupuesto detuvo el flujo. Una pausa por límite aparece como Inactive en el editor, con un banner Paused by guardrail que explica qué límite se alcanzó y tiene un botón Reactivate; reactivar no sube el límite, así que el flujo puede volver a pausarse.

Haz clic en Activate para encender un flujo, o en Deactivate para pausarlo. Guarda antes tus cambios: Activate actúa sobre el flujo guardado. Activar y desactivar puede tardar un momento, porque Gift Card Hero conecta (o desconecta) el evento de Shopify que hay detrás.

Activate se rechaza, con el problema indicado en el paso, cuando:

  • un paso necesita datos que el disparador no tiene (por ejemplo, Add Order Tag / Note con Customer Signup);
  • un paso Reward Tiers Refund no tiene un flujo Reward Tiers que leer, o tiene varios y ninguno elegido;
  • un paso Send Message usa un canal o remitente que no está conectado (consulta Enviar un mensaje).

Desactivar un flujo con pedidos en curso

Un pedido puede seguir en camino por un flujo: en cola para procesarse, o esperando en un paso Wait / Delay. Cuando haces clic en Deactivate y hay algunos pendientes, Gift Card Hero los lista (pedido, cliente y «waiting N min» o «continues in 3 days») y pregunta:

  • Turn off, finish these: la opción por defecto. Los pedidos listados siguen recibiendo las recompensas de este flujo.
  • Turn off and cancel these: esos pedidos nunca recibirán las recompensas de este flujo. Esto no se puede deshacer.

Desactivar un flujo mientras aún se procesan pedidos

Si elegiste terminarlos, un flujo Inactive sigue mostrando un banner mientras queden algunos, con Cancel them (tras una confirmación) y Refresh. Los pedidos ya procesados no se ven afectados en ningún caso.

Performance

Performance sustituye el panel de configuración por un resumen de cómo se ha ejecutado el flujo. Cambia entre 7d, 30d, 90d y All. Muestra Runs (y cuántas ejecuciones llegaron a una acción), Customers rewarded, Net credit (emitido, menos el crédito retirado por reembolsos, menos el crédito caducado), Orders rewarded y dos estimaciones: Credit spent (la parte del crédito emitido que los clientes ya han usado) y Revenue de los pedidos que lo usaron; además de un gráfico de ejecuciones por día. Si un límite de gasto bloqueó recompensas, un banner lo indica, con detalles y enlaces a los pedidos.

El panel Performance

Results on canvas añade los recuentos a los propios pasos. Para las cifras de todos los flujos, consulta Analíticas de Loyalty.

Eliminar

El icono de papelera elimina el flujo de forma permanente tras confirmar. Si está activo, primero se desconectan sus eventos de Shopify. Los pedidos que siguen en curso se cancelan; la confirmación indica cuántos son. Una promoción vinculada al flujo pasa a ser un borrador y deja de mostrarse, pero se mantiene en tu lista de promociones. Esto no se puede deshacer. También puedes seleccionar varios flujos en la lista Loyalty Workflows y usar Delete workflows.

Anunciar la recompensa de un flujo

Crear un flujo no avisa a nadie por sí solo. Haz clic en Advertise en la barra de herramientas (una vez guardado el flujo y sin cambios sin guardar) para crear o vincular una promoción: una tarjeta emergente de aviso y/o un banner en tu tienda online, con las cifras de recompensa tomadas en directo del flujo. Solo se pueden anunciar flujos que emiten crédito o cashback. Consulta El widget de Promociones.