Skip to Content
Automatizaciones

Condiciones, interruptores y retrasos

Haz que un flujo se bifurque con Si / si no y Según el valor, que espere, que consulte registros, que recorra listas y que pida una decisión

Última actualización el

Con los pasos del grupo Lógica decides hacia qué lado va un flujo y cuándo: el "si" y el "espera un momento". Un ejemplo: si la factura sigue abierta pasada una semana, crea una tarea. Estos pasos dirigen las acciones posteriores. Solo Pedir una decisión crea algo por sí mismo, una tarea.

PasoQué haceSalidas
Si / si noSe bifurca según condicionesSí, No
Según el valorElige una rama según el valor de un campoUna por rama y Predeterminado
RetrasoEspera un tiempo fijo o hasta una fechaSiguiente
¿Abierto ahora?Comprueba si ahora estás abiertoAbierto, Cerrado
Esperar a la aperturaEspera hasta la próxima hora de aperturaSiguiente
Esperar al cierreEspera hasta la próxima hora de cierreSiguiente
Como máximo una vez por periodoEvita repeticionesContinuar, Ya ejecutado
Consultar un registroObtiene un registro con su idEncontrada, No encontrada
Para cadaEjecuta los pasos posteriores por cada elemento de una listaPara cada, Hecho
Esperar hastaEspera hasta que se cumplan condicionesCumplido, Tiempo agotado
Esperar un eventoEspera hasta que ocurra algo en TillorRecibido, Tiempo agotado, a veces Eliminado
Pedir una decisiónDeja que un compañero elija entre tus opcionesUna por opción y Tiempo agotado

Si / si no

Divide el flujo en dos caminos según los datos. Es el mismo principio que el filtro Solo cuando del disparador, pero ahora en mitad del flujo.

El paso tiene dos salidas: Sí (se cumplen las condiciones) y No (no se cumplen).

  1. Añade un paso Si / si no
  2. En Condiciones, haz clic en Añadir condición
  3. Elige el campo con el botón Variable, o escribe tú mismo la ruta, por ejemplo invoice.paymentStatus
  4. Elige la comparación (es, no es, contiene, es mayor que, es menor que, es uno de, está vacío o no está vacío) y rellena el valor
  5. Conecta la salida Sí y, si quieres, No a un paso siguiente

Un paso Si / si no necesita al menos una condición. Si no, Tillor avisa Añade una condición. Con varias condiciones eliges entre Deben cumplirse todas y Basta con que se cumpla una. Las comparaciones funcionan como se describe en Solo cuando.

No tienes que conectar las dos salidas. Si una salida no lleva a ningún sitio, la ejecución termina ahí. Un flujo que solo hace algo con Sí es, por tanto, perfectamente válido.

También puedes usar campos de pasos anteriores. Después de una Solicitud API puedes mirar, por ejemplo, response.status o response.data.paymentStatus.

Según el valor

Elige Según el valor cuando necesites más de dos caminos. El paso mira el valor de un campo y elige la rama que le corresponde.

  1. En Campo, elige el campo que quieres mirar, por ejemplo occupation.occupationType
  2. En Ramas, haz clic en Añadir rama. Rellena la Rama (el nombre que aparecerá en la salida) e Igual a (el valor que debe tener el campo)
  3. Repite esto para cada rama
  4. Conecta cada salida a un paso siguiente

Cada rama tiene su propia salida bajo el paso. Además, siempre hay una salida Predeterminado. Se usa cuando ninguna rama encaja.

  • El campo debe coincidir exactamente con el valor, incluidas las mayúsculas
  • Si encajan varias ramas, gana la primera de la lista
  • Una rama sin valor en Igual a no cuenta
  • Puedes configurar como máximo 8 ramas, además de Predeterminado
  • Si el campo está vacío o no existe, el flujo sigue por Predeterminado

Los valores de los campos de selección están en la notación de Tillor. Una ocupación del tipo caravana de alquiler tiene, por ejemplo, el valor RENTAL_CARAVAN, y una factura pagada PAID.

La lista de Campo muestra los campos del evento y de pasos anteriores. Los campos de la respuesta de una solicitud API solo aparecen en la lista cuando Tillor conoce un ejemplo de esa respuesta. Consulta Usar una respuesta de API.

Retraso

Con Retraso haces que el flujo espere antes de continuar. Lo usas para cosas como volver a mirar una semana después.

En Esperar eliges una de dos formas.

Un tiempo fijo

Elige Durante un tiempo fijo y rellena en Duración una cantidad y una unidad: segundos, minutos, horas, días o semanas. Los segundos no son exactos. El flujo puede continuar unos segundos más tarde.

Un retraso de 0 no hace nada, por eso Tillor avisa Un retraso de 0 no hace nada.

Hasta una fecha

Elige Hasta una fecha cuando el tiempo de espera dependa de una fecha de los datos, como la fecha de vencimiento de una factura o la fecha de fin de una reserva.

CampoQué rellenas
FechaUn campo con una fecha, por ejemplo invoice.dueDate. La lista solo muestra campos que son una fecha
Respecto a esa fechaAntes o Después
DesfaseCuánto tiempo antes o después de esa fecha, en minutos, horas, días o semanas. Con 0 el flujo continúa exactamente en esa fecha

Ejemplos:

  • Fecha invoice.dueDate, Después, Desfase 1 día: el flujo continúa un día después de la fecha de vencimiento
  • Fecha reservation.checkIn, Antes, Desfase 2 días: el flujo continúa dos días antes de la llegada

Si ese momento ya está en el pasado, o la fecha está vacía, el flujo continúa de inmediato.

Qué ocurre durante la espera

  • La ejecución recibe el estado En espera. En la pestaña Ejecuciones aparece cuándo continúa (Continúa …). Las esperas largas, como semanas, no son un problema
  • Tras el retraso, Tillor vuelve a leer los datos, de modo que los pasos posteriores vean la situación actual. Consulta más abajo
  • Si pausas la automatización durante la espera, la ejecución se detiene en cuanto pasa el tiempo de espera. No continúa y recibe el estado Cancelada. Si activas la automatización antes de que pase el tiempo de espera, la ejecución continúa con normalidad
  • Si eliminas la automatización, las ejecuciones en espera se detienen
  • Si modificas el flujo mientras una ejecución espera, esa ejecución termina con el flujo tal como era cuando se inició

Los datos se vuelven a leer

Una ejecución recuerda los datos del momento del evento, pero vuelve a leer los registros asociados antes de continuar. Son el registro del evento (por ejemplo la factura) y los registros a los que este hace referencia (por ejemplo el cliente).

Un ejemplo: una automatización envía un recordatorio de una factura, espera 7 días y luego comprueba con Si / si no si invoice.paymentStatus no es PAID. Si la factura se ha pagado en esa semana, la condición ve la factura pagada y el flujo sigue por No.

Hay dos excepciones:

  • Si el registro ya no existe, por ejemplo porque se ha eliminado una ocupación, la ejecución conserva la copia del momento del evento
  • Los datos que produjo un paso anterior, como la respuesta de una solicitud API, no se vuelven a obtener. Si quieres esos datos actualizados tras un retraso, haz una nueva solicitud API

En una prueba no se vuelve a leer nada

Una ejecución de prueba omite los retrasos y trabaja con los datos de ejemplo que rellenas tú. Lo que ocurre tras un retraso real solo lo ves en una ejecución real.

¿Abierto ahora?

Comprueba si tu organización está abierta en este momento y divide el flujo en Abierto y Cerrado. No hay nada que configurar. Tillor usa el horario de Ajustes > Horario de apertura, con periodos de temporada, festivos y excepciones. Consulta Ajustes de la organización.

Úsalo, por ejemplo, para enviar otro texto o crear una tarea fuera del horario de apertura. Si prefieres esperar hasta que vuelvas a estar abierto, usa Esperar a la apertura. Si quieres esperar hasta que cierres, usa Esperar al cierre.

Esperar a la apertura

