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