Tayon Help

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.5 se convierte en 2.

#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, 3pm o 3: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, FALSE para el día primero. Para fechas con el día primero, usa FALSE.
  • 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 encuentra city.
  • Una ruta que no lleva a ningún sitio no muestra nada en la forma con corchetes, y muestra null en JSON().
  • 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: