Ahorra tiempo y errores: automatiza el permiso laboral en tu empresa usando un usuario interno en Power Automate
¿Cansado de perder tiempo gestionando solicitudes de permiso laboral que llegan en diferentes formatos y a través de múltiples plataformas, generando retrasos y confusión tanto para el equipo de Recursos Humanos como para los empleados? Esta situación es más común de lo que parece, y muchas empresas aún enfrentan estos desafíos que afectan la productividad y el ambiente laboral. Sin embargo, no tiene por qué ser así. Gracias a herramientas como Power Automate, es posible transformar este proceso tradicionalmente manual en una experiencia ágil, eficiente y libre de errores.
Permiso laboral eficiente: la clave para una mejor administración
Automatizar la solicitud y aprobación de permisos no solo reduce significativamente la carga administrativa, sino que también mejora la comunicación, la transparencia y la satisfacción de todos los involucrados. En este blog, te mostraremos cómo diseñamos e implementamos un flujo automatizado usando un usuario interno en Power Automate para simplificar la gestión de permisos y vacaciones. Además, descubrirás cómo esta solución puede ayudarte a optimizar recursos, evitar errores y garantizar un proceso estandarizado y confiable para tu equipo.
Ahora que conoces el propósito y alcance del flujo de aprobación de permiso laboral, es momento de mostrarte cómo lo construimos paso a paso usando Power Automate. Esta solución está pensada para ser clara, funcional y replicable en cualquier organización que quiera optimizar sus procesos internos sin recurrir a herramientas complejas o costosas.
A continuación, te explicamos cada componente del flujo, desde la configuración inicial hasta la notificación final, para que puedas entender su lógica y adaptarlo fácilmente a las necesidades de tu empresa.
Paso 1: Creación de usuario con la licencia de Power Automate
Para comenzar, accedemos a Microsoft 365 Admin Center. Una vez dentro del entorno, damos clic en la opción Active Users (Img 1)
Img 1
Posteriormente se debe hacer clic en el botón “Add a user” (Img 2)
Img 2
Al presionar el botón “Add a user”, aparecerá un formulario en el que se deben completar los campos First name, Last name, Display name, User name y seleccionar el dominio que tendrá la cuenta del usuario. Una vez se hayan llenado todos los campos, será necesario hacer clic en el botón »Next» para continuar (Img 3).
Img 3
Ahora toca seleccionar la licencia de Power Automate y luego toca hacer clic en el botón «Next» para continuar (Img 4).
Img 4
Después de eso toca presionar «Next» de nuevo (Img 5)
Img 5
Luego toca dar clic en el botón que dice “Finish adding” (Img 6).
Img 6
Ahora en la siguiente pantalla, se mostraran los detalles del usuario que fue creado y luego de eso toca dar clic en “Close” (Img 7)
Img 7
Paso 2: Creación del flujo
Para comenzar, accedemos a Power Automate usando la cuenta que se creo en el paso anterior y luego de eso toca hacer clic en “Create” y posteriormente en “Automated cloud Flow” (Img 8)
Img 8
Paso 3: Agregar el desencadenador del flujo
Posteriormente se debe añadir un nombre al flujo y seleccionar el desencadenante del flujo, que en este caso será “When a new response is submitted” (Img 9)
Img 9
Paso 4: Seleccionar la conexión
En este caso, es importante tener en cuenta que, al realizar el flujo con una cuenta que únicamente tiene licencia de Power Automate, esta no tendrá acceso a otros servicios de Microsoft. Por lo tanto, cada acción creada en el flujo deberá estar vinculada a una cuenta diferente que cuente con licencias para los demás servicios de Microsoft. Por esta razón, en este caso, realizo la conexión con otra cuenta que sí tiene licencia para usar Microsoft Forms. Para cambiar la conexión toca primero presionar donde dice “Change connection” (Img 10)
Img 10
Luego de eso toca seleccionar la conexión y en caso de no tener ninguna conexión toca hacer clic donde dice “Add new” (Img 11)
Img 11
Y luego toca iniciar sesión con la cuenta que se va usar para las conexiones de este flujo. (Img 12)
Img 12
Paso 5: Seleccionar el formulario
Una vez la conexión esté configurada, toca seleccionar hacer clic en el campo «Form Id» y luego se mostrará la lista de formularios de Microsoft Forms que se hayan creado en la cuenta a la cual está conectada el desencadenador (Img 13)
Img 13
Paso 6: Añadir acción “Get Response Details”
Para continuar con la construcción del flujo, se debe añadir una nueva acción haciendo clic en el icono «+» esto se debe realizar cada vez que se va a añadir una nueva acción (Img 14)
Img 14
En la barra de búsqueda se debe digitar la aplicación a la que pertenece la nueva acción, para este paso será Forms, se debe seleccionar la opción que corresponda (Img 15)
Img 15
Paso 7: Configurar acción Get Response details.
Al igual que con el desencadenador, esta acción necesita una conexión por lo que tendrá que configurarse para que aparezcan los formularios. Después de configurar la conexión es necesario seleccionar el formulario y también seleccionar el Response Id del desencadenador “When a new response is submitted” (Img 16)
Img 16
Paso 8: Creación de la acción Initialize Variable
Ahora toca crear una acción de tipo «Initialize Variable», esta acción servirá para almacenar los archivos adjuntos que estén en el formulario, en el campo Name toca poner un nombre y en el campo Type toca seleccionar la opción “Array” (Img 17)
Img 17
Paso 9: Creación de variables para las fechas
En la barra de búsqueda se debe digitar la acción Initialize variable y toca crear 2 acciones de tipo «string» (Img 18)
Img 18
Toca crear un Initialize variable para la fecha de inicio del permiso (Img 19)
Img 19
Y otra variable para la fecha en que termina el permiso (Img 20)
Img 20
Paso 10: Creación de compose para guardar la referencia de los archivos adjuntos en el formulario.
Ahora toca crear un «Compose» y seleccionar el campo archivo adjunto de la acción «Get Response details» (Img 21)
Img 21
Paso 11: Crear acción para detectar si el formulario tiene archivos adjuntos.
Para detectar si el formulario contiene archivos adjuntos, es necesario crear un «Compose» y usar la siguiente expresión: empty(outputs(‘Check_Attachments’)) (Img 22)
Img 22
Paso 12: Crear condición que detecta si hay archivos adjuntos
Ahora toca crear una condición que va a detectar si en el formulario hay archivos adjuntos. En la condición en el campo que dice «Choose a value», toca poner el output de la acción: CheckIfAttachmentIsEmpty (Img 23)
Img 23
Luego en el dropdown, toca seleccionar la opción “is not equal to” (Img 24)
Img 24
Y finalmente en el campo “choose value” , toca escribir “True” (Img 25)
Img 25
Paso 13: Agregar un Apply to each que recorra la lista de archivos adjuntos que están en el formulario.
Dentro de la condición, es necesario agregar un «Apply to each» (Img 26)
Img 26
En el «Apply to each», toca escribir una expresión que convierte la lista de archivos adjuntos a formato JSON, lo cual facilitará la manipulación de esos archivos en el flujo (Img 27).
Img 27
Paso 14: Añadir acción para obtener los metadatos de un archivo
Ahora toca añadir la acción «Get File Metadata» , la cual obtendrá los metadatos de cada uno de los archivos adjuntos que están en el formulario. Toca escribir la siguiente expresión: ítems?[‘id’] , la cual servirá para obtener los metadatos de cada archivo adjunto. Toca tener en cuenta que como el flujo se esta haciendo desde una cuenta que solo obtiene licencia de Power Automate, es necesario que la conexión de esa acción se haga con una cuenta que tenga licencia para acceder a One Drive (Img 28).
Img 28
Paso 15: Obtener contenido de los archivos
Ahora toca añadir una acción «Get File content», la cual obtendrá el contenido de los archivos adjuntos. En el campo Files se debe seleccionar el Id que obtiene Get file metadata (Img 29).
Img 29
Paso 16: Añadir los archivos adjuntos a la acción Initialize Variable.
Previamente, se había creado una acción Initialize Variable, la cual se encargaría de almacenar los archivos. Esta acción no tenía ningún contenido, ya que la única manera de añadir contenido a un archivo es por medio de un «Apply to each». Sin embargo, esto también limita el uso de cualquier variable, ya que el output de cualquier acción que esté dentro de un bucle no puede usarse fuera de él. En este caso, se debe añadir una acción de tipo «Append to Array Variable» y, en el campo Name, se selecciona la opción que dice «Files» (Img 30).
Img 30
Dentro del campo «Value», toca crear un esquema de tipo JSON en el cual este el nombre y el contenido del archivo. Para obtener el nombre toca obtener el output de la acción “Get file metadata”, toca seleccionar donde dice «Display name» y en Content toca seleccionar el output de «File Content» (Img 31) (Img 32).
Img 31
Img 32
Paso 17: Añadir Compose para que guarde los archivos adjuntos
Ahora toca añadir un «Compose» y en el campo Inputs, toca añadir la acción «Files» (Img 33)
Img 33
Paso 18: Añadir Compose que genere un Guid
Toca añadir un nuevo «Compose» y escribir esta expresión: guid() (Img 34)
Img 34
Paso 19: Añadir información del formulario a un archivo Excel
Ahora es necesario añadir una nueva acción que sea de tipo “Add row into a table”. En esta acción en el campo Location se selecciona One Drive for bussines y en Documents se selecciona “Documentos” (Img 35)
Img 35
En el campo “Table”, es necesario seleccionar la tabla a la que se desea añadir la información que está en el formulario. La tabla debe tener los mismos campos que están en el formulario, y también es necesario que en la tabla haya un campo ID, ya que en ese campo se añadirá el GUID que se creó previamente en un Compose (Img 36).
Img 36
Después de seleccionar la tabla aparecerán todos los campos que hay en la tabla y esos campos toca llenarlos seleccionando los outputs de la acción «Get Response details» (Img 37)
Img 37
Y el campo Id debe tener el Guid que se creó previamente en un Compose (Img 38)
Img 38
Paso 20: Añadir acción para aprobar los permisos
Ahora es necesario añadir la acción «Start and wait for an approval», En el campo «Approval Type» se selecciona la opción «Custom responses» y en el campo Title se escribe el título del permiso usando los outputs de la acción “Add a row into a table”. Y en el campo Response options , se escribe las opciones APROBADA y NO APROBADA (Img 39) (Img 40)
Img 39
Img 40
En el campo «Assigned to», se escribe el correo de la persona la cual va a aprobar o rechazar el permiso. (Img 41)
Img 41
En el campo Requestor, se usa el correo de la persona que llenó el formulario. Este correo se obtiene al seleccionar la opción «Responder’s email», que está en la lista de outputs de «Get Response Details». (Img 42)
Img 42
Y finalmente en el campo «Attachments», se selecciona el output de la acción «Attachments Json». (Img 43) (Img 44)
Img 43
Img 44
Paso 21: Aprobación para detectar si el permiso fue aprobado
Ahora toca añadir una nueva condición, la cual va a detectar si el permiso fue aprobado. En el primer campo toca seleccionar el Outcome de la acción «Start and wait for approval». (Img 45)
Img 45
En el Dropdown se debe seleccionar la opción “is equal to” (Img 46)
Img 46
Y finalmente en el campo “choose value” se debe escribir “APROBADA’ (Img 47)
Img 47
Paso 22: Añadir delay para poder obtener los datos actualizados de un archivo de Excel.
Ahora toca añadir una acción de tipo Delay, esta acción es necesaria debido a que previamente se añadió contenido al archivo Excel en la acción ‘Add a row into a table’. Debido a que se añadió contenido al Excel recientemente, Power Automate seguramente no lo va a detectar, por lo que en el Delay en el campo Count se añade el valor de 90 y en Unit se selecciona la opción que dice ‘Second’ . Esta acción lo que hace es que el flujo espere 90 segundos antes de continuar. (Img 48)

