Variables y plantillas
Usa datos del evento y de pasos anteriores en títulos, mensajes y solicitudes
Última actualización el
Con las variables creas textos que cambian según el caso. Escribes una variable entre llaves y Tillor rellena el valor real cuando la automatización se ejecuta.
Un ejemplo de título de tarea:
Controleer {occupation.terrain.name}Si la ocupación termina en la parcela 12, la tarea se llamará Controleer 12.
Insertar una variable
Encima de cada campo de texto donde funcionan las variables está el botón Variable. Haz clic y verás una lista con todos los datos disponibles, agrupados por registro. Escribe para buscar (Buscar variables) y haz clic en una línea. Tillor coloca la variable en la posición del cursor.
También puedes escribir una variable tú mismo. Bajo el campo, un recuadro gris muestra cómo queda el texto con datos de ejemplo, para que veas enseguida si es correcto.
Las variables funcionan en campos de texto como títulos, descripciones, subtareas, mensajes, el id de un cliente, factura u otro registro, la ruta o la URL de una solicitud API, el cuerpo, la carga útil de un webhook, el nombre del evento del webhook y los valores de las cabeceras. En los dos últimos falta el botón Variable, pero una variable que escribas tú mismo sí se rellena. Tillor no comprueba errores en esos dos campos y no muestra un ejemplo.
En los campos donde eliges un dato para comparar, escribes la variable sin llaves. Esto vale para Solo cuando, Si / si no y Hasta en Esperar hasta (por ejemplo invoice.status), para el Campo de un Según el valor y para la Fecha de un Retraso.
Qué variables hay
| Variable | Disponible | Contenido |
|---|---|---|
{occupation.…}, {invoice.…}, {task.…}, {reservation.…} y otras | Después de un evento | Los campos del registro del que trata el evento. El nombre del registro es también el comienzo de la variable |
{occupation.terrain.name} | Después de un evento | Campos de los registros a los que se refiere el registro, como el cliente o la parcela. Funciona un nivel en profundidad |
{triggeredBy.name}, {triggeredBy.id} | Siempre | El compañero que provocó el evento. Vacío si lo hizo el sistema |
{invoice.…} | En Factura vencida | Los campos de la factura vencida y del cliente |
{reservation.…}, {task.…} y otras | En Se alcanza una fecha | Los campos del registro cuya fecha se ha alcanzado, más los registros a los que se refiere |
{now}, {today} | Siempre | El momento en que se ejecuta el paso, y la medianoche de ese día en la zona horaria de la organización. Junto con un desplazamiento (más abajo), {today + 1 day} da mañana |
{threadId}, {messageId} | En eventos sobre mensajes de la bandeja de entrada, como inbox:message-created | El id de la conversación y del mensaje |
| Los campos del evento | Después de Esperar un evento, mediante Recibida | Los datos del evento que se esperaba. Sustituyen los datos de los mismos registros del comienzo del flujo |
{createdTask.id}, {createdTask.name} | Después de Crear tarea | La tarea que acaba de crearse |
{foundTask.id}, {foundTask.name}, {foundTask.priority}, {foundTask.status} | Después de Buscar tarea, mediante Encontrada | La tarea que encontró el paso |
{updatedTask.id}, {updatedTask.status} | Después de Definir estado | La tarea cuyo estado se ha cambiado |
{updatedTask.id}, {updatedTask.priority} | Después de Establecer prioridad de tarea | La tarea cuya prioridad se ha cambiado |
{updatedTask.id} | Después de Actualizar tarea | La tarea que se ha modificado |
{foundDocument.id}, {foundDocument.name}, {foundDocument.status}, {foundDocument.userMetadata.documentType}, {foundDocument.userMetadata.insuranceExpiryDate} | Después de Buscar documento, mediante Encontrada | El documento que encontró el paso |
{updatedDocument.id} | Después de Actualizar documento | El documento que se ha modificado |
{response.status}, {response.body}, {response.data.…} | Después de Solicitud API | La respuesta de la solicitud |
{foundCustomer.…}, {foundInvoice.…}, {foundReservation.…} y otras | Después de Consultar un registro, mediante Encontrada | Los campos del registro que encontró el paso, más los registros a los que se refiere. El nombre es found más el tipo de registro: foundCustomer, foundReservation, foundOccupation, foundInvoice, foundPayment, foundTerrain, foundTask, foundDocument, foundAccessMethod, foundNfcTag, foundMeter, foundInboxThread o foundInboxMessage |
{body.…}, {query.…}, {receivedAt} | Después de Webhook entrante | El cuerpo JSON, los parámetros de consulta y la hora de recepción de la llamada del webhook |
| Cada nombre de destino de Asignar variables | Después de Asignar variables | Lo que rellenes como destino en ese paso, por ejemplo {invoice.displayId} tras invoice ← {foundInvoice} |
{item.…} | En los pasos tras Para cada | Los campos del elemento para el que se ejecuta ahora el paso, como {item.id} |
{approvalTask.id}, {approval.decision}, {approval.label}, {approval.note}, {approval.decidedBy.name} | Después de Pedir una decisión, mediante una opción | La tarea, la opción elegida, el nombre de esa opción, la nota y el compañero que eligió |
{task.…}, {action.label}, {note} | En Se elige una acción de tarea | La tarea, el botón elegido y la nota que se rellenó con él |
{createdComment.id} | Después de Añadir un comentario | El comentario que acaba de publicarse |
{bookedInvoice.displayId} | Después de Contabilizar factura, mediante Listo | El número de la factura contabilizada |
{paymentLink.url} | Después de Crear enlace de pago, mediante Listo | El enlace con el que el cliente puede pagar en línea |
{consumptionInvoice.id} | Después de Facturar consumo, mediante Listo | La factura del consumo del contador |
{extendInvoice.id} | Después de Borrador de factura de prórroga | El borrador de factura que prorroga la ocupación |
{createdAccessMethod.id}, {createdAccessMethod.value} | Después de Crear método de acceso | El nuevo método de acceso y su valor, como el código de un código QR o un PIN |
{error.message}, {error.step} | Después de una acción con Continuar si este paso falla, mediante Error | El mensaje de error y el nombre del paso que falló |
Qué campos tiene exactamente un registro lo ves en la lista tras el botón Variable. En el disparador también está el resumen Datos que proporciona este evento.
Solo lo que viene antes en el flujo
Un paso solo puede usar variables del disparador que lo alcanza y de pasos que estén antes en el mismo camino. Si varios disparadores alcanzan el mismo paso, solo están disponibles las variables que proporciona cada uno de esos disparadores. Un campo de un paso anterior cuenta si cada uno de esos disparadores también pasa por ese paso. Si usas una variable que no existe en ese punto, Tillor muestra [Campo]: [variable] no está disponible en este paso. Un flujo con un aviso así no se puede activar.
Algunos registros guardan datos adicionales en un solo campo, como los datos del documento en userMetadata. Cada clave bajo él es una variable: {document.userMetadata.documentType}, {document.userMetadata.insuranceExpiryDate} u otra clave. Las claves conocidas, como el tipo y la fecha de vencimiento de un documento, también están en la lista y puedes compararlas como fecha. Una fecha sin hora, como 2026-10-07, aparece en un mensaje como 07-10-2026.
Las variables de Para cada ({item.…}) solo existen en los pasos tras la salida Para cada, no tras Listo. Las variables de una salida que no tomaste tampoco existen: {paymentLink.url} solo está si el paso pasó por Listo, y {foundTask.id} solo después de Encontrada.
En eventos cuyos datos no están descritos, Tillor no puede comprobar qué variables existen. Entonces no recibes ese aviso. Comprueba, por tanto, esos flujos con especial cuidado con una ejecución de prueba.
Un valor nuevo sustituye al anterior
Una segunda Solicitud API en el mismo flujo sustituye el response de la primera. Lo mismo vale para createdTask tras una segunda Crear tarea, para foundTask tras una segunda Buscar tarea o Consultar un registro sobre Tarea, y para error tras un segundo paso fallido. Usa, por tanto, los datos de una respuesta en el paso que viene justo después.
Cómo se rellenan los valores
Tillor adapta el formato al tipo de campo.
En texto normal (títulos, descripciones, subtareas):
- Las fechas están en la zona horaria de tu organización, por ejemplo
05-10-2026. Si la hora no cae exactamente en la medianoche, también aparece una hora, como05-10-2026 14:30 - Un campo vacío da un texto vacío
- Una variable que Tillor no conoce se queda tal como la escribiste, por ejemplo
{occupation.terain.name}. Así, una errata se nota enseguida en la tarea o el mensaje - Si no existe un registro vinculado, la variable queda vacía. Una ocupación sin reserva no da nada para
{occupation.reservation.displayId}, y un evento que provocó el sistema no da nada para{triggeredBy.name}. Si en ese caso quieres otro texto, pon delante un Si / si no con está vacío
En JSON (la Carga útil de un webhook y el Cuerpo de una solicitud API):
- El texto se rellena de forma segura. Las comillas, los saltos de línea y otros caracteres especiales del valor no pueden romper el JSON
- Los números y los valores sí/no van sin comillas, así que no pongas comillas alrededor. El texto sí va entre comillas
- Las fechas pasan como fecha y hora internacionales, como
2026-10-05T08:00:00.000Z, para que el sistema receptor pueda manejarlas bien
{
"reservation": "{reservation.displayId}",
"adults": {reservation.numberOfAdults}
}Si el JSON no es válido después de rellenarlo, por ejemplo porque un número está vacío, la ejecución se detiene con un mensaje de error.
En una ruta o URL (en una solicitud API):
- Los valores se convierten para que quepan en una dirección. Un nombre con un espacio no da, por tanto, una dirección rota
- Las fechas también van aquí como fecha y hora internacionales
- Lo que escribes tú mismo se queda como lo escribes. Si quieres un espacio en un término de búsqueda, escribe tú mismo
%20
Desplazar una fecha
Tras una variable de fecha puede ir un desplazamiento: {reservation.checkOut + 1 day}, {today - 2 weeks}, {invoice.dueDate + 3 hours|date}. Las unidades son minutes, hours, days, weeks y months (también vale el singular). Los días y las semanas son duraciones fijas, de modo que una validez dura lo mismo a través del horario de verano e invierno; los meses siguen el calendario, así que el 31 de enero más un mes es el 28 o 29 de febrero. En un valor que no es una fecha, el desplazamiento no hace nada, y una unidad que no existe es un error en el paso. Los campos de fecha como Válido hasta aceptan la misma notación.
Dar formato a un valor
Pon tras la variable un | y un formato, por ejemplo {invoice.amountOutstanding|currency}. Sin formato, un importe aparece sin adornos, como 1295.3. Con |currency pasa a € 1.295,30.
| Formato | Ejemplo | Resultado |
|---|---|---|
currency | {invoice.amountOutstanding|currency} | € 1.295,30 |
currency:USD | {invoice.amountOutstanding|currency:USD} | US$ 1.295,30 |
number | {invoice.amountOutstanding|number} | 1.295,3 |
number:2 | {invoice.amountOutstanding|number:2} | 1.295,30 (número fijo de decimales) |
date | {invoice.dueDate|date} | 30-06-2026 |
datetime | {invoice.createdAt|datetime} | 01-06-2026 16:04 |
time | {invoice.createdAt|time} | 16:04 |
upper / lower | {customer.lastName|upper} | VAN DEN BROECKE |
- Los números e importes aparecen siempre en notación belga: un punto para los millares y una coma para los decimales
- Las fechas y horas están en la zona horaria de tu organización
- Si el formato no puede leer el valor, por ejemplo
|currencysobre texto, el valor aparece simplemente sin formato - Un formato que Tillor no conoce se queda tal como lo escribiste, y el editor muestra un aviso al respecto
- En JSON y en una URL, el valor con formato se rellena como texto. En JSON, pon por tanto comillas alrededor
Usar una respuesta de API
Después de una Solicitud API puedes usar campos de la respuesta con {response.data.…}. La respuesta de una búsqueda de tareas tiene, por ejemplo, este aspecto:
{
"items": [
{ "id": "task_1", "priority": "LOW" }
]
}Entonces {response.data.items.0.id} da el id de la primera tarea (la primera de una lista es el número 0) y {response.data.items.0.priority} su prioridad.
Tillor solo puede ofrecer los campos de una respuesta como variable cuando sabe qué aspecto tiene la respuesta. Puede hacerlo de dos maneras:
- Deja que la automatización se ejecute una vez de verdad. Tillor usa entonces la respuesta de la última ejecución
- Pega un ejemplo en la pestaña Ejecución de prueba, en el campo Ejemplo de respuesta de la API. Ese campo aparece en cuanto el flujo contiene una Solicitud API. Debajo están los Campos de esta respuesta. Haz clic en un campo para copiarlo, con las llaves incluidas
Después, los campos aparecen en la lista tras el botón Variable y en la lista de Campo de un Según el valor.
Si escribes tú mismo una ruta bajo response.data, siempre se acepta, incluso sin ejemplo. Además:
{response.body}contiene los primeros 4000 caracteres de la respuesta. Si la respuesta es más larga, el resto se corta{response.data}está vacío si la respuesta no es JSON o si es muy grande (más de 100.000 caracteres)- En una búsqueda sin resultado,
{response.data.items.0.id}no existe. Un Según el valor sobre ese campo pasa entonces por Predeterminado
Un ejemplo en la prueba
En la pestaña Ejecución de prueba también rellenas los datos de ejemplo del evento. Así ves en la ejecución de prueba qué valores rellenaría Tillor. Consulta Pruebas y ejecuciones.
¿Qué ocurre después?
- En cuanto la automatización se ejecuta, Tillor sustituye cada variable por el valor real. Una variable que Tillor no conoce se queda tal como la escribiste.
- Si un dato está vacío, el lugar queda vacío. Si entonces quieres otro texto, pon delante un Si / si no con está vacío.