Pausa el flujo hasta la próxima hora de apertura y luego continúa. ¿Tu organización ya está abierta? Entonces el flujo continúa de inmediato. No hay nada que configurar.

  • La hora de apertura procede de Ajustes > Horario de apertura, en la zona horaria de tu organización
  • Si en el próximo mes no hay ninguna hora de apertura, el flujo continúa de inmediato en lugar de seguir esperando
  • Durante la espera, la ejecución recibe el estado En espera. Lo que ocurre entonces está en Retraso

Esperar al cierre

Pausa el flujo hasta la próxima hora de cierre y luego continúa. ¿Tu organización ya está cerrada? Entonces el flujo continúa de inmediato. No hay nada que configurar.

  • La hora de cierre procede de Ajustes > Horario de apertura, en la zona horaria de tu organización
  • Los bloques que se suceden, como 9:00–12:00 y 12:00–17:00, cuentan como un solo tramo. El flujo espera hasta el final de ese tramo
  • Durante la espera, la ejecución recibe el estado En espera. Lo que ocurre entonces está en Retraso

Como máximo una vez por periodo

Deja pasar el flujo solo si no ha pasado por este paso para el mismo registro dentro del periodo. Así no envías a un cliente el mismo recordatorio todos los días.

CampoQué rellenas
PeriodoCuánto tiempo cuentan las ejecuciones anteriores, en minutos, horas, días o semanas. Por defecto 1 día
PorSobre qué cuentas. Vacío significa por el registro con el que se inició el flujo, como la factura o la reserva. Rellena una variable, por ejemplo {customer.id}, para contar por cliente o por parcela

El paso tiene dos salidas: Continuar si el flujo no ha pasado por él en el periodo, y Ya ejecutado si sí lo ha hecho. Conecta Ya ejecutado a otro paso, o déjala vacía para que la ejecución termine ahí.

Ten en cuenta lo siguiente:

  • Solo cuentan las ejecuciones de la misma automatización, y solo si pasaron por este paso a través de Continuar
  • Si no conectas Eliminado a nada, Tillor detiene los flujos en espera de ese registro y elimina las tareas que creó el flujo y que solo el flujo podía completar. Si conectas la salida, el flujo continúa por ahí
  • Si el flujo se inicia sin registro, por ejemplo con Cada día a una hora, rellena tú mismo una variable en Por. Sin ese valor cada ejecución es nueva y el paso no detiene nada
  • La ejecución que está en marcha ahora no cuenta

Un ejemplo: Periodo 7 días y Por {invoice.customerId} deja pasar como máximo un recordatorio por semana y cliente, aunque ese cliente tenga varias facturas vencidas.

Consultar un registro

Carga un registro a partir de su id, de modo que los pasos posteriores puedan usar sus campos. Es útil cuando el evento solo aporta un id, como el mensaje de una conversación de la bandeja de entrada.

CampoQué rellenas
Tipo de registroCliente, Reserva, Ocupación, Factura, Pago, Parcela, Tarea, Documento, Método de acceso, Etiqueta NFC, Contador, Conversación de la bandeja de entrada o Mensaje de la bandeja de entrada. Por defecto Mensaje de la bandeja de entrada
IDEl id del registro, por ejemplo {messageId}. Obligatorio

El paso tiene dos salidas: Encontrada y No encontrada. Si el registro no existe o el id está vacío, el flujo sigue por No encontrada.

Tras Encontrada, los campos del registro están en variables que empiezan por found y luego el tipo: {foundCustomer.firstName}, {foundInvoice.displayId}, {foundReservation.checkIn}, {foundTerrain.name}, {foundInboxMessage.direction}. Los demás tipos se llaman foundOccupation, foundPayment, foundTask, foundAccessMethod, foundNfcTag, foundMeter y foundInboxThread. También se incluyen los registros a los que hace referencia, un nivel más abajo, como {foundReservation.customer.firstName}. Todo está en la lista detrás del botón Variable.

Una segunda consulta del mismo tipo sustituye a la primera. Ojo con Tarea: usa el mismo nombre foundTask que Buscar tarea, y gana la última de las dos. Lo mismo vale para Documento y foundDocument de Buscar documento.

