Fórmulas
Fórmulas são a linguagem de cálculo integrada do GetMyBot. Com elas você pode calcular um desconto, montar uma string, verificar uma condição, transformar uma lista ou uma data — diretamente no texto de uma mensagem, na ação "Cálculo" e nas condições da tabela de decisão. A sintaxe é próxima às fórmulas de planilhas e suporta nomes de funções em russo.
Onde as fórmulas funcionam
- No texto — a construção
{{= expressão}}avalia a expressão e substitui o resultado. Por exemplo,{{= ROUND(param.total * 0.9) }}. - Ação "Cálculo" (
compute) — avalia a expressão e salva o resultado emctx(campo "Salvar em ctx") e/ou em um parâmetro do assinante (campo "Salvar em parâmetro"). - Tabela de decisão — na ação "Cálculo", em vez de uma única expressão, você pode definir uma lista de regras "quando → então": o valor da primeira regra cuja condição for verdadeira é retornado; caso contrário, o valor padrão é usado.
Sintaxe
- Operadores: aritmética
+ - * / %, comparações== != < > <= >=, lógica&& || !, parênteses( ). - Literais: números (
42,3.14), strings entre aspas ("olá"), booleanos (true,false). - Referências a dados: dentro de uma expressão você pode acessar parâmetros e valores do contexto pelo nome —
param.total,ctx.items,recipient.email. - Chamada de função:
NOME(argumento1, argumento2). Os nomes não diferenciam maiúsculas de minúsculas e aceitam aliases em russo.
Funções
Os nomes estão na forma canônica (inglês); entre parênteses — o alias em russo, quando existir. O uso de maiúsculas é irrelevante.
Matemática
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.
Data e hora
TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.
JSON
TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.
Criptografia e codificação
HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.
Parâmetros
PARAMID, PARAMREPLACE, PARAMREMOVE.
Exemplos
- Desconto de 10% sobre o total:
{{= ROUND(param.total * 0.9) }}. - Condição:
{{= IF(param.total > 1000, "atacado", "varejo") }}. - Montagem de string:
{{= CONCAT("Pedido nº", ctx.order_id) }}. - Tamanho da lista:
{{= COUNTA(ctx.items) }}.
Testador de fórmulas
No editor da ação "Cálculo" há um botão de verificação: você insere a expressão e dados de exemplo, e a plataforma retorna o resultado e destaca erros de sintaxe — sem sair do construtor. Muito útil para depurar fórmulas longas antes de salvar a reação.
Próximos passos
- Substituições e fórmulas — variáveis
{{...}}, contextoctxe parâmetros. - Ações — ação "Cálculo" e tabelas de decisão.
- Mensagens e botões — fórmulas em textos e templates de botões.
- Coleções e dados — dados sobre os quais as fórmulas operam.