Preguntar a la IA
Español ES
Ir a CleverApp

Referencia de funciones

Una función se llama así: {{ nombre(argumento1, argumento2) }}. Los argumentos son texto entre comillas, números, variables ($nombre) y, en las expresiones, los resultados de otras funciones.

Las funciones marcadas como simples funcionan en todos los lugares donde funcionan las plantillas. Las demás solo funcionan en los textos de los mensajes, en las condiciones y en la configuración de algunos bloques: consulta Dónde funcionan las plantillas.

Texto

Función Qué hace Ejemplo Resultado
upper(texto) Todas las letras en mayúsculas {{ upper("hola") }} HOLA
lower(texto) Todas las letras en minúsculas {{ lower("HOLA") }} hola
capitalize(texto) La primera letra en mayúscula {{ capitalize("anna") }} Anna
len(texto) Número de caracteres {{ len("Viernes") }} 7
trim(texto) Quita los espacios de los dos extremos {{ trim(" sí ") }} sí
replace(texto, qué, por) Sustituye todas las apariciones {{ replace("8-999-000", "-", "") }} 8999000
substr(texto, inicio, longitud) Una parte del texto; el inicio cuenta desde 0 {{ substr("Viernes", 0, 3) }} Vie
number_format(número, decimales, separador_decimal, separador_de_miles) Un número con separadores. Por defecto: 0 decimales, coma y espacio {{ number_format(1234.5, 2) }} 1 234,50
urlencode(texto) Codifica el texto para un enlace https://site.com/?q={{ urlencode($busqueda) }}
randomText(opción1, opción2, ...) Una opción al azar {{ randomText("Hola", "Buenas") }}
strRandom(longitud, mayúsculas) Una cadena aleatoria de letras y dígitos, de hasta 1000 caracteres. Pasa true como segundo argumento para usar solo mayúsculas {{ strRandom(8, true) }} K3JD8QWZ

Todas las funciones de esta sección son simples.

Matemáticas

Función Qué hace Ejemplo Resultado
round(número, decimales) Redondeo, por defecto a un número entero {{ round(2.567, 2) }} 2.57
ceil(número) Redondea hacia arriba {{ ceil(2.1) }} 3
floor(número) Redondea hacia abajo {{ floor(2.9) }} 2
abs(número) Valor absoluto {{ abs(-5) }} 5
sqrt(número) Raíz cuadrada {{ sqrt(16) }} 4
max(a, b, ...) El mayor {{ max(3, 7, 5) }} 7
min(a, b, ...) El menor {{ min(3, 7, 5) }} 3
rand(desde, hasta) Un número entero aleatorio {{ rand(1, 100) }}

Todas las funciones de esta sección son simples. La suma, la resta, la multiplicación, la división y las potencias se escriben con operadores: consulta Aritmética.

Funciones obsoletas

Estas funciones siguen funcionando, pero en los textos nuevos usa operadores: es más corto y más claro.

Función obsoleta Cómo se escribe ahora
sum($a, $b), сумма($a, $b) {{ $a + $b }}
diff($a, $b), разность($a, $b) {{ $a - $b }}
multiplication($a, $b), произведение($a, $b) {{ $a * $b }}
div($a, $b), деление($a, $b) {{ $a / $b }}
pow($a, $b) {{ $a ** $b }}

Por ejemplo, en lugar de {{ sum($precio, $envio) }} escribe {{ $precio + $envio }}.

Fecha y hora

Advertencia

La hora se calcula en UTC. Si hace falta, añade tu diferencia horaria, por ejemplo para UTC+1: {{ date("H:i", "+1 hour") }}.

Función Qué hace
date(formato, fecha) Una fecha en el formato indicado. Sin fecha, el momento actual. La fecha puede ser "2026-10-02", "+7 days", "next monday", etc.
time() La hora actual en segundos desde 1970 (tiempo Unix)
modifyDateTime(fecha, formato_fecha, formato_salida, desplazamiento) Lee una fecha de una variable según su formato, la desplaza y la muestra en otro formato
modifyUnixTime(tiempo_unix, desplazamiento, formato) Desplaza un tiempo Unix; con formato muestra una fecha y, sin él, el nuevo tiempo Unix

Ejemplos:

Hoy es {{ date("d.m.Y") }}
Nos vemos el {{ date("d.m.Y", "+3 days") }}
Tu cita se ha movido al {{ modifyDateTime($fecha_cita, "d.m.Y", "d.m.Y", "+1 day") }}
Acceso hasta el {{ modifyUnixTime(time(), "+30 days", "d.m.Y") }}

Caracteres de formato principales:

Carácter Significado Ejemplo
d día con cero inicial 02
j día sin cero inicial 2
m mes con cero inicial 10
n mes sin cero inicial 10
Y año 2026
H horas, formato de 24 horas 14
i minutos 05
s segundos 09
N día de la semana, 1 es el lunes 5

El desplazamiento se escribe en inglés: "+1 day", "-2 hours", "+1 month", "next friday".

Todas las funciones de esta sección son simples.

Nota

En flujos antiguos a veces se usa un signo de interrogación como comodín: {{ date("d.m.Y", "+? days", $dias) }}: ? se sustituye por el siguiente argumento. Sigue funcionando, pero en las expresiones es más fácil unir texto: {{ date("d.m.Y", "+" ~ $dias ~ " days") }}.

Condiciones

Función Qué hace
printByCondition(a, operador, b, si_sí, si_no) Compara a y b y muestra una de las opciones. Operadores: =, !=, >, >=, <, <=. Si a o b está vacío, muestra si_no
printByExistsCondition(valor, si_sí, si_no) si_sí si el valor no está vacío y, si lo está, si_no
{{ printByCondition($puntos, ">=", 100, "¡El regalo es tuyo!", "Sigue acumulando") }}
{{ printByExistsCondition($telefono, "Teléfono guardado", "Déjanos tu teléfono") }}

Las dos funciones son simples. En las expresiones es más práctico el operador de condición: {{ $puntos >= 100 ? "¡El regalo es tuyo!" : "Sigue acumulando" }}.

Datos del contacto y del bot

Función Qué hace Simple
var("nombre") El valor de una variable del contacto; útil para nombres con espacios sí
global("nombre") El valor de una variable global sí
printContactTags() Las etiquetas del contacto, separadas por comas sí
printContactVariables() Todas las variables de texto del contacto como lista «- nombre: valor» sí
printGlobalVariables() Todas las variables globales del bot como lista «- nombre: valor» sí
getBalance("moneda", "etiqueta") El saldo de la cuenta del contacto en una moneda, con su símbolo: getBalance("USD"). Con un segundo argumento, un número y tu etiqueta: getBalance("PTS", "puntos") → 150 puntos no
getCartAmount() El total del carrito del bloque antiguo «Carrito de compras» no

Advertencia

printGlobalVariables() muestra todas las variables globales. No la uses en mensajes a los contactos si tus variables globales guardan claves o contraseñas.

Variables

Estas funciones escriben el resultado en una variable del contacto y no muestran nada.

Función Qué hace
setSumVariablesIntoVariable("result", a, b, ...) Guarda la suma en la variable result
setMultiplicationVariablesIntoVariable("result", a, b, ...) Guarda el producto en la variable result

Los términos son números o nombres de variables entre comillas, al menos dos: {{ setSumVariablesIntoVariable("result", "precio", "envio", 100) }}.

Para los cálculos es más cómodo el bloque «Operación con variable», que también admite expresiones.

Listas

Función Qué hace
getListRow("id del registro", "plantilla") Muestra un registro de la lista según una plantilla
getListRows("id de la lista", "plantilla", cuántos, "campo de orden", "asc" o "desc", "separador") Muestra registros de la lista según una plantilla, 10 por defecto y 50 como máximo, cada uno en una línea nueva

En la plantilla, un campo del registro se escribe entre llaves simples: {Nombre}, {Precio}. En getListRows puedes insertar una variable del contacto en la plantilla: {$ciudad}.

{{ getListRows("6523f0c2a1b2c3d4e5f60718", "{Nombre} — {Precio} €", 5, "Precio", "asc") }}

El bot solo lee las listas que pertenecen a su propietario.

Programa de referidos

Función Qué muestra
getInviteLink() El enlace de referido personal del contacto (Telegram, MAX)
getDirectInviteLink(id_flujo) Un enlace directo al bot con un parámetro de referido; con un flujo, un enlace que inicia ese flujo
getInviteLinkWithSchema(id_flujo) Un enlace de referido que inicia un flujo
getLinkBySchema(id_flujo) Un enlace que inicia un flujo, sin parámetro de referido
getReferrals(cuántos, "etiqueta") La lista de contactos invitados por este contacto (primer nivel): «1. Nombre - username», 10 por defecto y 100 como máximo. Con una etiqueta, solo los que la tienen
getReferralsByDepth(nivel, cuántos, "etiqueta") Lo mismo para el nivel indicado
getReferralsCount("etiqueta") El número de invitados en todos los niveles
getReferralsCountByDepth(nivel, "etiqueta") El número de invitados en el nivel indicado; 0, todos los niveles
getReferrer(nivel) Quién invitó al contacto; 2, quién invitó a quien lo invitó, y así sucesivamente
getReferrers(cuántos_niveles, desde_nivel, "etiqueta") La lista de quienes invitaron, subiendo por la cadena

Las funciones de esta sección no son simples. Las variantes obsoletas con Telegram en el nombre (getTelegramInviteLink y otras) funcionan igual.

Textos distintos para cada app de mensajería

El texto dentro de la función solo se muestra a los contactos de esa app de mensajería; el resto ve un espacio vacío:

Función App de mensajería
messageToTelegram("texto") Telegram
messageToViber("texto") Viber
messageToVK("texto") VK
messageToWeb("texto") Chat del sitio web
Escríbenos{{ messageToTelegram(" en Telegram: @example_support") }}{{ messageToWeb(" directamente en este chat") }}

Las funciones de esta sección no son simples. En una expresión, una función de este tipo debe ir sola: no puede estar dentro de una condición ni de otra función.