Img 48
Paso 23: Añadir acción append to string variable.
Ahora se va a añadir la fecha de inicio de permiso a la variable StartTime que se creó al principio del flujo. En el campo Name se selecciona StartTime y en value se selecciona la hora del inicio del permiso de la acción “Add a row into a table” (Img 49)
Img 49
Paso 24: Añadir acción «Append to string variable» para guardar la hora del fin de permiso en la variable EndTime
Debe añadirse una acción «Append to string», en el campo Name se selecciona EndTime y en el campo Value se selecciona la hora de fin de permiso de la acción “Add a row into a table” (Img 50)
Img 50
Paso 25: Actualización del archivo de Excel.
Ahora toca añadir una acción de tipo “Update a row” . En el campo Location se selecciona la opción “One Drive for Bussines”, en Document Library se selecciona “Documentos” o el lugar donde este el archivo de Excel. Y en File se selecciona el archivo de Excel que se quiere actualizar. (Img 51)
Img 51
En el campo Key Column se selecciona la propiedad Nombre de la acción “Add a row into a table” (Img 52)
Img 52
Y en Advanced Parameters, en el campo Estatus, se selecciona la propiedad “Outcome” de la acción «Start and wait for an approval». Esta acción actualizara el campo estatus en el archivo de Excel y escribirá en ese campo, que el estatus del permiso está en Aprobado. (Img 53)
Img 53
Paso 26: Añadir Delay para hacer que el flujo le dé tiempo para obtener los datos actualizados del archivo de Excel.
Se añade una acción de Delay al flujo y en el campo “Count” se pone 1 y en el campo Unity se selecciona la opción “Minute” (Img 54)
Img 54
Paso 27: Añadir acción para enviar un correo
Añadimos la acción “Send an Email”. Luego de eso, presionamos el botón que dice “switch to advanced mode” y en el campo «To», seleccionamos la propiedad “Responders Email” (Img 55)
Img 55
En el campo «Subject«, escribe el asunto por el cual se envía el correo. En el campo «Body«, escribimos el mensaje que queremos enviar a la persona que llenó el formulario. En este caso, se le avisara a la persona que lleno el formulario que su permiso fue aprobado. (Img 56)
Img 56
Paso 28: Añadir acción List rows present in a table para obtenerlos la información que se añadió al archivo de Excel.
Se debe añadir una acción de tipo” List rows present in a table” , ya que es necesario obtener esa información para crear un evento en el calendario. En esta acción se selecciona el archivo de Excel y en el campo Filter query se escribe la expresión ID eq y entre comillas se debe poner el output del” compose PermisoID” que se creó previamente en el flujo. Es necesario poner eso en el Filter query para que la acción solo obtenga la información que se agrego en el flujo recientemente. (Img 57)
Img 57
Paso 29: Añadir Apply to each para poder usar la información del output de List rows present in a table.
Se debe añadir una nueva acción Apply to each y en el campo “Select an output from previous steps*” se debe añadir el output de la acción “List rows present in a table.” (Img 58)
Img 58
Paso 30: Añadir Compose para darle formato a la hora de inicio del permiso
Ahora toca añadir un Compose el cual le dará formato a la hora de inicio del permiso. En el campo inputs, toca escribir esta expresión: “formatDateTime(variables(‘Starttime’),’HH:mm:ss’) (Img 59)
Img 59
Paso 31: Añadir Compose para darle formato a la hora en que finaliza el permiso
Ahora toca añadir un Compose el cual le dará formato a la hora en que finaliza el permiso. En el campo inputs, toca escribir esta expresión: “formatDateTime(variables(‘Endtime’),’HH:mm:ss’)” (Img 60)
Img 60
Paso 32: Añadir Compose para darle formato a la fecha en que inicia el permiso
Ahora toca añadir un Compose el cual le dará formato a la fecha en que inicia el permiso. En el campo inputs, toca escribir esta expresión: “concat(addDays(‘1899-12-30’, int(items(‘Apply_to_each_1’)?[‘Fecha Inicio de Permiso’]), ‘yyyy-MM-dd’),’T’,outputs(‘Parse_Start_of_permission’)) (Img 61)
Img 61
Paso 33: Añadir Compose para darle formato a la fecha en que finaliza el permiso
Ahora toca añadir un compose el cual le dará formato a la fecha en que finaliza el permiso. En el campo inputs, toca escribir esta expresión: “concat(addDays(‘1899-12-30’, int(items(‘Apply_to_each_1’)?[‘Fecha Fin de Permiso’]), ‘yyyy-MM-dd’),’T’,outputs(‘Parse_End_of_permission’))” (Img 62)
Img 62
Paso 34: Añadir acción para crear un evento en el calendario
Ahora toca añadir una acción de tipo Create Event, en el campo Calendar ID se selecciona el calendario que en donde se quiere crear el evento. (Img 63)
Img 63
En el campo Subject se selecciona la propiedad “Tipo de permiso” y “Name” (Img 64)
Img 64
Y en el campo StartTime, se selecciona el output de la acción «Permission Start Date» (Img 65)
Img 65
En el campo End time, se selecciona el output de la acción «Permission End date» (Img 66)
Img 66
Implementar flujos automatizados como el de solicitud de permiso laboral no solo demuestra un uso inteligente de la tecnología, sino también un compromiso con procesos más organizados y eficientes. Este tipo de soluciones permite a las empresas operar con mayor precisión, reduciendo tareas repetitivas y dejando espacio para lo realmente importante: el bienestar de su equipo.
👉 ¿Quieres optimizar tu gestión interna sin complicaciones? En Pevaar te ayudamos a construir soluciones que se adaptan a tu realidad.
Deja una respuesta