Haz cuentas, da formato a valores y lee JSON en un flujo
Las fórmulas FLOW para cuentas, formato de números y fechas y textos, todos los formatos que aceptan, y las dos formas de sacar un valor de una respuesta en JSON.
Las fórmulas permiten que un flujo calcule cosas en el momento. Una pantalla de presupuesto puede multiplicar un precio mensual por doce, mostrar un número como lo escribe tu país o mostrar una fecha de una reserva. Escríbelas directamente en cualquier texto que acepte variables.
Primero se rellenan las variables y al final se calculan las fórmulas, así que una fórmula puede usar cualquier variable. Cuando una fórmula está dentro de otra, primero se calcula la de dentro:
Tu total anual es FLOW.FORMATNUMBER(FLOW.CALCULATE($MONTHLY * 12, 2), DECIMALNOUS) €
#FLOW.CALCULATE
FLOW.CALCULATE(expresión, decimales) hace una cuenta.
| Entrada | Resultado |
|---|---|
FLOW.CALCULATE(19.90 * 3, 2) |
59.70 |
FLOW.CALCULATE($PRICE * $QTY + 15, 2) |
El precio por la cantidad, más 15 |
FLOW.CALCULATE(10 / 4) |
2 |
FLOW.CALCULATE(10 / 4, 0) |
3 |
- Entiende
+,-,*y/. La multiplicación y la división van antes que la suma y la resta. - Los decimales se escriben con punto, como
19.90. - Sin paréntesis y sin números negativos. Cualquier otra cosa, incluida una
letra suelta, da
0. - Decimales redondea el resultado. Si no lo pones, los decimales se cortan,
así que
2.5se convierte en2.
#FLOW.FORMATNUMBER
FLOW.FORMATNUMBER(número, formato) escribe un número como lo esperan tus
lectores. 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 |
- Sin formato, o con un formato que no está en la lista, obtienes
DECIMALUS. - No hay formato de moneda. Escribe tú el símbolo:
FLOW.FORMATNUMBER($TOTAL, DECIMALNOUS) €o$FLOW.FORMATNUMBER($TOTAL, DECIMALUS). - Tayon lee el primer número del valor e ignora los demás caracteres. Un valor
sin ningún número da
0.
#FLOW.FORMATDATE
FLOW.FORMATDATE(fecha, formato, us) reescribe una fecha y hora.
La entrada tiene que ser una fecha seguida de una hora, como 25/12/2026 15:30
o 12/25/2026 3:30pm.
- La fecha puede usar
/o-. Si falta el año, se usa el año actual. - La hora puede ser
15,15:30,3pmo3:30pm. La hora es obligatoria. Una fecha sola no se entiende. - us indica cómo leer la fecha:
TRUE(el valor por defecto) para el mes primero,FALSEpara el día primero. Para fechas con el día primero, usaFALSE. - Las fechas escritas con el año primero, como
2026-12-25, no se entienden.
Para FLOW.FORMATDATE(12/25/2026 3:30pm, formato):
| Formato | Resultado |
|---|---|
TIMESTAMP (por defecto) |
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 |
Una entrada con el día primero necesita el tercer valor:
FLOW.FORMATDATE(25/12/2026 15:30, DATENOUS, FALSE) da 25/12/2026.
Cuando la entrada no se puede leer, la fórmula muestra Invalid date format seguido de la entrada. Un formato mal escrito muestra Invalid output format.
#FLOW.SUBSTRING y FLOW.REPLACE
| Fórmula | Qué hace | Ejemplo |
|---|---|---|
FLOW.SUBSTRING(texto, inicio, fin) |
Toma parte de un texto. Se cuenta desde 0, y el carácter en la posición fin no se incluye. Sin fin, llega hasta el final. |
FLOW.SUBSTRING(ABCDEF, 0, 3) da ABC |
FLOW.REPLACE(texto, buscar, reemplazar) |
Cambia cada buscar por reemplazar. | FLOW.REPLACE($PHONE, -, .) convierte 555-0100 en 555.0100 |
FLOW.REPLACE necesita los tres valores. No puede cambiar un texto por nada.
#Leer un valor de una respuesta en JSON
Cuando una Llamada API/Webhook con Tipo de Retorno en Respuesta
JSON guarda la respuesta bajo un identificador, puedes mostrar valores sueltos
de ella. Supón que la respuesta guardada como CUSTOMER es:
{"name": "Maya", "address": {"city": "Lisboa"}, "orders": [{"id": "A1"}, {"id": "B2"}]}
Hay dos formas de llegar dentro.
#Corchetes después del identificador
Pon la ruta en un solo par de corchetes, con : entre los pasos.
| Escribes | Obtienes |
|---|---|
$CUSTOMER[name] |
Maya |
$CUSTOMER[address:city] |
Lisboa |
$CUSTOMER[orders:0:id] |
A1. Las posiciones en una lista empiezan en 0. |
Cuando toda la respuesta es una lista, añade la posición después de la ruta,
contando desde 1: $RESULTS[name][2] es el nombre del segundo elemento. La
posición puede ser una variable: $RESULTS[name][$CHOICE].
#La fórmula JSON()
JSON() pone cada paso en sus propios corchetes, y las posiciones empiezan en
0.
| Escribes | Obtienes |
|---|---|
JSON($CUSTOMER[address][city]) |
Lisboa |
JSON($CUSTOMER[orders][1][id]) |
B2 |
JSON() también funciona en el lado izquierdo de una condición de división,
como en JSON($CUSTOMER[address][city]) = Lisboa.
#Cuando el valor no aparece
- Los nombres tienen que coincidir exactamente, mayúsculas incluidas:
[City]no encuentracity. - Una ruta que no lleva a ningún sitio no muestra nada en la forma con
corchetes, y muestra
nullenJSON(). - Las dos formas solo funcionan cuando la respuesta guardada es un objeto JSON, o una lista de objetos.
- Usa una forma por campo. Cuando un texto contiene
JSON(, la forma con corchetes del mismo texto no se rellena.
Actualizado: