Saltar al contenido principal

Referencia de condiciones

Una condición acota qué instancias de un evento de disparador activan realmente la Regla. Los disparadores responden al qué ("el miembro hizo una compra"); las condiciones responden al cuál ("…solo cuando el total de la cesta supera 20 €, en la sucursal del centro"). Cada condición es una fila con tres ranuras (un campo, un operador y un valor) y las condiciones se combinan con AND.

Esta página es una referencia de sintaxis: cubre la anatomía de la fila, los operadores disponibles para cada tipo de campo, cómo se combinan las condiciones y los dos lugares del asistente donde aparecen las condiciones. La lista de qué campos expone cada disparador vive en la referencia de Disparadores, una página por tema.

Dónde aparecen las condiciones

Las condiciones aparecen en dos lugares en el asistente de Regla, con sintaxis idéntica en ambos:

  • Paso 2 — Cuándo → Condiciones. Condiciones a nivel de Regla. La lista de campos es específica del disparador elegido: un disparador de compra expone campos de cesta/sucursal/pago, un disparador de canjeo de cupón expone campos relacionados con el cupón, etc. Algunos disparadores (Gasto total actualizado, Visita actualizada) no exponen ningún campo de condición: el evento en sí es el filtro completo.
  • Paso 3 — Acciones → dentro de un caso. Cuando activas Dividir en varios casos, cada caso tiene su propia fila de Condición que decide si ese caso se ejecuta. Las condiciones de caso pueden llegar a atributos a nivel de miembro (etiquetas, saldos, contadores de actividad, indicadores de consentimiento) además de los campos a nivel de evento del paso 2: la lista exacta depende del disparador. Consulta Dividir en varios casos para el modelo de caso.

Ambos lugares usan la misma forma de fila y el mismo catálogo de operadores. La diferencia es el alcance: las condiciones del paso 2 controlan toda la Regla; las condiciones del paso 3 controlan una rama de ella.

La sección de Condiciones en el paso 2 con una sola fila: campo "Total amount of basket", operador "is greater than or equal to", valor "€ 50.00"

Anatomía de una fila de condición

Cada condición es una fila con tres controles que se leen de izquierda a derecha:

  1. Campo: aquello por lo que estás filtrando. La lista la define el disparador (en el paso 2) o el contexto del editor de caso (en el paso 3).
  2. Operador: cómo se compara el valor del campo con el tuyo. Los operadores disponibles dependen del tipo del campo: un campo numérico ofrece comparadores numéricos, un campo de conjunto de elementos ofrece operadores de conjunto, un campo enum ofrece operadores de pertenencia, etc.
  3. Valor: con lo que estás comparando. La forma de este control sigue al campo y al operador: una entrada numérica, un selector de elementos múltiple, una fecha o rango de fechas, un desplegable de valores enum, texto libre.

Añadir otra fila de condición añade otro filtro, no otra rama; consulta Combinar condiciones más abajo.

Campos, operadores y valores

Los tres controles en una fila de condición trabajan juntos, y el desplegable de operador se adapta al campo que elegiste. Un campo numérico como Total amount of basket ofrece comparadores numéricos (mayor que, menor que, entre, etc.). Un campo de conjunto de elementos como Basket items ofrece operadores de pertenencia/cantidad ("contiene al menos N de…"). Un campo enum como Branch o Payment method ofrece "es uno de" / "no es uno de" para que puedas listar varios valores en una sola fila. Un campo de fecha ofrece comparaciones de tiempo absolutas y relativas. El control de valor a la derecha sigue lo mismo: una entrada numérica, un selector de elementos, un desplegable múltiple, un selector de fecha.

No necesitas memorizar una tabla de operadores: elige el campo primero, y la interfaz te muestra los operadores y el control de valor que encajan con él. Lo que importa es saber qué tipos de campo existen para que puedas elegir el campo adecuado para el filtro que tienes en mente, y las propias etiquetas de campo suelen dejar claro el tipo (…amount… es un número, …items es un conjunto de elementos, …ID o …type es un enum, …name es texto libre, …date es una fecha).

