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 dans ctx (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