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.