Las condiciones de caso llegan más lejos que las del paso 2

Dentro de un caso del paso 3, la lista de campos suele incluir atributos a nivel de miembro: cosas como etiquetas, saldo de puntos, saldo de créditos, indicadores de consentimiento, gasto total o número de visitas, además de los campos a nivel de evento disponibles en el paso 2. Así es como filtras por quién es el miembro, no solo por qué acaba de pasar. La lista exacta depende del disparador; abre el desplegable de campo en un caso para ver lo que hay disponible.

Combinar condiciones

Las condiciones añadidas a la misma sección de Condiciones se combinan con AND: cada condición debe cumplirse para que la Regla (o el caso) se active. Una Regla de compra con dos condiciones (Total amount of basket ≥ 20 € y Branch = Centro) se activa solo en cestas de 20 € o más en la sucursal del centro. No se activa en una cesta de 20 € en otra sucursal, ni en una cesta de 5 € en el centro.

Para la lógica "se activa cuando X O Y", divide la Regla en varios casos en su lugar; consulta la siguiente sección.

Cuando necesitas OR: usa casos

Si la lógica que quieres es "se activa cuando X O Y", la forma estándar de modelar eso es dividir la Regla en varios casos en el paso 3. Cada caso tiene su propia fila de Condición, y los casos se evalúan de arriba abajo: el primer caso coincidente se ejecuta. Una Regla que debería dar un cupón del 10 % a o bien miembros VIP o bien miembros de la organización asociada se convierte en dos casos: uno con etiqueta = VIP, otro con etiqueta = miembro-asociado, cada uno con su propia acción Añadir descuento.

Consulta Dividir en varios casos para el modelo de caso completo.

Disparadores sin condiciones

No todos los disparadores tienen sección de Condiciones. Gasto total actualizado y Visita actualizada no exponen campos de condición en el paso 2: el evento en sí es el filtro completo. Si necesitas acotar esos (p. ej. activar solo cuando el gasto de por vida del miembro supera 500 €, o solo en la 10ª visita), usa un caso en el paso 3 con una condición a nivel de miembro en lugar de intentar controlarlo en el paso 2.

Esto es un recurso general: cualquier cosa que no puedas decir con los campos integrados del disparador, intenta expresarla en una condición de caso.

Cosas a tener en cuenta

4 cosas que confunden a menudo
  • Los campos dependen del disparador. Una condición escrita en la columna de Realiza una compra no sobrevivirá si cambias el disparador a Canjea un código de cupón. El asistente avisa antes de borrar, pero es fácil descartarlo. Elige primero el disparador, configura las condiciones después.
  • La sensibilidad a mayúsculas importa para las cadenas de texto libre. Las etiquetas y otro texto libre se almacenan tal cual se escriben, así que Gold y GOLD son coincidencias distintas. Apégate a una convención de nomenclatura cuando las crees para que las condiciones coincidan de forma fiable después.
  • Los campos ausentes nunca coinciden. Si el evento de disparador no lleva un campo (p. ej. una compra anónima no tiene etiqueta de miembro), una condición sobre ese campo se evalúa como no coincidente en lugar de pasar o lanzar error. Las Reglas que dependen de campos opcionales necesitan o un valor por defecto seguro o un caso que maneje la ruta "desconocida".
  • Las condiciones no se encolan. Una condición se evalúa en el momento del disparador contra el estado de entonces. Una condición sobre etiqueta = gran-comprador solo se activa si el miembro ya estaba etiquetado cuando llegó el evento del disparador, no cuando se le etiqueta unos minutos después por otra Regla. Si necesitas "haz X una vez que se aplique la etiqueta", dispara la Regla descendente con Etiquetado en lugar de controlarlo con una condición de etiqueta.