Documentación: Nodo Condicional Fecha y Hora (DateTime)¶
Descripción General¶
El Nodo Condicional DateTime evalúa condiciones relacionadas con hora, fecha y día de la semana, y bifurca el flujo de la automatización según el resultado final.
Si la evaluación es verdadera, la ejecución continúa por la ruta true; de lo contrario, continúa por la ruta false.
¿Cuándo usar este nodo?¶
Utiliza este nodo cuando necesites:
- Ejecutar acciones solo dentro de un horario (por ejemplo, 09:00–17:00)
- Activar flujos solo ciertos días (laborables, fines de semana, días específicos)
- Aplicar reglas por fecha (antes/después/igual a una fecha)
- Controlar automatizaciones con ventanas de tiempo que cruzan medianoche
Rutas de salida¶
Este nodo tiene dos rutas:
true: se ejecuta cuando el resultado final de la evaluación es verdadero.false: se ejecuta cuando el resultado final de la evaluación es falso.
Configuración del Nodo¶

Paso 1: Configurar la zona horaria (opcional)¶
El campo timezone define la zona horaria IANA usada para evaluar fecha/hora.
- Tipo: string
- Ejemplo:
"America/Mexico_City" - Default:
UTC
Warning
Si timezone es inválida, Validate() falla y Execute() retorna error.
Paso 2: Agregar condiciones (requerido)¶
El campo conditions es un arreglo requerido con la lista de condiciones (mínimo 1).
Cada condición es un objeto con:
id(string, requerido): identificador único (usado por la UI).type(string, requerido): tipo de condición (ver lista abajo).value(depende del tipo): usualmente string.startTime/endTime(solo paratime_range): formatoHH:MM(también aceptaH:MM).
Paso 3: Definir el combinador (opcional)¶
El campo operator combina múltiples condiciones:
- Valores:
AND/OR - Default:
AND
Warning
Si operator viene con otro valor, validateInput() retorna error.
Tipos de condición soportados¶
time_range¶
Verdadero si la hora actual está entre startTime y endTime (incluyente).
- Soporta rangos que cruzan medianoche (ej.
22:00→06:00).
day_of_week¶
Verdadero si el día actual coincide con value.
value: string en inglés, case-insensitive.- Acepta formas como
"Monday"/"Mon","Tuesday"/"Tue"/"Tues", etc.
time_before¶
Verdadero si la hora actual es antes de value (HH:MM).
time_after¶
Verdadero si la hora actual es después de value (HH:MM).
time_equals / exact_time¶
Verdadero si la hora actual (minuto exacto) es igual a value (HH:MM).
is_weekday¶
Verdadero si hoy es Lunes–Viernes.
is_weekend¶
Verdadero si hoy es Sábado o Domingo.
date_equals¶
Verdadero si la fecha actual es igual a value (YYYY-MM-DD).
date_before¶
Verdadero si la fecha actual es antes de value (YYYY-MM-DD).
date_after¶
Verdadero si la fecha actual es después de value (YYYY-MM-DD).
Cómo se evalúan múltiples condiciones¶
- Si
operator = "AND": todas deben dartrue. - Si
operator = "OR": al menos una debe dartrue.
Note
Si una condición da error al evaluarse, se toma como false (y se loggea un warning si hay logger).
Estructura JSON¶
La configuración del nodo genera un JSON con esta forma:
{
"conditions": [
{
"id": "19dfd8e8065",
"type": "time_range",
"startTime": "09:00",
"endTime": "17:00"
}
],
"timezone": "US/Eastern",
"operator": "AND"
}
Campos requeridos¶
conditions(array) con mínimo 1 condición.conditions[].id(string).conditions[].type(string).- Para
time_range:startTimeyendTime. - Para condiciones basadas en
value:value.
Campos opcionales¶
timezone(defaultUTC).operator(defaultAND).
Ejemplos de Uso¶
Ejemplo 1: Horario laboral (time_range)¶
Caso: permitir acciones solo de 09:00 a 17:00 en una zona horaria específica.
{
"conditions": [
{
"id": "cond-1",
"type": "time_range",
"startTime": "09:00",
"endTime": "17:00"
}
],
"timezone": "America/Mexico_City",
"operator": "AND"
}
Ejemplo 2: Ventana nocturna que cruza medianoche¶
Caso: permitir acciones entre 22:00 y 06:00 (incluyente).
{
"conditions": [
{
"id": "cond-1",
"type": "time_range",
"startTime": "22:00",
"endTime": "06:00"
}
],
"timezone": "UTC",
"operator": "AND"
}
Ejemplo 3: Solo fines de semana (is_weekend)¶
{
"conditions": [
{
"id": "cond-1",
"type": "is_weekend"
}
],
"operator": "AND"
}
Ejemplo 4: Lunes y después de las 08:30 (AND)¶
{
"conditions": [
{
"id": "cond-1",
"type": "day_of_week",
"value": "Mon"
},
{
"id": "cond-2",
"type": "time_after",
"value": "08:30"
}
],
"timezone": "America/Bogota",
"operator": "AND"
}
Solución de Problemas¶
Error: zona horaria inválida¶
Causa: timezone no es una zona IANA válida.
Solución: usa una zona horaria IANA (ej. "America/Mexico_City") o elimina timezone para usar UTC.
Error: operador inválido¶
Causa: operator distinto de AND o OR.
Solución: usa únicamente AND o OR, o elimina operator para usar el default (AND).
Condición evaluada como false por error interno¶
Causa: una condición falló al evaluarse (por ejemplo, formato inválido).
Comportamiento: esa condición se toma como false y se registra warning si hay logger.
Mejores Prácticas¶
- Define
timezoneexplícitamente si tu automatización depende de la hora local de un sitio. - Usa
time_rangepara ventanas ytime_before/time_afterpara límites simples. - Para reglas complejas, combina
AND/ORy divide el flujo en más de un nodo condicional si lo necesitas.