Saltar al contenido principal

Subworkflows

Puedes invocar un workflow desde otro, lo que te permite construir estructuras modulares similares a microservicios. Esto también resulta útil para dividir workflows demasiado grandes que causan problemas de memoria. Para crear subworkflows, necesitas utilizar los nodos Execute Workflow y Subworkflow.

Las ejecuciones de subworkflows no cuentan hacia el límite mensual de ejecuciones ni hacia el número máximo de workflows activos de tu plan.

Configuración y uso de subworkflows

Esta sección explica cómo configurar tanto el workflow padre como el subworkflow.

Crear un subworkflow

  1. Crea un nuevo workflow.

Crear un subworkflow desde un workflow existente

También puedes crear directamente un subworkflow desde un nodo Execute Workflow dentro de un workflow padre existente. En la configuración del nodo, selecciona Base de datos y Desde la lista, luego elige Crear subworkflow en la lista.

Asimismo, puedes usar la función de conversión a subworkflow desde el menú contextual (clic derecho) para extraer nodos seleccionados directamente como un subworkflow.

  1. Opcional: Configura qué workflows pueden invocar este subworkflow:
    1. Haz clic en el menú Opciones Icono del menú de opciones > Configuración para abrir la ventana emergente Configuración del workflow.
    2. Modifica la opción Este workflow puede ser invocado por. Para más información sobre esta configuración, consulta la documentación sobre configuración de workflows.
  2. Añade un nodo Subworkflow (en la búsqueda de triggers, también aparece como Cuando se ejecuta desde otro workflow).
  3. Configura el Modo de datos de entrada para definir cómo se especifican los datos de entrada del subworkflow:
    • Definir mediante campos a continuación: Al seleccionar este modo, defines los nombres y tipos de datos de las entradas independientes que el workflow llamador debe proporcionar. Los nodos Execute Workflow o Call n8n Workflow Tool del workflow llamador leerán automáticamente estos campos.
    • Definir mediante ejemplo JSON: En este modo, proporcionas un objeto JSON de ejemplo que muestra los elementos esperados y sus tipos.
    • Aceptar todos los datos: Este modo acepta sin restricciones todos los datos entrantes. El subworkflow no define entradas obligatorias, por lo que deberás gestionar internamente posibles inconsistencias o valores faltantes.
  4. Añade otros nodos según sea necesario para completar la funcionalidad del subworkflow.
  5. Guarda el subworkflow.

Los subworkflows no pueden contener errores

Si hay errores en el subworkflow, el workflow padre no podrá activarlo.

Cargar datos históricos al construir un subworkflow

Esta funcionalidad requiere la capacidad de cargar datos de ejecuciones anteriores, disponible en n8n Cloud y en planes comunitarios registrados.

Si deseas cargar datos al construir un subworkflow:

  1. Crea el subworkflow y añade un nodo Subworkflow.
  2. Establece el Modo de datos de entrada del nodo en Aceptar todos los datos, o define los campos o el JSON si ya conoces las entradas esperadas.
  3. En la configuración del subworkflow, cambia Guardar ejecuciones de producción exitosas a Guardar.
  4. Ve a la configuración del workflow padre y ejecútalo.
  5. Sigue los pasos para cargar datos desde una ejecución anterior.
  6. Si es necesario, ajusta el Modo de datos de entrada para que coincida con los datos enviados por el workflow padre.

Ahora puedes usar datos de ejemplo en el nodo trigger, lo que te permitirá desarrollar el resto del workflow utilizando datos reales.

Invocar un subworkflow

  1. Abre el workflow padre desde el cual deseas invocar el subworkflow.
  2. Añade un nodo Execute Workflow.
  3. En el nodo Execute Workflow, configura el subworkflow que deseas invocar. Puedes hacerlo mediante su ID, cargando un workflow desde un archivo local, pasando el JSON del workflow como parámetro del nodo, o especificando una URL.

Cómo encontrar el ID de tu workflow

El ID del subworkflow es la cadena alfanumérica al final de su URL.

  1. Completa los campos de entrada obligatorios según los definidos en el subworkflow.
  2. Guarda tu workflow.

Al ejecutar el workflow, enviará los datos al subworkflow y lo activará.

Puedes rastrear el flujo de ejecución desde el workflow padre hasta el subworkflow haciendo clic en el enlace Ver subejecución dentro del nodo Execute Workflow. Asimismo, los registros de ejecución del subworkflow incluyen un enlace de vuelta al registro del workflow padre, facilitando la navegación bidireccional.

Cómo se transfieren los datos entre workflows

Veamos un ejemplo concreto: el workflow A contiene un nodo Execute Workflow que llama a otro workflow llamado workflow B:

  1. El nodo Execute Workflow envía datos al nodo Subworkflow del workflow B (mostrado en el lienzo como «Cuando se ejecuta desde otro workflow»).
  2. El último nodo del workflow B devuelve los datos al nodo Execute Workflow del workflow A.

Conversión a subworkflows

Para saber cómo dividir un workflow existente en subworkflows, consulta la documentación sobre Conversión a subworkflows.