¡Muy buenas! Hoy vamos a ver un concepto fundamental para llevar vuestras automatizaciones al siguiente nivel: los Sub-workflows.
Seguramente os ha pasado que empezáis a crear una automatización y, de repente, tenéis un monstruo gigante lleno de nodos difícil de manejar. ¿La solución? Dividir y vencer.
¿Qué es un Sub-workflow?
Es muy sencillo. Imagina que tienes una automatización principal (la llamaremos Workflow Padre). En un momento dado, ese padre necesita que se haga una tarea específica, así que «llama» a otra automatización más pequeña (el Workflow Hijo o Sub-workflow).
El padre le dice al hijo: «Toma estos datos, procésalos y devuélveme el resultado». El padre espera a que el hijo termine y luego continúa con su trabajo.
Esto es genial porque nos permite tener flujos de trabajo mucho más limpios, ordenados y reutilizables.
Los nodos protagonistas
Para conectar dos workflows, necesitamos dos piezas clave:
- En el Padre (Execute Workflow): Es el nodo que da la orden. Si usas agentes de IA, también pueden tener esto como herramienta, pero hoy nos centraremos en el uso clásico.
- En el Hijo (Execute Workflow Trigger): Es el nodo inicial del hijo. A diferencia de otros triggers (como un horario o un webhook), este nodo se queda «escuchando» esperando a que el padre lo llame.
El «Gran Truco» para diseñarlos (Sin perder la cabeza)
Lo más difícil de trabajar con Sub-workflows es saber qué datos se envían y cómo se reciben. Si tienes el padre en una pestaña y el hijo en otra, estarás saltando de un lado a otro y es muy fácil perderse.
¿Cómo lo hago yo?
Yo diseño y pruebo todo en el mismo lienzo (canvas). Creo el padre y el hijo juntos en el mismo workflow. Cuando ya funciona perfecto, entonces muevo al hijo a su propio archivo.
Aquí te explico mi proceso paso a paso:
Paso 1: Configurar el Padre para que se llame a sí mismo
En el nodo Execute Workflow, en lugar de buscar otro workflow por su ID, vamos a usar una expresión para que apunte al workflow en el que estás trabajando ahora mismo.
- En el campo del ID del workflow, pones una expresión y escribes: {{ $workflow.id }}.
- Importante: Asegúrate de activar la opción que dice «Wait for Sub-workflow to complete» (Esperar a que el sub-workflow termine). Si no, el padre seguirá corriendo sin esperar la respuesta del hijo y será un caos.
Paso 2: Enviar los datos
Imagina que queremos sumar dos números. En el padre tenemos esos números. Al configurar el nodo de llamada, le decimos que envíe todos los datos (o seleccionamos los específicos).
Paso 3: El truco del «Pinning» (Fijar datos)
Aquí viene la magia. Al principio, el hijo no sabe qué datos va a recibir y es difícil configurarlo a ciegas.
- Ejecuta el workflow padre una vez.
- Vete al historial de Ejecuciones.
- Busca el momento en que el padre llamó al hijo y mira los datos de entrada (INPUT) que recibió el hijo.
- Copia esos datos (el JSON).
- Vuelve al editor, abre el nodo inicial del hijo (Execute Workflow Trigger) y pega esos datos reales en la zona de pruebas.
- Dale al botón de la chincheta (Pin Data).
¿Qué conseguimos con esto? Que ahora puedes trabajar en el workflow hijo y probarlo las veces que quieras usando esos datos fijos, sin tener que ejecutar todo el proceso desde el padre cada vez. ¡Ahorra muchísimo tiempo!
Paso 4: La lógica y el retorno
Ahora que tienes los datos fijados en el hijo:
- Añade los nodos que necesites (por ejemplo, un nodo de código para sumar los números).
- Asegúrate de que el último nodo del hijo tenga los datos limpios que quieres devolver.
- Utiliza un nodo Edit Fields al final si necesitas filtrar y enviar solo el resultado (por ejemplo, solo el número total de la suma).
Paso Final: La independencia
Una vez que has probado que el padre llama al hijo, el hijo suma y devuelve el resultado correctamente (ves que el nodo del padre recibe el «7» o el número que sea), toca separarles.
- Selecciona todos los nodos que forman parte del Workflow Hijo.
- Cópialos.
- Abre una pestaña nueva, crea un workflow nuevo y pégalos allí.
- Guarda ese nuevo workflow.
- Copia el ID de ese nuevo workflow (lo tienes en la URL del navegador).
- Vuelve a tu Workflow Padre original.
- En el nodo de llamada, borra la fórmula del {{ $workflow.id }} y pega el ID real del nuevo workflow hijo que acabas de guardar.
¡Y listo! Ya tienes un sistema modular, profesional y funcionando perfectamente.
Espero que este método os ahorre tantos dolores de cabeza como a mí. ¡A ser felices y a automatizar!