Faça contas, formate valores e leia JSON em um fluxo
As fórmulas FLOW para contas, formatação de números e datas e textos, todos os formatos que elas aceitam, e as duas formas de tirar um valor de uma resposta em JSON.
As fórmulas deixam um fluxo calcular coisas na hora. Uma tela de orçamento pode multiplicar um preço mensal por doze, mostrar um número do jeito que o seu país escreve ou mostrar uma data de um agendamento. Escreva-as direto em qualquer texto que aceite variáveis.
As variáveis são preenchidas primeiro e as fórmulas são calculadas por último, então uma fórmula pode usar qualquer variável. Quando uma fórmula está dentro de outra, a de dentro vem primeiro:
Seu total anual é R$ FLOW.FORMATNUMBER(FLOW.CALCULATE($MONTHLY * 12, 2), DECIMALNOUS)
#FLOW.CALCULATE
FLOW.CALCULATE(expressão, casas decimais) faz uma conta.
| Entrada | Resultado |
|---|---|
FLOW.CALCULATE(19.90 * 3, 2) |
59.70 |
FLOW.CALCULATE($PRICE * $QTY + 15, 2) |
O preço vezes a quantidade, mais 15 |
FLOW.CALCULATE(10 / 4) |
2 |
FLOW.CALCULATE(10 / 4, 0) |
3 |
- Ela entende
+,-,*e/. Multiplicação e divisão vêm antes de soma e subtração. - Os decimais são escritos com ponto, como
19.90. - Sem parênteses e sem números negativos. Qualquer outra coisa, inclusive
uma letra perdida, dá
0. - Casas decimais arredonda o resultado. Sem esse valor, as casas decimais
são cortadas, então
2.5vira2.
#FLOW.FORMATNUMBER
FLOW.FORMATNUMBER(número, formato) escreve um número do jeito que os seus
leitores esperam. Para 1234.567:
| Formato | Resultado |
|---|---|
DECIMALUS |
1,234.57 |
DECIMALNOUS |
1.234,57 |
DECIMALUSNOTHOUSANDS |
1234.57 |
DECIMALNOUSNOTHOUSANDS |
1234,57 |
NUMBERUS |
1,235 |
NUMBERNOUS |
1.235 |
INTEGER |
1235 |
- Sem formato, ou com um formato que não está na lista, você recebe
DECIMALUS. - Não existe formato de moeda. Digite o símbolo você mesmo:
R$ FLOW.FORMATNUMBER($TOTAL, DECIMALNOUS). - O Tayon lê o primeiro número do valor e ignora os outros caracteres. Um valor
sem nenhum número dá
0.
#FLOW.FORMATDATE
FLOW.FORMATDATE(data, formato, us) reescreve uma data e hora.
A entrada precisa ser uma data seguida de uma hora, como 25/12/2026 15:30 ou
12/25/2026 3:30pm.
- A data pode usar
/ou-. Sem o ano, vale o ano atual. - A hora pode ser
15,15:30,3pmou3:30pm. A hora é obrigatória. Uma data sozinha não é entendida. - us diz como ler a data:
TRUE(o padrão) para mês primeiro,FALSEpara dia primeiro. Para datas no formato brasileiro, useFALSE. - Datas escritas com o ano primeiro, como
2026-12-25, não são entendidas.
Para FLOW.FORMATDATE(12/25/2026 3:30pm, formato):
| Formato | Resultado |
|---|---|
TIMESTAMP (o padrão) |
2026-12-25T15:30:00 |
SQLDATETIME |
2026-12-25 15:30:00 |
SQLDATE |
2026-12-25 |
SQLTIME |
15:30:00 |
DATEUS |
12/25/2026 |
DATENOUS |
25/12/2026 |
DAY / MONTH / YEAR |
25 / 12 / 2026 |
HOUR / MINUTE |
15 / 30 |
Uma entrada com o dia primeiro precisa do terceiro valor:
FLOW.FORMATDATE(25/12/2026 15:30, DATENOUS, FALSE) dá 25/12/2026.
Quando a entrada não pode ser lida, a fórmula mostra Invalid date format seguido da entrada. Um formato escrito errado mostra Invalid output format.
#FLOW.SUBSTRING e FLOW.REPLACE
| Fórmula | O que faz | Exemplo |
|---|---|---|
FLOW.SUBSTRING(texto, início, fim) |
Pega parte de um texto. A contagem começa em 0, e o caractere na posição fim não entra. Sem fim, vai até o final. |
FLOW.SUBSTRING(ABCDEF, 0, 3) dá ABC |
FLOW.REPLACE(texto, procurar, substituir) |
Troca cada procurar por substituir. | FLOW.REPLACE($PHONE, -, .) transforma 555-0100 em 555.0100 |
FLOW.REPLACE precisa dos três valores. Ela não consegue trocar um texto por
nada.
#Ler um valor de uma resposta em JSON
Quando uma Chamada API/Webhook com Tipo de Retorno em Resposta JSON
guarda a resposta sob um identificador, você pode mostrar valores isolados
dela. Imagine que a resposta guardada como CUSTOMER seja:
{"name": "Maya", "address": {"city": "Lisboa"}, "orders": [{"id": "A1"}, {"id": "B2"}]}
Há duas formas de chegar lá dentro.
#Colchetes depois do identificador
Coloque o caminho em um único par de colchetes, com : entre os passos.
| Você escreve | Você recebe |
|---|---|
$CUSTOMER[name] |
Maya |
$CUSTOMER[address:city] |
Lisboa |
$CUSTOMER[orders:0:id] |
A1. As posições em uma lista começam em 0. |
Quando a resposta inteira é uma lista, acrescente a posição depois do caminho,
contando a partir de 1: $RESULTS[name][2] é o nome do segundo item. A
posição pode ser uma variável: $RESULTS[name][$CHOICE].
#A fórmula JSON()
JSON() coloca cada passo nos seus próprios colchetes, e as posições começam em
0.
| Você escreve | Você recebe |
|---|---|
JSON($CUSTOMER[address][city]) |
Lisboa |
JSON($CUSTOMER[orders][1][id]) |
B2 |
JSON() também funciona no lado esquerdo de uma condição de divisão, como em
JSON($CUSTOMER[address][city]) = Lisboa.
#Quando o valor não aparece
- Os nomes precisam conferir exatamente, inclusive maiúsculas:
[City]não encontracity. - Um caminho que não leva a lugar nenhum não mostra nada na forma com
colchetes, e mostra
nullemJSON(). - As duas formas só funcionam quando a resposta guardada é um objeto JSON, ou uma lista de objetos.
- Use uma forma por campo. Quando um texto contém
JSON(, a forma com colchetes no mesmo texto não é preenchida.
Atualizado: