Formule
Le formule sono il linguaggio di calcolo integrato di GetMyBot. Con esse puoi calcolare uno sconto, costruire una stringa, verificare una condizione, trasformare un elenco o una data — direttamente nel testo di un messaggio, nell'azione «Calcolo» e nelle condizioni della tabella decisionale. La sintassi è simile a quella dei fogli di calcolo e supporta i nomi delle funzioni in russo.
Dove funzionano le formule
- Nel testo — la costruzione
{{= espressione}}valuta l'espressione e sostituisce il risultato. Ad esempio,{{= ROUND(param.total * 0.9) }}. - Azione «Calcolo» (
compute) — valuta l'espressione e salva il risultato inctx(campo «Salva in ctx») e/o in un parametro dell'iscritto (campo «Salva in parametro»). - Tabella decisionale — nell'azione «Calcolo», al posto di una singola espressione puoi definire un elenco di regole «quando → allora»: viene restituito il valore della prima regola la cui condizione è vera, altrimenti il valore predefinito.
Sintassi
- Operatori: aritmetica
+ - * / %, confronti== != < > <= >=, logica&& || !, parentesi( ). - Letterali: numeri (
42,3.14), stringhe tra virgolette ("ciao"), booleani (true,false). - Riferimenti ai dati: all'interno di un'espressione puoi accedere a parametri e valori del contesto per nome —
param.total,ctx.items,recipient.email. - Chiamata di funzione:
NOME(argomento1, argomento2). I nomi sono case-insensitive e accettano alias in russo.
Funzioni
I nomi canonici sono in inglese (case-insensitive). Il motore accetta anche i nomi equivalenti in russo — utili se utilizzi già formule dalla versione russa dell'interfaccia.
Matematica
SUM, AVERAGE, MAX, MIN, MOD, POW, SQRT, PI, ROUND, CEIL, FLOOR, TRUNC, ABS, RANDBETWEEN.
Testo
LEN, LEFT, RIGHT, MID, LOWER, UPPER, UPPERFIRST, REPEAT, CONCAT, SUBSTITUTE, FIND, SEARCH, FIELD, TRIM, LTRIM, RTRIM, PADLEFT, PADRIGHT, SPLIT, JOIN, STARTSWITH, ENDSWITH, CONTAINS, NL.
Logica
IF, AND, OR, NOT, EMPTY, ISNUMBER, COALESCE.
Liste
SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA, COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.
Data e ora
TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.
JSON
TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.
Crittografia e codifica
HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.
Parametri
PARAMID, PARAMREPLACE, PARAMREMOVE.
Esempi
- Sconto del 10% sull'importo:
{{= ROUND(param.total * 0.9) }}. - Condizione:
{{= IF(param.total > 1000, "ingrosso", "dettaglio") }}. - Costruzione di stringa:
{{= CONCAT("Ordine №", ctx.order_id) }}. - Dimensione della lista:
{{= COUNTA(ctx.items) }}.
Test della formula
Nell'editor dell'azione «Calcolo» c'è un pulsante di verifica: inserisci l'espressione e i dati di esempio, e la piattaforma restituisce il risultato evidenziando gli errori di sintassi — senza uscire dal costruttore. Comodo per il debug di formule complesse prima di salvare la reazione.
Prossimi passi
- Sostituzioni e formule — variabili
{{...}}, contestoctxe parametri. - Azioni — l'azione «Calcolo» e le tabelle decisionali.
- Messaggi e pulsanti — formule nei testi e nei template dei pulsanti.
- Raccolte e dati — i dati su cui operano le formule.