This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "03 \u00b7 Triage con agente (bloque 05 \u00b7 19:00)",
"nodes": [
{
"parameters": {
"content": "## Bloque 05 \u00b7 19:00\n### De flujo a agente\n\nUn agente **no es \u00abm\u00e1s IA\u00bb**. Es qui\u00e9n decide el orden de los pasos.\n\nEn el flujo 02 el orden lo decid\u00edas vos: clasificar \u2192 rutear. Ac\u00e1 el agente tiene **tools** y elige cu\u00e1l usar y cu\u00e1ndo.\n\n\u25b6\ufe0f Corr\u00e9 la consulta pinneada: **necesita DOS tools** (buscar el estado del reintegro + consultar la base). Mir\u00e1 al agente elegir en el panel de ejecuci\u00f3n.\n\n\u2696\ufe0f El trade-off: gan\u00e1s flexibilidad, perd\u00e9s previsibilidad.",
"height": 400,
"width": 420,
"color": 7
},
"id": "a1b2c3d4-0003-4000-8000-000000000001",
"name": "Gui\u00f3n",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-480,
-120
]
},
{
"parameters": {
"formTitle": "Consultas",
"formDescription": "Escribinos tu consulta y te respondemos.",
"formFields": {
"values": [
{
"fieldLabel": "mensaje",
"fieldType": "textarea",
"placeholder": "Contanos qu\u00e9 necesit\u00e1s",
"requiredField": true
},
{
"fieldLabel": "email",
"fieldType": "email",
"requiredField": true
}
]
},
"options": {}
},
"id": "a1b2c3d4-0003-4000-8000-000000000002",
"name": "Entra una consulta",
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.2,
"position": [
0,
0
]
},
{
"parameters": {
"promptType": "define",
"text": "=Consulta del empleado {{ $json.email }}:\n\n{{ $json.mensaje }}",
"options": {
"systemMessage": "Sos el agente de soporte de una plataforma de beneficios para empleados.\n\nTu trabajo es resolver la consulta del empleado usando las herramientas que ten\u00e9s.\n\nC\u00f3mo trabaj\u00e1s:\n- Si la consulta menciona un tr\u00e1mite en curso, consult\u00e1 su estado antes de responder.\n- Si la consulta es sobre c\u00f3mo funciona un beneficio, busc\u00e1 en la base de conocimiento.\n- Si la consulta toca dos temas distintos, resolv\u00e9 los dos.\n- Si no pod\u00e9s resolverla con tus herramientas, escal\u00e1 a una persona.\n\nRespond\u00e9 en espa\u00f1ol rioplatense, en tono claro y directo. No inventes datos que no te dieron las herramientas."
}
},
"id": "a1b2c3d4-0003-4000-8000-000000000003",
"name": "Agente de soporte",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.7,
"position": [
280,
0
]
},
{
"parameters": {
"model": "llama-3.3-70b-versatile",
"options": {
"temperature": 0.2
}
},
"id": "a1b2c3d4-0003-4000-8000-000000000004",
"name": "Groq Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
120,
240
]
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json.email }}",
"contextWindowLength": 5
},
"id": "a1b2c3d4-0003-4000-8000-000000000005",
"name": "Memoria",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
260,
240
]
},
{
"parameters": {
"name": "consultar_estado_tramite",
"description": "Devuelve el estado de un tr\u00e1mite en curso (reintegro, alta, cambio de plan) a partir del email del empleado. Usala cuando la consulta menciona algo que el empleado ya inici\u00f3 y est\u00e1 esperando.",
"jsCode": "// Mock para el workshop: devuelve un estado fijo.\n// En producci\u00f3n esto ser\u00eda un HTTP Request contra tu backend.\nreturn JSON.stringify({\n tramite: 'reintegro',\n estado: 'pendiente de auditor\u00eda m\u00e9dica',\n iniciado_hace_dias: 14,\n demora_habitual_dias: 5,\n atrasado: true\n});"
},
"id": "a1b2c3d4-0003-4000-8000-000000000006",
"name": "consultar_estado_tramite",
"type": "@n8n/n8n-nodes-langchain.toolCode",
"typeVersion": 1.1,
"position": [
400,
240
]
},
{
"parameters": {
"name": "buscar_en_base_de_conocimiento",
"description": "Busca en la base de conocimiento interna c\u00f3mo funciona un beneficio o un procedimiento. Usala cuando el empleado pregunta c\u00f3mo hacer algo o qu\u00e9 cubre su plan.",
"jsCode": "// Mock para el workshop: devuelve un art\u00edculo fijo.\n// En producci\u00f3n esto ser\u00eda un vector store o una b\u00fasqueda en tu wiki.\nreturn JSON.stringify({\n articulo: 'Cambio de plan',\n contenido: 'El cambio de plan se puede pedir una vez por a\u00f1o calendario. Se solicita desde el portal, secci\u00f3n Mi Plan, y se hace efectivo el primer d\u00eda del mes siguiente. No tiene costo.',\n actualizado: '2026-03-01'\n});"
},
"id": "a1b2c3d4-0003-4000-8000-000000000007",
"name": "buscar_en_base_de_conocimiento",
"type": "@n8n/n8n-nodes-langchain.toolCode",
"typeVersion": 1.1,
"position": [
560,
240
]
},
{
"parameters": {
"name": "escalar_a_persona",
"description": "Deriva la consulta a una persona del equipo. Usala solo cuando no puedas resolver la consulta con las otras herramientas.",
"jsCode": "// Mock para el workshop.\nreturn JSON.stringify({\n escalado: true,\n cola: 'soporte-nivel-2',\n mensaje: 'La consulta fue derivada a una persona del equipo.'\n});"
},
"id": "a1b2c3d4-0003-4000-8000-000000000008",
"name": "escalar_a_persona",
"type": "@n8n/n8n-nodes-langchain.toolCode",
"typeVersion": 1.1,
"position": [
720,
240
]
},
{
"parameters": {
"content": "### Tools + Contexto + Memoria\n\nEsto es lo que hace a un agente. Las tres cosas de la web:\n\n**Tools** \u2192 las 3 de abajo\n**Contexto** \u2192 el system message\n**Memoria** \u2192 el nodo Memoria\n\nLas tools son **mocks**: devuelven datos fijos. Para el workshop alcanza y no depend\u00e9s de ninguna API en vivo.\n\n---\n\n**La memoria necesita saber de qui\u00e9n es la conversaci\u00f3n.** Por eso la *session key* es el `email`: cada empleado tiene su propio hilo. Si pusieras un valor fijo, todos compartir\u00edan memoria y el agente mezclar\u00eda consultas ajenas.",
"height": 400,
"width": 340,
"color": 5
},
"id": "a1b2c3d4-0003-4000-8000-000000000009",
"name": "Nota tools",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
400,
420
]
},
{
"parameters": {},
"id": "a1b2c3d4-0003-4000-8000-00000000000a",
"name": "Responder al empleado",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
600,
0
]
}
],
"connections": {
"Entra una consulta": {
"main": [
[
{
"node": "Agente de soporte",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model": {
"ai_languageModel": [
[
{
"node": "Agente de soporte",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Memoria": {
"ai_memory": [
[
{
"node": "Agente de soporte",
"type": "ai_memory",
"index": 0
}
]
]
},
"consultar_estado_tramite": {
"ai_tool": [
[
{
"node": "Agente de soporte",
"type": "ai_tool",
"index": 0
}
]
]
},
"buscar_en_base_de_conocimiento": {
"ai_tool": [
[
{
"node": "Agente de soporte",
"type": "ai_tool",
"index": 0
}
]
]
},
"escalar_a_persona": {
"ai_tool": [
[
{
"node": "Agente de soporte",
"type": "ai_tool",
"index": 0
}
]
]
},
"Agente de soporte": {
"main": [
[
{
"node": "Responder al empleado",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": []
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
03 · Triage con agente (bloque 05 · 19:00). Uses formTrigger, agent, lmChatGroq, memoryBufferWindow. Event-driven trigger; 10 nodes.
Source: https://github.com/leanaraque/Workshop-IA-Automation-CODER-BONDA/blob/56e631c1bf747ee458c951d1afa7e52a7ad680ce/n8n/03-triage-agente.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow turns a Telegram bot into a personal assistant J.A.R.V.I.S - powered by Groq (Llama 3.3 70B) and a LangChain agent with chat memory, using tools for web search, weather, news, Wikipedia
User submits a form with a LinkedIn profile URL and number of posts to scrape Apify's LinkedIn Post Scraper actor fetches posts (no cookies required, ~$1 per 1,000 posts) Posts are looped one at a tim
BookFinder-AI. Uses httpRequest, formTrigger, agent, lmChatGroq. Event-driven trigger; 12 nodes.
Template Nodes Example. Uses CUSTOM, formTrigger, executeWorkflowTrigger, chatTrigger. Event-driven trigger; 70 nodes.
Conversational Interviews With Ai Agents And N8N Forms. Uses memoryManager, stickyNote, formTrigger, form. Event-driven trigger; 40 nodes.