Expresiones
Dentro de {{ ... }} puedes hacer algo más que insertar un valor: calcular, comparar o elegir un texto según una condición:
{{ $edad >= 18 ? "¡Bienvenido!" : "Acceso a partir de los 18 años" }}
10 % de descuento: {{ $precio * 0.9 }} €
{{ upper(first_name) ~ ", ¡hola!" }}
De qué se compone una expresión
| Qué | Cómo se escribe | Ejemplo |
|---|---|---|
| Variable del contacto | $nombre |
$ciudad |
| Variable con espacios en el nombre | var("nombre") |
var("Nombre del cliente") |
| Datos del contacto | nombre sin $ |
first_name, phone |
| Variable global | global("nombre") |
global("Tasa (USD)") |
| Texto | entre comillas "..." o '...' |
"Buenas tardes" |
| Número | dígitos, la parte decimal después de un punto | 10, 0.9 |
| Booleano | true, false |
|
| Valor vacío | null |
|
| Función | nombre(argumentos) |
round($precio, 2) |
Dentro de las comillas no se sustituye nada: {{ "precio $a" }} muestra precio $a.
Aritmética
| Operador | Operación | Ejemplo | Resultado |
|---|---|---|---|
+ |
suma | {{ 2 + 3 }} |
5 |
- |
resta | {{ 10 - 4 }} |
6 |
* |
multiplicación | {{ 3 * 4 }} |
12 |
/ |
división | {{ 10 / 4 }} |
2.5 |
% |
resto | {{ 10 % 3 }} |
1 |
** |
potencia | {{ 2 ** 10 }} |
1024 |
Los paréntesis cambian el orden de las operaciones: {{ ($precio + $envio) * 2 }}.
Los decimales se muestran sin dígitos de más: {{ 0.1 + 0.2 }} da 0.3. Para redondear, usa round; para dar formato con separadores, usa number_format.
Comparaciones
| Operador | Significado |
|---|---|
== |
igual |
!= |
distinto |
>, >= |
mayor que, mayor o igual que |
<, <= |
menor que, menor o igual que |
Si los dos lados son números, aunque estén escritos como texto (como los valores de las variables), se comparan como números: "10" > 9 es verdadero.
Una comparación sola muestra true o false: {{ $edad >= 18 }}.
Lógica
| Operador | Significado |
|---|---|
and o && |
y |
or o || |
o |
not o ! |
no |
{{ $edad >= 18 and $ciudad == "Madrid" ? "Visita nuestra oficina" : "Trabajamos online" }}
Condición
condición ? si_sí : si_no elige una de dos opciones:
{{ $puntos >= 100 ? "Has ganado un regalo" : "Te faltan " ~ (100 - $puntos) ~ " puntos para el regalo" }}
La forma corta valor ?: alternativa muestra el valor si no está vacío y, si lo está, la alternativa:
¡Hola, {{ first_name ?: "amigo" }}!
Alternativa para datos que faltan
valor ?? alternativa: si no hay ningún valor (el contacto no tiene teléfono, la variable no está definida), se inserta la alternativa:
Teléfono: {{ phone ?? "no indicado" }}
Trabajar con texto
| Operador | Operación | Ejemplo |
|---|---|---|
~ |
unir texto | {{ first_name ~ " " ~ last_name }} |
contains |
contiene | {{ $respuesta contains "sí" ? "¡Genial!" : "Qué pena" }} |
starts with |
empieza por | {{ phone starts with "+34" ? "España" : "Otro país" }} |
ends with |
termina en | {{ email ends with "@gmail.com" }} |
in |
está en una lista | {{ $ciudad in ["Madrid", "Barcelona"] ? "Hay envío a domicilio" : "Solo recogida" }} |
not in |
no está en una lista | {{ $plan not in ["pro", "business"] }} |
contains, starts with y ends with distinguen entre mayúsculas y minúsculas. Para ignorarlas, convierte el texto a un mismo tipo de letra: {{ lower($respuesta) contains "sí" }}.
Funciones dentro de las expresiones
Las funciones se pueden anidar y combinar con operadores:
{{ capitalize(lower(var("Nombre del cliente"))) }}
{{ round(($precio + $envio) * 0.9, 2) }}
{{ number_format(global("Tasa (USD)") * $total, 2) }} $
Consulta la lista completa en la referencia de funciones.
Qué no se puede hacer
Las expresiones no tienen bucles, ni asignaciones, ni acceso a los datos internos de la plataforma: solo los operadores y las funciones de la referencia. Más detalles en Errores y límites.