¿Qué son las Expresiones?
Una expresión tiene el aspecto de una cadena de cierta sintaxis. Será «ejecutada» en el servidor en un contexto concreto, y el resultado de la ejecución será uno de los dos valores booleanos: verdadero o falso (true / false).
De hecho, una expresión responde a la pregunta: ¿es necesario enviar ahora este correo concreto a este suscriptor concreto?
Para los correos disparadores, tales preguntas, por regla general, están ausentes — siempre hay que enviarlos. Pero para los correos de marketing todo es más complejo. La necesidad del envío depende de qué datos concretos tiene el suscriptor (por ejemplo, un correo con ideas de qué regalar el 8 de marzo es más lógico enviarlo a un público masculino, y no femenino), qué correos recibió antes y cómo interactuó con ellos.
Todas estas reglas complejas (lógica de negocio) se pueden presentar en forma de una secuencia de comprobaciones y comparaciones, cuya ejecución nos llevará a la respuesta «Sí» o «No» — el ya mencionado valor booleano true / false.
En nuestro sistema, tales Expresiones están disponibles en varios lugares y pueden tener un conjunto distinto de variables a las que se puede acceder dentro de la expresión.
Sintaxis básica
Dentro de una expresión se pueden usar distintos tipos de datos:
10— número entero3.14— número decimaltrue— valor booleano truefalse— valor booleano falsenull— valor especial null"Hello"— cadenasubscriber.id— acceso a una propiedad del objeto"World"— otra forma de escribir una cadena["new", "paid", "shipped"]— array de cadenas
Operadores de comparación
==— igual a!=— distinto de<— menor que<=— menor o igual>— mayor que>=— mayor o igual
Operadores matemáticos
+— suma-— resta*— multiplicación/— división
Operadores lógicos
and— Y lógicoor— O lógiconot— negación lógica
También se pueden usar paréntesis para cambiar la prioridad de ejecución, como suele ocurrir en las fórmulas matemáticas: lo que está entre paréntesis se ejecuta primero.
Algunos ejemplos
subscriber.address_country in ["UA", "PL", "NL"] — devolverá true solo en el caso de que el país del suscriptor sea uno de los indicados.
(subscriber.birthday_month == now.format("M")) and (now.format("Y") - subscriber.birthday_year == 18) — el suscriptor cumple años este mes y cumple 18 años.
Variables disponibles
El conjunto de variables disponibles depende del lugar donde se aplica la Expresión.
Variables para la condición de entrada a la campaña de envío de suscriptores desde la base:
time, subscriber, tags, now
Variables para la comprobación de la ejecución de un Evento en la campaña de envío:
time, subscriber, tags, now, url (solo para el evento de clic en un enlace), url_md5 (solo para el evento de clic en un enlace)
Descripción de las variables
- time — número entero, hora actual en formato Unix timestamp
- subscriber — objeto con datos sobre el suscriptor, la descripción detallada de los campos se indica en esta página
- tags — array de cadenas que contiene los tags del suscriptor, por ejemplo
["tag1", "tag2", "tag3"] - now — objeto especial de la hora actual, que tiene el método
format. Por ejemplo,now.format("Y")devolverá el año actual en forma de una cadena de cuatro caracteres - url — enlace HTTP en el que se hizo clic
- url_md5 — cadena MD5, es decir, el valor MD5 del enlace en el que se hizo clic