Asignar variables

Copia valores a nuevos nombres de variable, para que los pasos posteriores puedan usar una única forma. Es útil cuando un mismo flujo se inicia con Webhook entrante ({body.…}) y con Factura vencida ({invoice.…}).

CampoQué rellenas
AsignacionesFilas con Variable destino (p. ej. invoice) y Fuente (p. ej. {foundInvoice} o {body.invoiceId})

El paso tiene una salida: Siguiente. Si la fuente es exactamente una variable entre llaves, por ejemplo {foundInvoice}, Tillor copia todo el registro (objeto). Si no, Tillor rellena la fuente como texto, como Factura {foundInvoice.displayId} en meta.label.

Prueba típica con webhook: Webhook entrante → Consultar un registro (Factura, id {body.invoiceId}) → Asignar variables (invoice ← {foundInvoice}) → las mismas condiciones y aprobación que con el disparador por programación.

Ejecutar código

Ejecuta un trozo de TypeScript sobre las variables del flujo y guarda lo que devuelve como nueva variable. Sirve para lógica que no cabe en campos y condiciones: qué subtareas hacen falta, calcular un importe o una fecha, transformar el cuerpo de un webhook.

CampoQué rellenas
CódigoTypeScript. Las variables se escriben como en los textos, con llaves: {customer.firstName} se lee como valor, no se rellena como texto. Termina con return. Obligatorio
Variable de salidaEl nombre con el que los pasos posteriores leen el resultado, como result (entonces {result}) o result.names. Por defecto result

El paso tiene una salida: Siguiente. Así funciona:

  • El código solo ve las variables que menciona. Una variable que el flujo no tiene es null; una fecha llega como texto (2026-07-01T10:00:00.000Z)
  • Los formatos y desplazamientos de fecha ({bedrag|currency}, {datum + 1 day}) no funcionan aquí: calcúlalos en el código
  • Devuelve una lista, un texto, un número o un objeto. Un objeto se lee después campo a campo: {result.total}
  • El código no puede obtener ni enviar nada: sin internet, sin base de datos. Solo calcula. Si calcula demasiado tiempo (más de 50 ms), se interrumpe
  • Si el código lanza un error, la ejecución se detiene con ese error y el número de línea. Los ves en la pestaña Ejecuciones
  • A la derecha del código ves enseguida lo que devuelve con el ejemplo; al probar, se ejecuta también

Un ejemplo: tras la salida quieres subtareas que dependen de la parcela. Pon un paso Ejecutar código con:

const tasks = ["Plaats vegen", "Sanitair"];
if ({occupation.terrain.metadata.gasMeterNumber}) tasks.push("Gasmeterstand noteren");
return tasks;

Después, en Crear tarea, rellena el campo Subtareas solo con {result}: cada texto de la lista se convierte en una subtarea.

Para cada

Ejecuta los pasos posteriores a Para cada una vez por cada elemento de una lista, por ejemplo por cada factura abierta de un cliente. El propio flujo continúa por Hecho.

CampoQué rellenas
ListaMétodos de acceso de un cliente, Etiquetas NFC de un cliente, Facturas abiertas de un cliente, Reservas confirmadas de un cliente, Ocupaciones de un cliente, Documentos de un cliente (solo activos) o Contadores de una parcela. Por defecto Métodos de acceso de un cliente
DeEl cliente o la parcela de la que quieres la lista, por ejemplo {customer.id} o {occupation.terrainId}. Obligatorio

El paso tiene dos salidas con significado propio:

  • Para cada lleva a los pasos que quieres hacer por cada elemento
  • Hecho es por donde continúa el propio flujo

