{ "name": "OnCall Agent - Slack", "nodes": [ { "parameters": { "endpointUrl": "http://supergateway-kubernetes:8080/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1.1, "position": [ -256, 592 ], "id": "639492d7-d965-45f2-b2b5-3594b4fcaf18", "name": "MCP Kubernetes", "credentials": { "httpBearerAuth": { "id": "dp96G7h1XmuPFHD7", "name": "Bearer Auth account" } } }, { "parameters": { "sseEndpoint": "https://condescending-jackson-1757595438006.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ -112, 592 ], "id": "f455e351-0437-4a2c-b441-bde3dc10bbe8", "name": "mcp-cloud.ai - brave-search", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "trigger": [ "app_mention" ], "channelId": { "__rl": true, "value": "C09GG02BSQJ", "mode": "list", "cachedResultName": "fikaworks-workshop" }, "options": {} }, "type": "n8n-nodes-base.slackTrigger", "typeVersion": 1, "position": [ -1392, 176 ], "id": "67fa4b20-49ad-4c6d-9f0c-fd25fab17133", "name": "Slack Trigger", "webhookId": "ece773aa-3801-4677-9cc0-21dd36819cf5", "credentials": { "slackApi": { "id": "tAVdSyBIgLuWSXZQ", "name": "Slack account FikaWorks" } } }, { "parameters": { "select": "channel", "channelId": { "__rl": true, "value": "C09GG02BSQJ", "mode": "list", "cachedResultName": "fikaworks-workshop" }, "text": "={{ $json.output }}", "otherOptions": {} }, "type": "n8n-nodes-base.slack", "typeVersion": 2.3, "position": [ 752, 16 ], "id": "e5edffec-a909-46b6-a772-94e2ee740bc1", "name": "Send a message", "webhookId": "8b5e79d7-703d-43b8-b773-cc2dfa5c7944", "credentials": { "slackApi": { "id": "onytVgAfzMAapSZq", "name": "Slack account" } } }, { "parameters": { "promptType": "define", "text": "=Context:\n{{ $json.output }}", "options": { "systemMessage": "You investigate Kubernetes and Grafana issues using read-only diagnostic tools.\n\n**Your Task:**\nBased on the research brief, gather evidence by:\n1. Checking cluster connectivity and context\n2. Getting pod/deployment status in relevant namespaces\n3. Reading recent logs for errors\n4. Checking Kubernetes events for issues\n5. Reviewing related Grafana dashboards and alerts\n6. Searching the web for specific error messages if needed\n\n**Investigation Approach:**\n- Start with kubectl get and describe commands\n- Look at logs only for pods with issues\n- Check events in the last hour\n- Keep log excerpts short (single-line errors only)\n- Use web search for unfamiliar error messages\n\n**Output Format:**\nNatural language summary including:\n- Current status (what's broken, how many pods affected)\n- Key evidence (log errors, event warnings, metric anomalies)\n- Likely cause based on evidence\n- Recommended next steps\n\n**Available Tools:**\n- Kubernetes MCP (get, describe, logs, events - read-only)\n- Brave Search (error research)\n- Time tools\n\n**Important:** You can only READ information. No kubectl apply, delete, scale, or patch commands. Use time tools to get the exact date and time.", "maxIterations": 20 } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2.2, "position": [ -272, 176 ], "id": "180723ae-8a73-4587-83d1-4301ccba3eac", "name": "AI DevOps Agent", "alwaysOutputData": true, "retryOnFail": true, "onError": "continueRegularOutput" }, { "parameters": { "promptType": "define", "text": "=Investigation:\n{{ $json.output }}", "options": { "systemMessage": "You document incidents in the Notion \"Kubernetes Incidents\" database.\n\n**Your Task:**\nCreate or update a single incident page with investigation findings.\n\n**Notion Fields to Populate:**\n- **Incident** (title): [Alert Title] - [Namespace] - [Timestamp]\n- **Status**: \"In Progress\"\n- **Severity**: High/Medium/Low (based on impact)\n- **Start Time**: [Alert timestamp]\n- **End Time**: Leave blank\n- **Affected Services**: [Service names from investigation]\n- **Incident Owner**: Leave blank\n- **Root Cause**: Brief cause statement or \"Under investigation\"\n- **Resolution**: Summary of findings or \"Investigating\"\n\n**Page Content:**\nCreate sections:\n1. **Summary** - 3-4 lines from investigation\n2. **Links** - Alert URL, Slack thread\n3. **Evidence** - Key log errors, events, metrics\n4. **Investigation Notes** - Findings from DevOps Agent\n5. **Next Steps** - Recommended actions\n\n**Finding Existing Incidents:**\nSearch for pages with similar alert title and recent Start Time (within 24 hours). Update if found, create new if not.\n\n**Available Tools:**\n- Notion MCP (read/write \"Kubernetes Incidents\" database)\n\n**Important:** After writing to Notion, output nothing. The workflow continues automatically. Use time tools to get the exact date and time." } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2.2, "position": [ 432, 464 ], "id": "7420485d-c25f-42d7-8e6a-139ac9d4059d", "name": "AI Knowledge Management Agent", "retryOnFail": true, "onError": "continueRegularOutput" }, { "parameters": { "promptType": "define", "text": "=Input:\n{{ $json.output }}\nError:\n{{ $json.error }}", "options": { "systemMessage": "You format investigation results into clear, technical Slack messages.\n\n*Your Task:*\nTake the DevOps Agent's findings and create a structured Slack update following the exact format below.\n\n*Required Format:*\n\n*When*: [timestamp in YYYY-MM-DD HH:MM UTC format]\n\n*Where*: [namespace]/[service or pod name]\n\n*Issue*: [concise one-line description of the problem]\n\n*Found*:\n[Specific technical details from logs/events/metrics]\nInclude exact error messages in quotes when available\nExample: State=Waiting, Reason=ImagePullBackOff \"manifest for image:tag not found\"\n\n*Actions*: \n[Specific, actionable steps to resolve]\nUse bullet points with • for commands:\n - kubectl command examples\n - Verification steps\n - Monitoring recommendations\n\n*Runbook*: [Notion page URL if created, otherwise \"N/A\"]\n\n*Important Guidelines:*\n- NO decorative emojis (šŸ” āš ļø āœ… šŸ”§) - keep it clean and technical\n- Be precise and concise - every line should add value\n- Include actual error messages and states from the investigation\n- Provide copy-paste ready kubectl commands when relevant\n- Keep total message under 15 lines\n- Use technical terminology - audience is DevOps engineers\n\n*Available Tools:*\n- Time tools (for timestamp formatting)\n\nImportant:\n\nUse time tools to get the exact date and time." } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2.2, "position": [ 432, 80 ], "id": "ece9cc72-2f13-496a-937e-aab43cb316da", "name": "AI Slack Agent", "retryOnFail": true, "alwaysOutputData": true, "onError": "continueRegularOutput" }, { "parameters": { "promptType": "define", "text": "=Title:\n{{ $json.attachments[0].title }}\nDescription:\n{{ $json.attachments[0].text }}", "options": { "systemMessage": "You investigate Kubernetes/Grafana alerts by searching for similar past incidents using both Notion and neo4j memory.\n\n**Your Task:**\n1. Read the alert details from the Slack message\n2. Extract key information: service name, namespace, error type, symptoms\n3. Search neo4j memory first for patterns and relationships\n4. Search Notion \"Kubernetes Incidents\" database for detailed incident records\n5. Store learnings from this search in neo4j memory for future investigations\n\n**Neo4j Memory Strategy:**\n\n*Search Memory for:*\n- Similar error types (OOMKilled, CrashLoopBackOff, ImagePullBackOff, etc.)\n- Service/namespace combinations that had issues before\n- Resolution patterns that worked for similar symptoms\n- Related incidents (services that often fail together)\n\n*Store in Memory:*\n- Create entity: Current incident (service, namespace, error type)\n- Create entity: Any resolutions found from past incidents\n- Create relationships: \"similar_to\", \"resolved_by\", \"affects_service\"\n- Store observations: Key patterns, resolution success rates, common causes\n\n**Notion Search Strategy:**\n- Service name or namespace matches\n- Error keywords in title or Root Cause fields\n- Symptoms in Resolution fields\n- Recent incidents (last 30 days preferred)\n\n**Output Format:**\nWrite a brief summary (3-5 paragraphs) including:\n- What the alert is about\n- Patterns found in memory (e.g., \"This service fails every 2 weeks with OOM\")\n- 2-3 similar past incidents from Notion (with links)\n- What worked before (from Resolution field and memory)\n- Suggested first steps based on pattern analysis\n\nIf you find no similar incidents, say so and suggest general troubleshooting steps based on the error type.\n\n**Available Tools:**\n- neo4j-memory MCP (store and retrieve incident patterns/relationships)\n- Notion MCP (search and read \"Kubernetes Incidents\" database)\n- Time tools (for date context)\n\n**Important:**\nAlways store what you learn so future investigations get smarter. Think of memory as your incident knowledge graph. Use time tools to get the exact date and time." } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2.2, "position": [ -864, 176 ], "id": "02cbef83-893a-4009-91e5-0e3273558c40", "name": "AI Research Agent", "alwaysOutputData": true, "retryOnFail": false, "onError": "continueRegularOutput" }, { "parameters": { "resource": "reaction", "channelId": { "__rl": true, "value": "C09GG02BSQJ", "mode": "list", "cachedResultName": "fikaworks-workshop" }, "timestamp": "={{ $('Slack Trigger').item.json.event_ts }}", "name": "book" }, "type": "n8n-nodes-base.slack", "typeVersion": 2.3, "position": [ -560, 304 ], "id": "30384e94-bf27-464f-a44d-fd546793413a", "name": "Add reaction Researched", "webhookId": "21240f8d-80ea-4017-8e35-2d727d134ed3", "credentials": { "slackApi": { "id": "onytVgAfzMAapSZq", "name": "Slack account" } }, "onError": "continueRegularOutput" }, { "parameters": { "resource": "reaction", "channelId": { "__rl": true, "value": "C09GG02BSQJ", "mode": "list", "cachedResultName": "fikaworks-workshop" }, "timestamp": "={{ $('Slack Trigger').item.json.event_ts }}", "name": "pencil" }, "type": "n8n-nodes-base.slack", "typeVersion": 2.3, "position": [ 752, 464 ], "id": "d9082542-e8c4-414d-97e8-a58596ca36c1", "name": "Add reaction Documented", "webhookId": "21240f8d-80ea-4017-8e35-2d727d134ed3", "credentials": { "slackApi": { "id": "onytVgAfzMAapSZq", "name": "Slack account" } }, "onError": "continueRegularOutput" }, { "parameters": { "sseEndpoint": "https://pensive-pasteur-1759237143118.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ 16, 592 ], "id": "d48ab620-7f1e-4987-ac0b-8bc3dd94c24d", "name": "mcp-cloud.ai - time", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "sseEndpoint": "https://stupefied-mccarthy-1759133395013.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ 672, 688 ], "id": "60b25cb0-685d-441c-b7b0-bce3e1a67895", "name": "mcp-cloud.ai - Notion", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "content": "šŸŽÆ AUTOMATED INCIDENT RESPONSE WORKFLOW\n\nThis workflow automatically handles Kubernetes/Grafana alerts:\n1. Receives alerts via Slack mentions\n2. Searches past incidents for similar issues\n3. Investigates using kubectl & Grafana\n4. Documents findings in Notion\n5. Reports back to Slack\n\nProgress tracked with emoji reactions: šŸ‘€ → šŸ“– → 🩺 → šŸ“", "height": 1312, "width": 2416 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -1472, -240 ], "id": "cb472d0e-e17d-4559-8b9f-f5d6f2de207c", "name": "Sticky Note" }, { "parameters": { "content": " šŸ“– RESEARCH PHASE\n\nSearches Notion \"Kubernetes Incidents\" database for:\n- Similar service names/namespaces\n- Matching error patterns (OOMKilled, CrashLoopBackOff, etc.)\n- Past resolutions that worked\n\nOutput: 3-5 paragraph brief with links to similar incidents", "height": 832, "width": 624, "color": 2 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -1008, -64 ], "id": "fb36e69f-cdce-4f15-b3e3-30931fbee40c", "name": "Sticky Note1" }, { "parameters": { "sseEndpoint": "https://stupefied-mccarthy-1759133395013.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ -848, 624 ], "id": "3d004e93-3b8e-470d-8b0d-a74f1fabe820", "name": "mcp-cloud.ai - Notion research", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "sseEndpoint": "https://pensive-pasteur-1759237143118.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ -704, 624 ], "id": "305f7c40-9e3e-4d40-a0e2-db412792f641", "name": "mcp-cloud.ai - time research", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "sseEndpoint": "https://pensive-pasteur-1759237143118.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ 640, 256 ], "id": "ce6b9214-a0d1-49be-94ef-4865dc69e809", "name": "mcp-cloud.ai - time Slack", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "sseEndpoint": "https://pensive-pasteur-1759237143118.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ 512, 688 ], "id": "5cf58c62-a354-489d-9797-126c1b07a0c8", "name": "mcp-cloud.ai - time1", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "resource": "reaction", "channelId": { "__rl": true, "value": "C09GG02BSQJ", "mode": "list", "cachedResultName": "fikaworks-workshop" }, "timestamp": "={{ $('Slack Trigger').item.json.event_ts }}", "name": "stethoscope" }, "type": "n8n-nodes-base.slack", "typeVersion": 2.3, "position": [ 96, 0 ], "id": "3c907be2-b6f7-464d-8217-d7b5b8954663", "name": "Add reaction Investigate", "webhookId": "21240f8d-80ea-4017-8e35-2d727d134ed3", "credentials": { "slackApi": { "id": "onytVgAfzMAapSZq", "name": "Slack account" } }, "onError": "continueRegularOutput" }, { "parameters": { "content": "🩺 INVESTIGATION PHASE\n\nRead-only diagnostic tools:\nāœ… kubectl get/describe/logs/events\nāœ… Grafana dashboards & alerts\nāœ… Web search for error messages\nāŒ NO write operations (apply/delete/patch)\n\nMax 20 iterations to gather evidence\nOutput: Natural language incident summary", "height": 832, "width": 656, "color": 3 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -368, -64 ], "id": "b6f986b9-f6bf-46db-8d25-adf6729cc07d", "name": "Sticky Note2" }, { "parameters": { "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nšŸ“ DOCUMENTATION PHASE\n\nCreates/updates Notion incident page with:\n- Incident title: [Alert] - [Namespace] - [Timestamp]\n- Status: \"In Progress\"\n- Severity: High/Medium/Low\n- Evidence: Logs, events, metrics\n- Root cause & resolution steps", "height": 640, "width": 624, "color": 4 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 304, 416 ], "id": "7c087a16-be54-4dca-96d0-a1f3f4af895d", "name": "Sticky Note3" }, { "parameters": { "content": "**Slack Agent**\nTake the DevOps Agent's findings and create a readable Slack update \n\n**Format:**\nšŸ” **INVESTIGATING:** [alert title]\n- **When:** [timestamp]\n- **Where:** [namespace/service]\n- **Issue:** [brief description]\n- **Found:** [key evidence]\n- **Next:** [recommended action]\n- **Runbook:** [Notion link if available]\n", "height": 576, "width": 624, "color": 6 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 304, -176 ], "id": "cb7cceb2-0c5d-44d7-bdbf-c3e58b47f19e", "name": "Sticky Note4" }, { "parameters": { "resource": "reaction", "channelId": { "__rl": true, "value": "C09GG02BSQJ", "mode": "list", "cachedResultName": "fikaworks-workshop" }, "timestamp": "={{ $('Slack Trigger').item.json.event_ts }}", "name": "eyes" }, "type": "n8n-nodes-base.slack", "typeVersion": 2.3, "position": [ -1184, 64 ], "id": "bd9f7d02-3f71-4e96-8070-8f8a88fe861c", "name": "Add reaction Seen", "webhookId": "21240f8d-80ea-4017-8e35-2d727d134ed3", "credentials": { "slackApi": { "id": "onytVgAfzMAapSZq", "name": "Slack account" } }, "onError": "continueRegularOutput" }, { "parameters": { "sseEndpoint": "https://mystifying-wiles-1751833338967.server.mcp-cloud.ai/sse", "authentication": "bearerAuth", "options": {} }, "type": "@n8n/n8n-nodes-langchain.mcpClientTool", "typeVersion": 1, "position": [ -560, 624 ], "id": "81cef0cb-d3c6-4373-942d-a16a2023ffca", "name": "mcp-cloud.ai - neo4j-memory", "credentials": { "httpBearerAuth": { "id": "EUQaeCDhiZRUatPo", "name": "Bearer Auth account prod" } } }, { "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-4.1-mini" }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [ 384, 240 ], "id": "4d9f043f-5bdf-42e7-ab77-9663e060965d", "name": "OpenAI Chat Model 3", "credentials": { "openAiApi": { "id": "BF093wkvotVKcwwv", "name": "OpenAi account" } } }, { "parameters": { "model": { "__rl": true, "value": "o4-mini-2025-04-16", "mode": "list", "cachedResultName": "o4-mini-2025-04-16" }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [ -960, 448 ], "id": "05d0947d-a275-491c-b281-1350bc1d3595", "name": "OpenAI Chat Model 1", "credentials": { "openAiApi": { "id": "BF093wkvotVKcwwv", "name": "OpenAi account" } } }, { "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-4.1-mini" }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [ -304, 352 ], "id": "84798847-3af8-4fbe-9f2c-faa454f45816", "name": "OpenAI Chat Model 2", "credentials": { "openAiApi": { "id": "BF093wkvotVKcwwv", "name": "OpenAi account" } } }, { "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-4.1-mini" }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [ 352, 640 ], "id": "50f6e24a-6e78-4a97-97ad-323c1ac9848a", "name": "OpenAI Chat Model 4", "credentials": { "openAiApi": { "id": "BF093wkvotVKcwwv", "name": "OpenAi account" } } }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict", "version": 2 }, "conditions": [ { "id": "9cd09842-3dda-4736-a3b5-2f77c8dcd0fc", "leftValue": "={{ $('AI DevOps Agent').item.json.error }}", "rightValue": "", "operator": { "type": "string", "operation": "notExists", "singleValue": true } } ], "combinator": "and" }, "options": {} }, "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [ 96, 256 ], "id": "465207c4-9e69-4531-97c5-9e447da5fedc", "name": "If" } ], "pinData": {}, "connections": { "MCP Kubernetes": { "ai_tool": [ [ { "node": "AI DevOps Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - brave-search": { "ai_tool": [ [ { "node": "AI DevOps Agent", "type": "ai_tool", "index": 0 } ] ] }, "Slack Trigger": { "main": [ [ { "node": "AI Research Agent", "type": "main", "index": 0 }, { "node": "Add reaction Seen", "type": "main", "index": 0 } ] ] }, "AI DevOps Agent": { "main": [ [ { "node": "Add reaction Investigate", "type": "main", "index": 0 }, { "node": "If", "type": "main", "index": 0 } ] ] }, "AI Slack Agent": { "main": [ [ { "node": "Send a message", "type": "main", "index": 0 } ] ] }, "AI Research Agent": { "main": [ [ { "node": "Add reaction Researched", "type": "main", "index": 0 }, { "node": "AI DevOps Agent", "type": "main", "index": 0 } ] ] }, "AI Knowledge Management Agent": { "main": [ [ { "node": "Add reaction Documented", "type": "main", "index": 0 } ] ] }, "Add reaction Researched": { "main": [ [] ] }, "mcp-cloud.ai - time": { "ai_tool": [ [ { "node": "AI DevOps Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - Notion": { "ai_tool": [ [ { "node": "AI Knowledge Management Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - Notion research": { "ai_tool": [ [ { "node": "AI Research Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - time research": { "ai_tool": [ [ { "node": "AI Research Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - time Slack": { "ai_tool": [ [ { "node": "AI Slack Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - time1": { "ai_tool": [ [ { "node": "AI Knowledge Management Agent", "type": "ai_tool", "index": 0 } ] ] }, "mcp-cloud.ai - neo4j-memory": { "ai_tool": [ [ { "node": "AI Research Agent", "type": "ai_tool", "index": 0 } ] ] }, "OpenAI Chat Model 3": { "ai_languageModel": [ [ { "node": "AI Slack Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "OpenAI Chat Model 1": { "ai_languageModel": [ [ { "node": "AI Research Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "OpenAI Chat Model 2": { "ai_languageModel": [ [ { "node": "AI DevOps Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "OpenAI Chat Model 4": { "ai_languageModel": [ [ { "node": "AI Knowledge Management Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "If": { "main": [ [ { "node": "AI Slack Agent", "type": "main", "index": 0 }, { "node": "AI Knowledge Management Agent", "type": "main", "index": 0 } ] ] } }, "active": true, "settings": { "executionOrder": "v1" }, "versionId": "b19747d3-4398-49b8-aa95-edafb4c3f7fc", "meta": { "templateCredsSetupCompleted": true, "instanceId": "45682be98ef8751ab560fabe52d8b4bf347677ae33abddb610055780f28a0a54" }, "id": "X4f0PSOoeHHGqO89", "tags": [] }