Subworkflows reutilizables con IA para clasificar mensajes

Clase 7 de 16Curso de Workflows Profesionales con n8n

Resumen

Impulsa tu automatización en n8n creando un subworkflow reutilizable que integra inteligencia artificial para clasificar mensajes y devolver una salida JSON consistente. Aquí verás, paso a paso, cómo definir entradas, configurar un AI Agent, normalizar datos con Set y consumir el subworkflow desde el flujo principal para responder por webhook.

¿Cómo crear un subworkflow en n8n y definir entradas?

Un subworkflow es parte clave de la arquitectura del workflow: encapsula lógica reutilizable y se ejecuta desde otro flujo. El proceso es similar a crear un workflow normal, con la diferencia de su trigger.

  • Crea un Workflow y añade el nodo Subworkflow como primer paso.
  • Elige el trigger: when executed by another workflow.
  • Define las entradas con add fields: crea el campo mensaje como tipo texto.
  • Guarda para asegurar la configuración inicial.

¿Qué trigger usar para subworkflow reusable?

  • Usa el trigger “when executed by another workflow”.
  • Esto permite que otro flujo invoque el subworkflow con datos.

¿Cómo definir el campo mensaje como texto?

  • En add fields, selecciona “texto”.
  • Aceptar “cualquier cosa” no es necesario: aquí es un string claro.

¿Cómo probar con datos congelados en el trigger?

  • Doble clic en el trigger y entra a la opción json.
  • Edita el valor de “mensaje” con el lápiz y guarda.
  • Verás el nodo en morado: hay dato congelado para testear.

¿Cómo integrar un agente de IA para clasificar mensajes?

Añade un AI/EI Agent para decidir si el mensaje va a IT, legal, facilities u otro. Configurar bien la fuente, el system message y el modelo evita errores y hace la salida predecible.

  • Fuente de datos: selecciona “define below” para usar el valor dinámico.
  • Mensaje dinámico: referencia el campo del trigger con una expresión.
  • Prompt de sistema: instrucción clara con categorías y formato de salida.
  • Modelo y credenciales: conecta OpenAI y elige GPT-4.1 mini.

¿Qué expresión usar para pasar el mensaje dinámico?

Utiliza la expresión que apunta al campo de entrada “mensaje”:

{{ $json.mensaje }}
  • Asegura que exista el valor al testear: usa el dato congelado en el trigger.

¿Cómo redactar el system message para categorías?

Indica la tarea, el conjunto de clases y la restricción de formato:

clasifica el siguiente mensaje según su tema: it, legal, facilities u otro. devuelve solo una palabra en minúscula.
  • Si el nodo está en rojo, falta el modelo: selecciona credenciales y modelo.
  • Conectar OpenAI y elegir GPT-4.1 mini deja el nodo en gris: sin error.

¿Cómo asegurar salida consistente con Require Specific Output Format?

Activa Require Specific Output Format y añade un Output Parser. Define un ejemplo de JSON con las claves deseadas para guiar la respuesta del modelo.

{
  "Categoría": "it",
  "confianza": "alta"
}
  • Esto fuerza una estructura de salida estable.
  • Verifica con Ejecutar: el agente debe devolver ambas claves.

¿Cómo consumir el subworkflow desde el flujo principal y responder por webhook?

Una vez probado, integra el subworkflow en tu flujo principal. Así podrás clasificar en caliente y responder desde el webhook con los datos limpios.

  • Añade el nodo Subworkflow como acción tras la lógica que decide si clasificar.
  • Origen: database y selección by ID para apuntar al subworkflow correcto.
  • Usa Execute previous nodes y envía una petición para generar datos.
  • Mapea el campo mensaje hacia la entrada del subworkflow.
  • Normaliza la salida con Set/Edit Fields: elimina prefijos como “output.” y conserva “Categoría” y “confianza”.

¿Cómo vincular por ID y mapear el campo mensaje?

  • Copia el ID del subworkflow y pégalo en el nodo Subworkflow del flujo principal.
  • Tras ejecutar nodos previos, arrastra el campo mensaje hacia el parámetro “mensaje”.

¿Cómo normalizar con set y construir la respuesta?

  • En Set, arrastra “Categoría” y “confianza”; elimina “output.” del path.
  • En el nodo de webhook/función de respuesta, agrega ambas claves al JSON de salida mediante arrastrar y soltar desde “edit fields”.

Ejemplo de respuesta esperada:

{
  "Categoría": "it",
  "confianza": "alta"
}
  • Prueba con una nueva petición: deberías ver Categoría y confianza como parte de la respuesta.

¿Te animas a mejorarlo? añade un nuevo campo “tema detectado” en el Output Parser del agente de IA, mapea el valor y comparte una captura en los comentarios.