Así funciona:

  • Cada elemento recibe su propia ejecución, que recorre los pasos posteriores a Para cada hasta el final de esa rama. Las ves en la pestaña Ejecuciones, que solo muestra las últimas 20
  • El elemento está en la variable item, por ejemplo {item.id}. Las variables del evento y de pasos anteriores siguen disponibles
  • El flujo no espera a que terminen los elementos. Nada más iniciarlos, continúa por Hecho. Por eso no puedes usar el resultado de un elemento en los pasos posteriores a Hecho
  • Se procesan como máximo 100 elementos, los más antiguos primero. Si hay más en la lista, los demás no se procesan
  • Si la lista está vacía o el campo De está vacío, no se inicia nada y el flujo continúa de inmediato por Hecho
  • Facturas abiertas de un cliente son facturas contabilizadas de las que aún queda algo pendiente. Reservas confirmadas de un cliente son reservas con el estado Reservada

Un ejemplo: una factura vence y quieres crear un enlace de pago por cada factura abierta de ese cliente. Elige Facturas abiertas de un cliente, rellena {invoice.customerId} en De y pon detrás de Para cada un paso Crear enlace de pago con {item.id} como factura.

Esperar hasta

Comprueba condiciones una y otra vez hasta que se cumplen, o se detiene pasado un tiempo. Úsalo cuando no sepas cuándo ocurrirá algo pero sí qué esperas, por ejemplo hasta que una factura esté pagada.

CampoQué rellenas
HastaUna o varias condiciones, igual que en Si / si no
Comprobar cadaCada cuánto vuelve a mirar Tillor, en minutos, horas, días o semanas. Mínimo 5 minutos. Por defecto 1 hora
Dejar de esperar trasCuánto espera el paso como máximo. Por defecto 7 días

El paso tiene dos salidas: Cumplido (se cumplen las condiciones) y Tiempo agotado (ha pasado el tiempo de espera sin que se cumplieran).

Ten en cuenta lo siguiente:

  • La primera comprobación se hace de inmediato. Si las condiciones ya se cumplen, el flujo continúa directamente por Cumplido. Si no has rellenado ninguna condición, siempre se cumple
  • En cada comprobación, Tillor vuelve a leer los registros del evento, como en un retraso. Una condición como invoice.paymentStatus es PAID ve, por tanto, el pago en cuanto existe
  • Un intervalo inferior a 5 minutos pasa a ser de 5 minutos
  • Durante la espera, la ejecución recibe el estado En espera. Para pausar y modificar el flujo vale lo mismo que en Retraso

Esperar un evento

Pausa el flujo hasta que ocurra algo en Tillor, por ejemplo que la factura se haya pagado.

CampoQué rellenas
EventoLo que esperas. La misma lista que en el disparador. Obligatorio
Solo para el mismo registroContinúa solo si el evento trata del registro con el que se inició el flujo. Activado por defecto
Dejar de esperar trasCuánto espera el paso como máximo. Por defecto 7 días

El paso tiene dos salidas: Recibido (llegó el evento) y Tiempo agotado (ha pasado el tiempo de espera sin evento). Si Solo para el mismo registro está activado, se añade una tercera salida, Eliminado. Úsala cuando se eliminó el registro del flujo mientras este esperaba.

Ten en cuenta lo siguiente:

  • Con Solo para el mismo registro activado cuenta, por ejemplo, solo el pago de la factura con la que se inició el flujo. Si lo desactivas, cualquier evento de ese tipo hace que el flujo continúe
  • Si no conectas Eliminado a nada, Tillor detiene los flujos en espera de ese registro y elimina las tareas que creó el flujo y que solo el flujo podía completar. Si conectas la salida, el flujo continúa por ahí
  • Si el flujo se inicia sin registro, por ejemplo con Cada día a una hora, cuenta cualquier evento de ese tipo
  • Un evento causado por un paso de una automatización también cuenta. Los flujos en espera continúan, por tanto, también con el trabajo de Flujo de trabajo
  • Tras Recibido, los datos del evento que esperabas están en las variables, sin el compañero que lo causó. Si esperas invoice:paid, {invoice.paymentStatus} te da después el nuevo estado
  • Durante la espera, la ejecución recibe el estado En espera. Para pausar y modificar el flujo vale lo mismo que en Retraso

Pedir una decisión

Crea una tarea con botones que defines tú y espera a que alguien elija un botón. Así incorporas un momento en el que una persona revisa, por ejemplo antes de que el flujo bloquee a un cliente o contabilice una factura. Cada opción es un botón de la tarea y una salida del paso.

