diff --git a/prueba-con-api-de-kan-bn.json b/prueba-con-api-de-kan-bn.json new file mode 100644 index 0000000..888bfb0 --- /dev/null +++ b/prueba-con-api-de-kan-bn.json @@ -0,0 +1,417 @@ +{ + "updatedAt": "2026-06-09T17:06:31.433Z", + "createdAt": "2026-06-09T15:40:06.717Z", + "id": "BNNxfjME3SomZVnL", + "name": "Prueba con API de Kan.bn", + "description": null, + "active": true, + "isArchived": false, + "nodes": [ + { + "parameters": { + "availableInChat": true, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.chatTrigger", + "typeVersion": 1.4, + "position": [ + -96, + 32 + ], + "id": "b43338ef-ad61-4bc8-9487-5ec452a71c15", + "name": "When chat message received", + "webhookId": "569dc398-c38a-40e6-92d6-bcb3b43476ef" + }, + { + "parameters": { + "promptType": "define", + "text": "IMPORTANTE DE SEGURIDAD:\nSolo tienes herramientas GET y POST.\nNo existe permiso para borrar, editar, mover ni sobrescribir.\nSi un tablero ya existe con el mismo nombre, debes detenerte y preguntar.\nNunca modifiques tableros existentes.\nPara pruebas, solo crea tableros nuevos cuyo nombre empiece con TEST.\n\nEres un agente especializado en crear proyectos completos en PMIT/Kan.bn usando la API.\n\nCONTEXTO FIJO:\n- API base: https://pmit.digitalcompass.agency/api/v1\n- Workspace principal: Proyectos IT\n- workspacePublicId principal: i4wk4l2phtf9\n- URL final de tableros: https://pmit.digitalcompass.agency/boards/{boardPublicId}\n\nHERRAMIENTAS DISPONIBLES:\n1. consultar_api: solo para GET.\n2. crear_en_api: solo para POST.\n\nREGLAS DE SEGURIDAD OBLIGATORIAS:\n1. Está totalmente prohibido borrar recursos.\n2. Está totalmente prohibido editar recursos existentes.\n3. Está totalmente prohibido mover tarjetas existentes.\n4. Está totalmente prohibido sobrescribir tableros existentes.\n5. Nunca uses DELETE, PATCH ni PUT.\n6. Solo puedes consultar con consultar_api y crear recursos nuevos con crear_en_api.\n7. Antes de crear cualquier tablero, debes consultar los workspaces con consultar_api usando path=\"/workspaces\".\n8. Debes confirmar que usarás el workspace \"Proyectos IT\" con publicId \"i4wk4l2phtf9\".\n9. Antes de crear un tablero, debes consultar los tableros existentes con consultar_api usando path=\"/workspaces/i4wk4l2phtf9/boards\".\n10. Si ya existe un tablero con el mismo nombre, detente y pregunta al usuario qué hacer. No modifiques el tablero existente.\n11. No inventes publicIds. Usa siempre los publicIds devueltos por la API.\n12. Si una herramienta falla, detente y explica qué endpoint falló, qué body enviaste y qué error devolvió la API.\n\nMODO DE OPERACIÓN PARA CREAR UN PROYECTO COMPLETO:\n1. Lee todo el texto del usuario.\n2. Extrae el nombre del proyecto/tablero. Si el usuario no da nombre explícito, usa un nombre corto basado en el proyecto.\n3. Extrae las listas/columnas y respeta el orden exacto.\n4. Extrae todas las tarjetas.\n5. Extrae la descripción de cada tarjeta.\n6. Extrae cada checklist completo.\n7. Si hay reglas de gobernanza, crea una tarjeta adicional llamada \"Reglas de Gobernanza\" en la primera lista.\n8. Crea el tablero con crear_en_api usando path=\"/workspaces/i4wk4l2phtf9/boards\".\n9. El body para crear board debe tener esta estructura:\n{\n \"name\": \"Nombre del tablero\",\n \"lists\": [\"Lista 1\", \"Lista 2\", \"Lista 3\"],\n \"labels\": [],\n \"type\": \"regular\"\n}\n10. Después de crear el board, consulta el board creado con consultar_api usando path=\"/boards/{boardPublicId}\" para obtener los publicIds reales de las listas.\n11. Identifica la lista \"Pendientes (Backlog)\" o la primera lista del tablero.\n12. Crea todas las tarjetas dentro de esa lista usando crear_en_api con path=\"/cards\".\n13. El body para crear card debe tener esta estructura:\n{\n \"title\": \"Título de la tarjeta\",\n \"description\": \"Descripción completa\",\n \"listPublicId\": \"publicId de la lista\",\n \"labelPublicIds\": [],\n \"memberPublicIds\": [],\n \"position\": \"end\",\n \"dueDate\": null\n}\n14. Para cada tarjeta, crea un checklist llamado \"Criterios de Aceptación\" usando path=\"/cards/{cardPublicId}/checklists\".\n15. El body para crear checklist debe ser:\n{\n \"name\": \"Criterios de Aceptación\"\n}\n16. Para cada punto del checklist, crea un item usando path=\"/checklists/{checklistPublicId}/items\".\n17. El body para crear item debe ser:\n{\n \"title\": \"Texto exacto del item\"\n}\n18. Al finalizar, responde con:\n- nombre del tablero\n- boardPublicId\n- enlace del tablero\n- cantidad de listas creadas\n- cantidad de tarjetas creadas\n- cantidad de checklists creados\n- cantidad de items creados\n\nPara crear un proyecto completo:\n1. Consulta workspaces.\n2. Consulta boards existentes.\n3. Si el board no existe, crea el board.\n4. Consulta el board creado para obtener los publicIds de listas.\n5. Crea tarjetas en la primera lista o en \"Pendientes (Backlog)\".\n6. Crea checklist \"Criterios de Aceptación\" en cada tarjeta.\n7. Crea cada item de checklist.\n8. Devuelve resumen final.\n\nIMPORTANTE:\nNo respondas \"estoy listo\", \"procederé\" ni explicaciones previas si el usuario pidió crear o consultar. Debes ejecutar las herramientas.", + "options": { + "maxIterations": 80 + } + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 3.1, + "position": [ + 144, + 32 + ], + "id": "d29f9c8a-ff1c-4604-9213-9b371a490337", + "name": "AI Agent" + }, + { + "parameters": { + "modelName": "models/gemini-2.5-flash-lite", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", + "typeVersion": 1.1, + "position": [ + 16, + 240 + ], + "id": "925e7c08-6f98-413b-9e66-27e7c2a82e30", + "name": "Google Gemini Chat Model", + "credentials": { + "googlePalmApi": { + "id": "6Jdcd9FONxG35YuJ", + "name": "Isaac - Gemini Api Gratis" + } + } + }, + { + "parameters": { + "contextWindowLength": 80 + }, + "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", + "typeVersion": 1.4, + "position": [ + -400, + 192 + ], + "id": "e292a8e6-8d73-426f-8dfb-9fbc39da9885", + "name": "Simple Memory" + }, + { + "parameters": { + "toolDescription": "Usa esta herramienta para consultar datos reales de PMIT/Kan.bn usando GET. Sirve para consultar workspaces, tableros, listas, tarjetas y publicIds. El parámetro path debe empezar con /. Ejemplos válidos: /workspaces, /workspaces/i4wk4l2phtf9/boards, /boards/{boardPublicId}. Esta herramienta NO crea, NO edita y NO borra.", + "url": "={{ 'https://pmit.digitalcompass.agency/api/v1' + $fromAI('path', 'Ruta GET de PMIT/Kan.bn. Debe empezar con /. Ejemplos: /workspaces, /workspaces/i4wk4l2phtf9/boards, /boards/{boardPublicId}', 'string') }}", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + { + "name": "Authorization", + "value": "Bearer kan_njQVukdhrYGbQiDyRsBKfmmqoIKZCuXTHUfAvoAuArskzLnJNwvhDVwXlLqxAJGE" + }, + { + "name": "Content-Type", + "value": "application/json" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.httpRequestTool", + "typeVersion": 4.4, + "position": [ + 304, + 256 + ], + "id": "26ff2576-30ae-4b7d-adbc-f28352cbbf7a", + "name": "consultar_api" + }, + { + "parameters": { + "toolDescription": "Usa esta herramienta para crear recursos nuevos en PMIT/Kan.bn usando POST. Puede crear boards, tarjetas, checklists e items de checklist. El parámetro path debe empezar con /. Endpoints válidos: /workspaces/{workspacePublicId}/boards, /cards, /cards/{cardPublicId}/checklists, /checklists/{checklistPublicId}/items. Esta herramienta NO edita, NO borra, NO mueve y NO sobrescribe recursos existentes.", + "method": "POST", + "url": "={{ 'https://pmit.digitalcompass.agency/api/v1' + $fromAI('path', 'Ruta POST de PMIT/Kan.bn. Debe empezar con /. Ejemplos: /workspaces/i4wk4l2phtf9/boards, /cards, /cards/{cardPublicId}/checklists, /checklists/{checklistPublicId}/items', 'string') }}", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + { + "name": "Authorization", + "value": "Bearer kan_njQVukdhrYGbQiDyRsBKfmmqoIKZCuXTHUfAvoAuArskzLnJNwvhDVwXlLqxAJGE" + }, + { + "name": "Content-Type", + "value": "application/json" + } + ] + }, + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={{ $fromAI('body', 'Objeto JSON válido para enviar a PMIT/Kan.bn. Para crear board usa {\"name\":\"...\",\"lists\":[\"...\"],\"labels\":[],\"type\":\"regular\"}. Para crear card usa {\"title\":\"...\",\"description\":\"...\",\"listPublicId\":\"...\",\"labelPublicIds\":[],\"memberPublicIds\":[],\"position\":\"end\",\"dueDate\":null}. Para checklist usa {\"name\":\"Criterios de Aceptación\"}. Para item usa {\"title\":\"...\"}', 'json') }}", + "options": {} + }, + "type": "n8n-nodes-base.httpRequestTool", + "typeVersion": 4.4, + "position": [ + 432, + 240 + ], + "id": "1e80fdba-4b09-408d-85cb-dd594833762c", + "name": "crear_en_api" + } + ], + "connections": { + "Google Gemini Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Simple Memory": { + "ai_memory": [ + [] + ] + }, + "consultar_api": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "crear_en_api": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When chat message received": { + "main": [ + [ + { + "node": "AI Agent", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1", + "binaryMode": "separate" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "versionId": "e0559803-e45e-4010-8d46-f3f2a9760a18", + "activeVersionId": "e0559803-e45e-4010-8d46-f3f2a9760a18", + "versionCounter": 126, + "triggerCount": 1, + "shared": [ + { + "updatedAt": "2026-06-09T15:40:06.722Z", + "createdAt": "2026-06-09T15:40:06.722Z", + "role": "workflow:owner", + "workflowId": "BNNxfjME3SomZVnL", + "projectId": "PJpTANzTXIFibWsW", + "project": { + "updatedAt": "2026-04-22T14:25:09.686Z", + "createdAt": "2026-04-22T14:22:54.790Z", + "id": "PJpTANzTXIFibWsW", + "name": "Isaac Aracena ", + "type": "personal", + "icon": null, + "description": null, + "creatorId": "0a88c0b1-928e-4412-896e-c5d1c99b2029" + } + } + ], + "tags": [], + "activeVersion": { + "updatedAt": "2026-06-09T17:06:55.000Z", + "createdAt": "2026-06-09T17:06:31.434Z", + "versionId": "e0559803-e45e-4010-8d46-f3f2a9760a18", + "workflowId": "BNNxfjME3SomZVnL", + "nodes": [ + { + "parameters": { + "availableInChat": true, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.chatTrigger", + "typeVersion": 1.4, + "position": [ + -96, + 32 + ], + "id": "b43338ef-ad61-4bc8-9487-5ec452a71c15", + "name": "When chat message received", + "webhookId": "569dc398-c38a-40e6-92d6-bcb3b43476ef" + }, + { + "parameters": { + "promptType": "define", + "text": "IMPORTANTE DE SEGURIDAD:\nSolo tienes herramientas GET y POST.\nNo existe permiso para borrar, editar, mover ni sobrescribir.\nSi un tablero ya existe con el mismo nombre, debes detenerte y preguntar.\nNunca modifiques tableros existentes.\nPara pruebas, solo crea tableros nuevos cuyo nombre empiece con TEST.\n\nEres un agente especializado en crear proyectos completos en PMIT/Kan.bn usando la API.\n\nCONTEXTO FIJO:\n- API base: https://pmit.digitalcompass.agency/api/v1\n- Workspace principal: Proyectos IT\n- workspacePublicId principal: i4wk4l2phtf9\n- URL final de tableros: https://pmit.digitalcompass.agency/boards/{boardPublicId}\n\nHERRAMIENTAS DISPONIBLES:\n1. consultar_api: solo para GET.\n2. crear_en_api: solo para POST.\n\nREGLAS DE SEGURIDAD OBLIGATORIAS:\n1. Está totalmente prohibido borrar recursos.\n2. Está totalmente prohibido editar recursos existentes.\n3. Está totalmente prohibido mover tarjetas existentes.\n4. Está totalmente prohibido sobrescribir tableros existentes.\n5. Nunca uses DELETE, PATCH ni PUT.\n6. Solo puedes consultar con consultar_api y crear recursos nuevos con crear_en_api.\n7. Antes de crear cualquier tablero, debes consultar los workspaces con consultar_api usando path=\"/workspaces\".\n8. Debes confirmar que usarás el workspace \"Proyectos IT\" con publicId \"i4wk4l2phtf9\".\n9. Antes de crear un tablero, debes consultar los tableros existentes con consultar_api usando path=\"/workspaces/i4wk4l2phtf9/boards\".\n10. Si ya existe un tablero con el mismo nombre, detente y pregunta al usuario qué hacer. No modifiques el tablero existente.\n11. No inventes publicIds. Usa siempre los publicIds devueltos por la API.\n12. Si una herramienta falla, detente y explica qué endpoint falló, qué body enviaste y qué error devolvió la API.\n\nMODO DE OPERACIÓN PARA CREAR UN PROYECTO COMPLETO:\n1. Lee todo el texto del usuario.\n2. Extrae el nombre del proyecto/tablero. Si el usuario no da nombre explícito, usa un nombre corto basado en el proyecto.\n3. Extrae las listas/columnas y respeta el orden exacto.\n4. Extrae todas las tarjetas.\n5. Extrae la descripción de cada tarjeta.\n6. Extrae cada checklist completo.\n7. Si hay reglas de gobernanza, crea una tarjeta adicional llamada \"Reglas de Gobernanza\" en la primera lista.\n8. Crea el tablero con crear_en_api usando path=\"/workspaces/i4wk4l2phtf9/boards\".\n9. El body para crear board debe tener esta estructura:\n{\n \"name\": \"Nombre del tablero\",\n \"lists\": [\"Lista 1\", \"Lista 2\", \"Lista 3\"],\n \"labels\": [],\n \"type\": \"regular\"\n}\n10. Después de crear el board, consulta el board creado con consultar_api usando path=\"/boards/{boardPublicId}\" para obtener los publicIds reales de las listas.\n11. Identifica la lista \"Pendientes (Backlog)\" o la primera lista del tablero.\n12. Crea todas las tarjetas dentro de esa lista usando crear_en_api con path=\"/cards\".\n13. El body para crear card debe tener esta estructura:\n{\n \"title\": \"Título de la tarjeta\",\n \"description\": \"Descripción completa\",\n \"listPublicId\": \"publicId de la lista\",\n \"labelPublicIds\": [],\n \"memberPublicIds\": [],\n \"position\": \"end\",\n \"dueDate\": null\n}\n14. Para cada tarjeta, crea un checklist llamado \"Criterios de Aceptación\" usando path=\"/cards/{cardPublicId}/checklists\".\n15. El body para crear checklist debe ser:\n{\n \"name\": \"Criterios de Aceptación\"\n}\n16. Para cada punto del checklist, crea un item usando path=\"/checklists/{checklistPublicId}/items\".\n17. El body para crear item debe ser:\n{\n \"title\": \"Texto exacto del item\"\n}\n18. Al finalizar, responde con:\n- nombre del tablero\n- boardPublicId\n- enlace del tablero\n- cantidad de listas creadas\n- cantidad de tarjetas creadas\n- cantidad de checklists creados\n- cantidad de items creados\n\nPara crear un proyecto completo:\n1. Consulta workspaces.\n2. Consulta boards existentes.\n3. Si el board no existe, crea el board.\n4. Consulta el board creado para obtener los publicIds de listas.\n5. Crea tarjetas en la primera lista o en \"Pendientes (Backlog)\".\n6. Crea checklist \"Criterios de Aceptación\" en cada tarjeta.\n7. Crea cada item de checklist.\n8. Devuelve resumen final.\n\nIMPORTANTE:\nNo respondas \"estoy listo\", \"procederé\" ni explicaciones previas si el usuario pidió crear o consultar. Debes ejecutar las herramientas.", + "options": { + "maxIterations": 80 + } + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 3.1, + "position": [ + 144, + 32 + ], + "id": "d29f9c8a-ff1c-4604-9213-9b371a490337", + "name": "AI Agent" + }, + { + "parameters": { + "modelName": "models/gemini-2.5-flash-lite", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", + "typeVersion": 1.1, + "position": [ + 16, + 240 + ], + "id": "925e7c08-6f98-413b-9e66-27e7c2a82e30", + "name": "Google Gemini Chat Model", + "credentials": { + "googlePalmApi": { + "id": "6Jdcd9FONxG35YuJ", + "name": "Isaac - Gemini Api Gratis" + } + } + }, + { + "parameters": { + "contextWindowLength": 80 + }, + "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", + "typeVersion": 1.4, + "position": [ + -400, + 192 + ], + "id": "e292a8e6-8d73-426f-8dfb-9fbc39da9885", + "name": "Simple Memory" + }, + { + "parameters": { + "toolDescription": "Usa esta herramienta para consultar datos reales de PMIT/Kan.bn usando GET. Sirve para consultar workspaces, tableros, listas, tarjetas y publicIds. El parámetro path debe empezar con /. Ejemplos válidos: /workspaces, /workspaces/i4wk4l2phtf9/boards, /boards/{boardPublicId}. Esta herramienta NO crea, NO edita y NO borra.", + "url": "={{ 'https://pmit.digitalcompass.agency/api/v1' + $fromAI('path', 'Ruta GET de PMIT/Kan.bn. Debe empezar con /. Ejemplos: /workspaces, /workspaces/i4wk4l2phtf9/boards, /boards/{boardPublicId}', 'string') }}", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + { + "name": "Authorization", + "value": "Bearer kan_njQVukdhrYGbQiDyRsBKfmmqoIKZCuXTHUfAvoAuArskzLnJNwvhDVwXlLqxAJGE" + }, + { + "name": "Content-Type", + "value": "application/json" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.httpRequestTool", + "typeVersion": 4.4, + "position": [ + 304, + 256 + ], + "id": "26ff2576-30ae-4b7d-adbc-f28352cbbf7a", + "name": "consultar_api" + }, + { + "parameters": { + "toolDescription": "Usa esta herramienta para crear recursos nuevos en PMIT/Kan.bn usando POST. Puede crear boards, tarjetas, checklists e items de checklist. El parámetro path debe empezar con /. Endpoints válidos: /workspaces/{workspacePublicId}/boards, /cards, /cards/{cardPublicId}/checklists, /checklists/{checklistPublicId}/items. Esta herramienta NO edita, NO borra, NO mueve y NO sobrescribe recursos existentes.", + "method": "POST", + "url": "={{ 'https://pmit.digitalcompass.agency/api/v1' + $fromAI('path', 'Ruta POST de PMIT/Kan.bn. Debe empezar con /. Ejemplos: /workspaces/i4wk4l2phtf9/boards, /cards, /cards/{cardPublicId}/checklists, /checklists/{checklistPublicId}/items', 'string') }}", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + { + "name": "Authorization", + "value": "Bearer kan_njQVukdhrYGbQiDyRsBKfmmqoIKZCuXTHUfAvoAuArskzLnJNwvhDVwXlLqxAJGE" + }, + { + "name": "Content-Type", + "value": "application/json" + } + ] + }, + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={{ $fromAI('body', 'Objeto JSON válido para enviar a PMIT/Kan.bn. Para crear board usa {\"name\":\"...\",\"lists\":[\"...\"],\"labels\":[],\"type\":\"regular\"}. Para crear card usa {\"title\":\"...\",\"description\":\"...\",\"listPublicId\":\"...\",\"labelPublicIds\":[],\"memberPublicIds\":[],\"position\":\"end\",\"dueDate\":null}. Para checklist usa {\"name\":\"Criterios de Aceptación\"}. Para item usa {\"title\":\"...\"}', 'json') }}", + "options": {} + }, + "type": "n8n-nodes-base.httpRequestTool", + "typeVersion": 4.4, + "position": [ + 432, + 240 + ], + "id": "1e80fdba-4b09-408d-85cb-dd594833762c", + "name": "crear_en_api" + } + ], + "connections": { + "Google Gemini Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Simple Memory": { + "ai_memory": [ + [] + ] + }, + "consultar_api": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "crear_en_api": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When chat message received": { + "main": [ + [ + { + "node": "AI Agent", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "authors": "Isaac Aracena", + "name": "Version e0559803", + "description": "", + "autosaved": true, + "workflowPublishHistory": [ + { + "createdAt": "2026-06-09T17:06:55.494Z", + "id": 1262, + "workflowId": "BNNxfjME3SomZVnL", + "versionId": "e0559803-e45e-4010-8d46-f3f2a9760a18", + "event": "activated", + "userId": "0a88c0b1-928e-4412-896e-c5d1c99b2029" + } + ] + } +} \ No newline at end of file