Muy buenas familia, en este primer blog de una serie de muchos que iré publicando por aquí, vamos a empezar con algo sencillo pero que es uno de los 10 mandamientos en cuanto a diseño de nuestros flujos en Power Automate. Que no es ni más ni menos que filtrar los conectores siempre que sea posible, en este caso, nuestro trigger.

Como sabéis Power Automate, tiene un numero limitado de llamadas a acciones en función de la licencia de la que dispongamos, por lo que nuestros flujos deben de estar lo más optimizados posible. Mucho cuidado con las iteraciones, que multiplicamos acciones por número de registros y la podemos liar parda.
En esta ocasión tenemos un flujo que recupera unos datos de un endpoint y recorre esos registros para insertarlos como lead. Al tenerlo cada 30 minutos, se está ejecutando siempre, incluso el fin de semana. Al no haber nadie que atienda dichas entradas no tiene mucho sentido que se lance fuera de horario de oficina.
Normalmente puedes pensar que con poner una condición y preguntar el horario para detenerlo si está fuera de horario, puede ser una opción, pero realmente no es la forma correcta de hacerlo.
Power Automate nos permite filtrar nuestros triggers mediante el Trigger Condition.

Siempre que podamos debemos filtrar nuestros conectores. En este caso, lo que queremos es que se desencadene únicamente en horario laboral, por lo que usaremos el trigger condition para ello.
La expresión que usemos en el trigger condition debe devolver true para que se pueda desencadenar.
Lo primero es obtener la hora actual, por lo que usaremos la función utcNow(). Pero para extraer la hora y en el timezone local convertiremos dicha fecha a fecha local y obtendremos únicamente la hora.
convertFromUtc(utcNow(), 'Romance Standard Time', 'HH')
Podéis consultar la lista disponible de timezones desde la siguiente página
Convertimos a entero:
int(convertFromUtc(utcNow(), 'Romance Standard Time', 'HH'))
Y ahora con greaterOrEquals y leesOrEquals permitimos el rango de horas que queramos, quedando finalmente así
@and(
greaterOrEquals(int(convertFromUtc(utcNow(), 'Romance Standard Time', 'HH')), 8),
lessOrEquals(int(convertFromUtc(utcNow(), 'Romance Standard Time', 'HH')), 18)
)

Y con esto, fuera del horario, el flujo ni si quiera se lanzará evitando así llamadas innecesarias a acciones que impliquen API.
Hasta la próxima