Flujos secundarios en Power Automate: crear procesos de forma modular
Cómo usar los flujos secundarios para dividir grandes procesos de Power Automate en subpasos reutilizables y mantenerlos más fácilmente.
Quien agrupa un proceso con decenas o cientos de acciones en un solo flujo de Power Automate acaba notando lo confuso que se vuelve: cada cambio exige mucho desplazamiento, los errores son difíciles de localizar, y un subpaso que en realidad se necesita en varios sitios existe de repente tres veces en variantes ligeramente distintas. Los flujos secundarios resuelven precisamente este problema. Un flujo principal llama a uno o varios flujos secundarios, les pasa entradas y después procesa sus valores de retorno, de forma similar a como una función en código clásico se llama desde un programa más grande.
Para las empresas que usan Power Automate en producción, este patrón es especialmente relevante cuando la misma lógica aparece en varios procesos, por ejemplo determinar aprobadores, dar formato a importes o registrar errores. En lugar de reconstruir esta lógica en cada flujo, se crea una sola vez como flujo secundario y se llama desde todos los flujos principales correspondientes. Si la lógica cambia, basta con un único ajuste en un solo lugar.
¿Qué es un flujo secundario?
Un flujo secundario es un flujo de nube completamente normal con una particularidad: no se inicia mediante un desencadenador clásico como una programación o un elemento nuevo en una lista, sino que lo inicia directamente otro flujo. Microsoft describe en la documentación oficial Crear flujos secundarios que para ello se necesita una solución con al menos dos flujos:
- el flujo secundario, anidado dentro del flujo principal, con las tareas más pequeñas que realmente se ejecutan
- el flujo principal, que puede tener cualquier desencadenador y llama al flujo secundario en el punto adecuado
Un flujo principal puede contener varios flujos secundarios distintos, según la subtarea de que se trate en cada momento. Es importante que el flujo principal y el secundario se creen directamente en la misma solución, porque solo así Power Automate vincula automáticamente ambos durante una exportación e importación posteriores, sin que sea necesario mantener manualmente las URL.
Por qué merece la pena la modularización
Microsoft resume las ventajas en las Directrices sobre código reutilizable con flujos secundarios, y en la práctica estas ventajas se aprecian rápidamente:
- Modularidad: los bloques reutilizables pueden incorporarse a distintos procesos sin necesidad de copiar la lógica.
- Facilidad de mantenimiento: los flujos pequeños y enfocados son más fáciles de leer, y un error puede rastrearse exactamente hasta el bloque que lo causó.
- Escalabilidad: los nuevos requisitos se resuelven ajustando un único flujo secundario, en lugar de reconstruir todo el proceso.
- Control preciso: mediante entradas y salidas claramente definidas, controlas exactamente qué datos fluyen entre el flujo principal y el secundario.
- Colaboración en equipo: varias personas pueden trabajar simultáneamente en distintos flujos secundarios sin estorbarse dentro del mismo flujo gigantesco.
Cada flujo secundario se convierte así en un empleado digital con una responsabilidad claramente delimitada, que realiza de forma fiable exactamente una tarea y que puede probarse, sustituirse o ampliarse individualmente si es necesario.
Paso a paso: crear un flujo secundario
Paso 1: crear la solución y el flujo instantáneo
Abre una solución existente en Power Automate o crea una nueva. Dentro de ella, mediante Nuevo > Automatización > Flujo de nube > Instantáneo crea un nuevo flujo y elige como desencadenador Desencadenar un flujo manualmente. Solo los flujos con este desencadenador, el desencadenador de Power Apps o el desencadenador de solicitud HTTP se pueden llamar posteriormente como flujo secundario.
Paso 2: definir las entradas
Mediante Agregar una entrada defines qué valores debe pasar el flujo principal al flujo secundario, por ejemplo un nombre de contacto o un número de pedido. Estas entradas aparecen después en el flujo principal como campos dinámicos en cuanto seleccionas allí el flujo secundario.
Paso 3: construir la lógica y devolver un resultado
Construye dentro del flujo secundario la tarea propiamente dicha, ya sea un registro en Dataverse, un cálculo o una comparación con una lista de SharePoint. Al final, devuelves el resultado mediante la acción Responder a una Power App o a un flujo o, en el conector premium, mediante Respuesta de vuelta al flujo principal. Aquí también se puede definir cualquier número de valores de salida.
Paso 4: incorporar conexiones
Si el flujo secundario usa conectores distintos de las acciones integradas o Dataverse, en la página de propiedades, en Solo usuarios en ejecución, debes seleccionar para cada conexión Usar esta conexión en lugar de Proporcionado por usuario de solo ejecución. Sin este paso, la llamada falla con un mensaje de error, porque los flujos secundarios solo admiten conexiones incorporadas y actualmente no pueden heredar conexiones del flujo principal.
Conectar el flujo principal
En el flujo principal, agrega en el punto deseado la acción Ejecutar un flujo secundario del conector Flows y selecciona el flujo secundario creado previamente. Solo se muestran los flujos a los que tienes acceso y que se encuentran en la misma solución. Tras la selección, aparecen los campos de entrada definidos en el flujo secundario, y tras la llamada, las salidas están disponibles como contenido dinámico para los pasos siguientes. El flujo principal espera a que termine el flujo secundario, durante toda la vida útil del flujo, es decir, un año en el caso de conexiones integradas y Dataverse, o 30 días para el resto de conectores.
Ejemplo práctico: determinar aprobadores a partir de grupos de SharePoint
Un ejemplo de la documentación de Microsoft ilustra bien este patrón: una empresa necesita aprobaciones para propuestas de proyecto, solicitudes de vacaciones y notas de gastos, y las personas responsables se gestionan en distintos grupos de SharePoint. En lugar de reconstruir la consulta del grupo correspondiente en tres flujos independientes, se crea un único flujo secundario que consulta el grupo de SharePoint correspondiente y devuelve la lista de aprobadores. El flujo principal para propuestas de proyecto, el de solicitudes de vacaciones y el de notas de gastos llaman entonces todos al mismo flujo secundario y solo indican en cada caso el grupo correspondiente. Si más adelante cambia la estructura de los grupos de SharePoint, solo hay que ajustar el flujo secundario, y los tres procesos se benefician automáticamente.
Límites y trampas habituales
Los flujos secundarios no funcionan por sí solos y traen consigo algunas reglas fijas que conviene conocer antes de construir procesos más grandes sobre ellos:
- El flujo principal y el secundario deben crearse directamente en la misma solución. Si importas posteriormente un flujo existente a una solución, la vinculación puede, según Microsoft, dar lugar a resultados inesperados.
- Actualmente las conexiones no se pueden pasar del flujo principal al secundario; cada conexión del flujo secundario debe estar incorporada allí.
- Un flujo secundario requiere obligatoriamente un desencadenador manual, de Power Apps o de solicitud HTTP; otros desencadenadores no están disponibles para este fin.
- Con un número muy elevado de flujos secundarios repartidos en varias soluciones, también merece la pena revisar la licencia, por ejemplo los grupos de flujos, con los que se puede compartir una licencia de proceso entre varios flujos y sus ejecuciones de flujos secundarios.
Mantienes el control sobre el nivel de granularidad con el que descompones: no toda tarea de tres pasos necesita su propio flujo secundario, pero en cuanto una tarea aparece en más de un sitio o un flujo se vuelve confuso, la división resulta rentable rápidamente. Quien desee modularizar procesos existentes de Power Automate con una estructura clara y una gestión de soluciones ordenada encontrará apoyo en la consultoría de Power Automate de NordFlux.
Preguntas frecuentes
¿Cuál es la diferencia entre un flujo principal y un flujo secundario?
El flujo principal puede tener cualquier desencadenador y controla el proceso global. El flujo secundario asume una única subtarea claramente delimitada, recibe para ello entradas del flujo principal y al final devuelve un resultado, de forma similar a una función dentro de un programa.
¿Qué desencadenadores puede usar un flujo secundario?
Solo tres desencadenadores son adecuados para flujos secundarios: desencadenar un flujo manualmente, el desencadenador de Power Apps y el desencadenador de solicitudes HTTP entrantes del conector premium. Un desencadenador de recurrencia o un desencadenador de SharePoint no funciona para este fin.
¿Puedo reutilizar en el flujo secundario una conexión existente del flujo principal?
No, actualmente no se pueden pasar conexiones del flujo principal al secundario. Cada conector usado en el flujo secundario debe estar guardado allí como conexión incorporada mediante el ajuste de usuario de solo ejecución.
¿Cuánto tiempo espera el flujo principal la respuesta del flujo secundario?
El flujo principal se pausa hasta que el flujo secundario termina, como máximo durante la vida útil del flujo. Eso es un año en el caso de flujos con conexiones integradas y Dataverse, y 30 días para el resto de conectores.
¿El flujo principal y el flujo secundario deben estar en la misma solución?
Sí, Microsoft recomienda expresamente crear ambos directamente en la misma solución. Solo así quedan vinculados correctamente de forma automática al exportarlos a otro entorno, sin necesidad de ajustar manualmente las URL.
Fuentes: Microsoft Learn – Crear flujos secundarios, Microsoft Learn – Crear código reutilizable para flujos secundarios
NordFlux UG (haftungsbeschränkt)
NordFlux crea empleados digitales para las organizaciones: automatizaciones y agentes KI que asumen el trabajo repetitivo. Usted mantiene el control.
¿Preguntas concretas sobre automatización o IA?
En un análisis inicial gratuito hablamos directamente de su caso. Sin compromiso.