CampoQué rellenas
Título de la tareaEl título de la tarea. Obligatorio
DescripciónExplica a tu compañero qué debe decidir
OpcionesLos botones de la tarea. Consulta más abajo. Al menos una
Asignar aElige uno o varios compañeros
Asignar a gruposElige uno o varios grupos
Vincular aLos registros en los que aparece la tarea, como el cliente o la factura. Rellenado de antemano con los registros que se conocen en este paso
Dejar de esperar trasCuánto espera el paso como máximo. Por defecto 3 días

Configurar las opciones

  1. En Opciones, haz clic en Añadir opción y rellena el nombre, por ejemplo Aprobar. Ese nombre aparece en el botón y en la salida
  2. Haz clic en el cuadrito de color a la izquierda del nombre (Icono y color) para elegir un color y un icono. El icono no es obligatorio
  3. Activa Pedir una nota si el compañero debe indicar un motivo con esta elección
  4. Activa Pedir confirmación si el compañero debe confirmar primero. Entonces rellenas un Título de confirmación y un Mensaje de confirmación y eliges en Gravedad entre Info, Advertencia o Destructivo. En estos textos puedes usar variables
  5. Repite esto para cada opción. Puedes crear como máximo 8 opciones

Si la lista aún está vacía, el botón Aprobar / Rechazar prepara de inmediato dos opciones: un Aprobar verde y un Rechazar rojo. Cada opción necesita un nombre; si no, Tillor avisa Cada opción necesita un nombre. Sin opciones, Tillor avisa Añade al menos una opción.

Salidas

El paso tiene una salida por opción, con el nombre y el color de esa opción, y además siempre Tiempo agotado.

SalidaCuándo
El nombre de una opciónAlguien eligió ese botón en la tarea
Tiempo agotadoHa pasado el tiempo de espera sin elección, o se eliminó la tarea

Ten en cuenta lo siguiente:

  • Los botones están en la tarjeta de la tarea, en la lista de tareas y en la propia tarea. Una tarea así no tiene casilla: no puedes completarla sin más, solo elegir un botón. Tras la elección, la tarea queda en Completada y se indica qué opción se eligió. Consulta Tareas con botones de elección
  • Puede elegir quien tenga asignada la tarea, también mediante un grupo, y los administradores. Si no asignas a nadie, puede elegir cualquiera que vea la tarea
  • La tarea recibe prioridad Alta. Aparece a nombre de Flujo de trabajo
  • Si se elimina la tarea antes de que alguien elija, el flujo continúa por Tiempo agotado. Tras Tiempo agotado por el tiempo de espera, la tarea sigue existiendo
  • Los pasos posteriores pueden usar {approvalTask.id}, {approval.decision}, {approval.label}, {approval.note} y {approval.decidedBy.name}. {approval.label} es el nombre de la opción elegida y {approval.note} la nota que rellenó el compañero
  • Durante la espera, la ejecución recibe el estado En espera. Para pausar y modificar el flujo vale lo mismo que en Retraso

En una prueba eliges tú la salida

Una ejecución de prueba no puede saber si estás abierto, qué decide un compañero ni si un registro existe. Por eso, bajo ¿Qué ocurre en estos pasos? eliges tú la salida de ¿Abierto ahora?, Como máximo una vez por periodo, Consultar un registro, Para cada, Esperar hasta, Esperar un evento y Pedir una decisión. En Para cada, la prueba sigue por la salida que elijas, Para cada o Hecho, no por las dos.

¿Qué ocurre después?

  • Una salida que no conectas hace que la ejecución termine ahí.
  • En un paso de espera, la ejecución recibe el estado En espera y continúa más tarde. Una automatización pausada detiene las ejecuciones en espera en cuanto pasa el tiempo de espera.
  • Tras un tiempo de espera, Tillor vuelve a leer los datos, de modo que los pasos vean la situación actual.

¿Problemas?

¿Te ha resultado útil esta página?

En esta página