Formules
Les formules constituent le langage de calcul intégré de GetMyBot. Elles permettent de calculer une remise, de composer une chaîne, de vérifier une condition, de transformer une liste ou une date — directement dans le texte d'un message, dans l'action « Calcul » et dans les conditions d'un tableau de décision. La syntaxe est proche des formules de tableur et prend en charge les noms de fonctions en russe.
Où les formules fonctionnent
- Dans le texte — la construction
{{= expression}}évalue l'expression et substitue le résultat. Par exemple,{{= ROUND(param.total * 0.9) }}. - Action « Calcul » (
compute) — évalue l'expression et enregistre le résultat dansctx(champ « Enregistrer dans ctx ») et/ou dans un paramètre d'abonné (champ « Enregistrer dans le paramètre »). - Tableau de décision — dans l'action « Calcul », au lieu d'une seule expression, vous pouvez définir une liste de règles « quand → alors » : la valeur de la première règle dont la condition est vraie est renvoyée, ou la valeur par défaut sinon.
Syntaxe
- Opérateurs : arithmétique
+ - * / %, comparaisons== != < > <= >=, logique&& || !, parenthèses( ). - Littéraux : nombres (
42,3.14), chaînes entre guillemets ("bonjour"), booléens (true,false). - Références aux données : dans une expression, vous pouvez accéder aux paramètres et aux valeurs du contexte par leur nom —
param.total,ctx.items,recipient.email. - Appel de fonction :
NOM(argument1, argument2). Les noms ne sont pas sensibles à la casse et reconnaissent les alias russes.
Fonctions
Les noms sont donnés sous leur forme canonique (anglaise). Les noms de fonctions ne sont pas sensibles à la casse.
Mathématiques
SUM, AVERAGE, MAX, MIN, MOD, POW, SQRT, PI, ROUND, CEIL, FLOOR, TRUNC, ABS, RANDBETWEEN.
Texte
LEN, LEFT, RIGHT, MID, LOWER, UPPER, UPPERFIRST, REPEAT, CONCAT, SUBSTITUTE, FIND, SEARCH, FIELD, TRIM, LTRIM, RTRIM, PADLEFT, PADRIGHT, SPLIT, JOIN, STARTSWITH, ENDSWITH, CONTAINS, NL.
Logique
IF, AND, OR, NOT, EMPTY, ISNUMBER, COALESCE.
Listes
SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA, COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.
Date et heure
TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.
JSON
TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.
Cryptographie et encodage
HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.
Paramètres
PARAMID, PARAMREPLACE, PARAMREMOVE.
Exemples
- Remise de 10 % sur le montant :
{{= ROUND(param.total * 0.9) }}. - Condition :
{{= IF(param.total > 1000, "gros", "détail") }}. - Composition de chaîne :
{{= CONCAT("Commande n°", ctx.order_id) }}. - Taille d'une liste :
{{= COUNTA(ctx.items) }}.
Test de formule
Dans l'éditeur de l'action « Calcul », un bouton de vérification est disponible : saisissez une expression et des données de test, et la plateforme renvoie le résultat en mettant en évidence les erreurs de syntaxe — sans quitter le constructeur. Pratique pour déboguer des formules longues avant d'enregistrer une réaction.
Pour aller plus loin
- Substitutions et formules — variables
{{...}}, contextectxet paramètres. - Actions — action « Calcul » et tableaux de décision.
- Messages et boutons — formules dans les textes et templates de boutons.
- Collections et données — données sur lesquelles les formules opèrent.