Fórmulas
Las fórmulas son el lenguaje de cálculo integrado de GetMyBot. Con ellas puedes calcular el importe de un descuento, construir una cadena de texto, evaluar una condición, transformar una lista o una fecha — directamente en el texto de un mensaje, en la acción «Cálculo» y en las condiciones de la tabla de decisiones. La sintaxis es similar a las fórmulas de hojas de cálculo y admite nombres de funciones en ruso.
Dónde funcionan las fórmulas
- En el texto — la construcción
{{= expresión}}evalúa la expresión e inserta el resultado. Por ejemplo,{{= ROUND(param.total * 0.9) }}. - Acción «Cálculo» (
compute) — calcula la expresión y guarda el resultado enctx(campo «Guardar en ctx») y/o en un parámetro del suscriptor (campo «Guardar en parámetro»). - Tabla de decisiones — en la acción «Cálculo», en lugar de una única expresión, puedes definir una lista de reglas «cuando → entonces»: se devuelve el valor de la primera regla cuya condición sea verdadera; de lo contrario, el valor por defecto.
Sintaxis
- Operadores: aritmética
+ - * / %, comparaciones== != < > <= >=, lógica&& || !, paréntesis( ). - Literales: números (
42,3.14), cadenas entre comillas ("hola"), booleanos (true,false). - Referencias a datos: dentro de la expresión puedes acceder a parámetros y valores del contexto por nombre —
param.total,ctx.items,recipient.email. - Llamada a función:
NOMBRE(argumento1, argumento2). Los nombres no distinguen mayúsculas de minúsculas y admiten alias en ruso.
Funciones
Los nombres se dan en la forma canónica (inglesa); entre paréntesis el alias en ruso, si existe. El uso de mayúsculas y minúsculas es indiferente.
Matemáticas
SUM, AVERAGE, MAX, MIN, MOD, POW, SQRT, PI, ROUND, CEIL, FLOOR, TRUNC, ABS, RANDBETWEEN.
Texto
LEN, LEFT, RIGHT, MID, LOWER, UPPER, UPPERFIRST, REPEAT, CONCAT, SUBSTITUTE, FIND, SEARCH, FIELD, TRIM, LTRIM, RTRIM, PADLEFT, PADRIGHT, SPLIT, JOIN, STARTSWITH, ENDSWITH, CONTAINS, NL.
Lógica
IF, AND, OR, NOT, EMPTY, ISNUMBER, COALESCE.
Listas
SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA, COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.
Fecha y hora
TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.
JSON
TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.
Criptografía y codificación
HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.
Parámetros
PARAMID, PARAMREPLACE, PARAMREMOVE.
Ejemplos
- Descuento del 10% sobre el importe:
{{= ROUND(param.total * 0.9) }}. - Condición:
{{= IF(param.total > 1000, "mayorista", "minorista") }}. - Construcción de cadena:
{{= CONCAT("Pedido №", ctx.order_id) }}. - Tamaño de lista:
{{= COUNTA(ctx.items) }}.
Test de fórmula
En el editor de la acción «Cálculo» hay un botón de verificación: introduces la expresión y los datos de ejemplo, y la plataforma devuelve el resultado resaltando los errores de sintaxis — sin salir del constructor. Muy útil para depurar fórmulas largas antes de guardar la reacción.
Qué sigue
- Sustituciones y fórmulas — variables
{{...}}, contextoctxy parámetros. - Acciones — la acción «Cálculo» y las tablas de decisiones.
- Mensajes y botones — fórmulas en textos y plantillas de botones.
- Colecciones y datos — los datos sobre los que operan las fórmulas.