构建基于AI的API错误目录:从GitHub到Airtable、Notion和Slack
高级
这是一个Ticket Management, AI Summarization领域的自动化工作流,包含 30 个节点。主要使用 If, Set, Code, Slack, Notion 等节点。 使用GPT-4o自动检测和分类GitHub API错误至Airtable、Notion和Slack
前置要求
- •Slack Bot Token 或 Webhook URL
- •Notion API Key
- •Airtable API Key
- •GitHub Personal Access Token
- •OpenAI API Key
使用的节点 (30)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "gceCBgo6PVxGolsl",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "构建基于 AI 的 API 错误目录:从 GitHub 到 Airtable、Notion 和 Slack",
"tags": [],
"nodes": [
{
"id": "36883e78-6c02-40b3-8749-8f9c2ca8fcfe",
"name": "触发器配置",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1760,
-64
],
"parameters": {
"color": 2,
"width": 564,
"height": 376,
"content": "## 🧭 GitHub Issue 触发器"
},
"typeVersion": 1
},
{
"id": "7d3e76db-cb71-4139-8771-734579629862",
"name": "AI 分类",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1168,
-176
],
"parameters": {
"color": 2,
"width": 660,
"height": 680,
"content": "## 🤖 AI 分类与解析"
},
"typeVersion": 1
},
{
"id": "5e8dbb53-1a51-4ec8-8147-7bde48282472",
"name": "响应解析",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
-144
],
"parameters": {
"color": 2,
"width": 416,
"height": 472,
"content": "## ⚙️ 智能路由"
},
"typeVersion": 1
},
{
"id": "911ab0f0-4a1b-4981-9229-39eff9e5fea5",
"name": "Slack 警报",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-352
],
"parameters": {
"color": 2,
"width": 460,
"height": 988,
"content": "## 🗂️ 数据库记录"
},
"typeVersion": 1
},
{
"id": "34b1571d-94d4-4c19-83ca-66598c20e5b3",
"name": "准备 GitHub Issue 数据",
"type": "n8n-nodes-base.set",
"position": [
-1328,
128
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9dfaa4d6-3b16-48e5-8787-36d45fc877d7",
"name": "Issue Title",
"type": "string",
"value": "={{ $json.body.issue.title }}"
},
{
"id": "c1d46bc2-0774-4999-aaa2-80dda17efa9b",
"name": "Issue Body",
"type": "string",
"value": "={{ $json.body.issue.body }}"
},
{
"id": "05f2e592-a943-4fa3-92f7-e635cbd5019b",
"name": "Issue URL",
"type": "string",
"value": "={{ $json.body.issue.html_url }}"
},
{
"id": "6aeef038-6b7e-4953-9a30-518201d90e12",
"name": "Issue Number",
"type": "number",
"value": "={{ $json.body.issue.number }}"
},
{
"id": "ead4db1d-0c1a-49d6-83a7-6368feecbc3c",
"name": "Repository Name",
"type": "string",
"value": "={{ $json.body.repository.full_name }}"
},
{
"id": "0eb094bb-8360-4240-bb60-c1fdf8eebc97",
"name": "Created At",
"type": "string",
"value": "={{ $json.body.repository.created_at }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5bc68cc4-2dd7-4f06-aee1-720003d1a42e",
"name": "GitHub Issue 已创建/已更新",
"type": "n8n-nodes-base.githubTrigger",
"position": [
-1552,
128
],
"webhookId": "api-error-catalog-webhook",
"parameters": {
"owner": {
"__rl": true,
"mode": "url",
"value": "="
},
"events": [
"issues"
],
"options": {},
"repository": {
"__rl": true,
"mode": "url",
"value": "="
},
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": "Ih8web2ia8dlggr6",
"name": "GitHub account vivek"
}
},
"typeVersion": 1
},
{
"id": "6ac5f56a-aa1b-4236-a8df-ce3d242721c1",
"name": "AI: 分类 API 错误 (GPT-4o)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1056,
128
],
"parameters": {
"text": "=Analyze this GitHub API error issue:\n\nTitle: {{ $json[\"Issue Title\"] }}\nRepository: {{ $json[\"Repository Name\"] }}\nIssue Number: #{{ $json[\"Issue Number\"] }}\nCreated: {{ $json[\"Created At\"] }}\nURL: {{ $json[\"Issue URL\"] }}\n\nIssue Details:\n{{ $json[\"Issue Body\"] }}\n\nPlease classify this error, identify the root cause, suggest a fix, and determine if it matches any existing FAQ category.",
"options": {
"systemMessage": "=You are an expert API error classification assistant for a SaaS engineering team.\n\nYour responsibilities include:\n1. Analyze GitHub issues related to API errors and exceptions.\n2. Extract and identify error codes, messages, and endpoints.\n3. Classify each error into one of the standard categories:\n - Authentication\n - Server Error\n - Rate Limit\n - Invalid Request\n - Database\n - Network\n - Configuration\n - Other\n4. Determine the root cause based on error patterns and context.\n5. Suggest a clear and actionable fix or next step.\n6. Assign a confidence level for your analysis (high / medium / low).\n7. Determine the severity level of the issue (critical / high / medium / low).\n8. Map the issue to an existing internal FAQ topic if relevant.\n9. Assign the responsible internal team based on the error category:\n - **Backend Team** → Authentication, Database, Server Error\n - **DevOps Team** → Infrastructure, Rate Limit, Network, Deployment\n - **API Team** → Invalid Request, Configuration, Schema or Integration Issues\n - **Support Team** → Other or unclear user-facing errors\n\nAlways respond in **valid JSON** following this exact schema:\n{\n \"errorCode\": \"\",\n \"category\": \"\",\n \"faqMatch\": \"\",\n \"rootCause\": \"\",\n \"suggestedAction\": \"\",\n \"confidence\": \"\",\n \"severity\": \"\",\n \"affectedEndpoint\": \"\",\n \"assignedTeam\": \"\"\n}\n\nBe concise but thorough in your reasoning. Avoid non-JSON text or explanations outside the JSON.\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
},
{
"id": "481c36b8-cbbe-49c6-9809-e2dc30f6f665",
"name": "LLM 模型: GPT-4o",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1104,
352
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": ""
},
"options": {
"temperature": 0.7
}
},
"credentials": {
"openAiApi": {
"id": "5Kzt6hGSZ1JHZqWN",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "ba53d5c2-177f-4ffa-84c8-6c1577c6ce03",
"name": "输出解析器: 结构化 JSON 模式",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-848,
352
],
"parameters": {
"jsonSchemaExample": "{\n \"errorCode\": \"AUTH-401\",\n \"category\": \"Authentication\",\n \"faqMatch\": \"Token Expiry Issues\",\n \"rootCause\": \"Expired access token causing authorization failure on /api/v1/users\",\n \"suggestedAction\": \"Implement token refresh mechanism and validate expiration logic.\",\n \"confidence\": \"high\",\n \"severity\": \"medium\",\n \"affectedEndpoint\": \"/api/v1/users\",\n \"assignedTeam\": \"Backend Team\"\n}\n"
},
"typeVersion": 1.3
},
{
"id": "dba69663-c2b5-4f83-a378-547092bb9100",
"name": "AI 记忆缓冲区",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-976,
352
],
"parameters": {
"sessionKey": "\"AI Agent - Error Analyzer\"",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "baa722d9-3f87-4391-83e1-30a39ec1942f",
"name": "解析 AI 分类输出",
"type": "n8n-nodes-base.code",
"position": [
-640,
128
],
"parameters": {
"jsCode": "// Get all input items\nconst items = $input.all();\n\n// Process each item\nconst formattedItems = items.map(item => {\n // Get AI output\n const aiOutput = item.json.output || item.json;\n\n // Get original issue data from earlier node\n const issueData = $('Prepare GitHub Issue Data').first().json || {};\n\n // Format for Airtable, Notion, and Slack\n return {\n json: {\n // Original Issue Data\n issueTitle: issueData.issueTitle || issueData[\"Issue Title\"] || \"Untitled Issue\",\n issueUrl: issueData.issueUrl || issueData[\"Issue URL\"] || \"\",\n issueNumber: issueData.issueNumber || issueData[\"Issue Number\"] || 0,\n issueBody: issueData.issueBody || issueData[\"Issue Body\"] || \"\",\n repoName: issueData.repoName || issueData[\"Repository Name\"] || \"\",\n createdAt: issueData.createdAt || issueData[\"Created At\"] || new Date().toISOString(),\n\n // AI Analysis Results\n errorCode: aiOutput.errorCode || \"UNKNOWN\",\n category: aiOutput.category || \"Uncategorized\",\n faqMatch: aiOutput.faqMatch || \"No FAQ Match\",\n rootCause: aiOutput.rootCause || \"Root cause unknown\",\n suggestedAction: aiOutput.suggestedAction || \"Manual investigation required\",\n confidence: aiOutput.confidence || \"low\",\n severity: aiOutput.severity || \"medium\",\n affectedEndpoint: aiOutput.affectedEndpoint || \"Unknown endpoint\",\n assignedTeam: aiOutput.assignedTeam || \"Unassigned\",\n\n // Additional metadata\n analyzedAt: new Date().toISOString(),\n status: \"pending_review\",\n\n // 🧱 Formatted text for Notion description\n notionDescription: `**Error Code:** ${aiOutput.errorCode}\n**Category:** ${aiOutput.category}\n**Severity:** ${aiOutput.severity}\n**Confidence:** ${aiOutput.confidence}\n**Assigned Team:** ${aiOutput.assignedTeam}\n\n**Root Cause:**\n${aiOutput.rootCause}\n\n**Suggested Action:**\n${aiOutput.suggestedAction}\n\n**Affected Endpoint:**\n${aiOutput.affectedEndpoint}\n\n**Original Issue:**\n${issueData.issueBody || issueData[\"Issue Body\"] || \"\"}`,\n\n // 💬 Formatted text for Slack\n slackMessage: `🚨 *New API Error Analyzed*\n\n*Error Code:* ${aiOutput.errorCode}\n*Category:* ${aiOutput.category}\n*Severity:* ${aiOutput.severity}\n*Confidence:* ${aiOutput.confidence}\n👥 *Assigned Team:* ${aiOutput.assignedTeam}\n\n*FAQ Match:* ${aiOutput.faqMatch}\n\n*Root Cause:*\n${aiOutput.rootCause}\n\n*Suggested Action:*\n${aiOutput.suggestedAction}\n\n*GitHub Issue:* ${issueData.issueUrl || issueData[\"Issue URL\"] || \"N/A\"}\n*Repository:* ${issueData.repoName || issueData[\"Repository Name\"] || \"N/A\"}`,\n\n // 📊 Airtable fields object (ready to use)\n airtableFields: {\n \"Error Code\": aiOutput.errorCode,\n \"Error Category\": aiOutput.category,\n \"FAQ Match\": aiOutput.faqMatch,\n \"Root Cause\": aiOutput.rootCause,\n \"Suggested Action\": aiOutput.suggestedAction,\n \"Confidence\": aiOutput.confidence,\n \"Severity\": aiOutput.severity,\n \"Affected Endpoint\": aiOutput.affectedEndpoint,\n \"Assigned Team\": aiOutput.assignedTeam || \"Unassigned\",\n \"Source URL\": issueData.issueUrl || issueData[\"Issue URL\"] || \"\",\n \"Repository\": issueData.repoName || issueData[\"Repository Name\"] || \"\",\n \"Issue Number\": issueData.issueNumber || issueData[\"Issue Number\"] || 0,\n \"Status\": \"New\",\n \"Created At\": new Date().toISOString()\n }\n }\n };\n});\n\nreturn formattedItems;\n"
},
"typeVersion": 2
},
{
"id": "fc8db243-9c6a-417f-a538-1c6c3dbc747b",
"name": "检查: 有效的 AI 响应还是数据缺失",
"type": "n8n-nodes-base.if",
"position": [
-416,
128
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "32a385f7-3200-4e72-9730-555b90a42751",
"operator": {
"type": "string",
"operation": "isEmpty"
},
"leftValue": "={{ $json.id }}",
"rightValue": ""
},
{
"id": "0eca57c7-3933-4f19-856a-7f0d4dc08902",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.airtableFields }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "8cd461a6-208e-4ff1-8fe5-744227986bd8",
"name": "按分配团队路由",
"type": "n8n-nodes-base.switch",
"position": [
-192,
96
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6fca3214-bd0f-4b4e-9acc-c6806e43584c",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.assignedTeam }}",
"rightValue": "DevOps Team"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d416b5a4-a371-4f26-b46c-e7e2f8a5b8e3",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.assignedTeam }}",
"rightValue": "Backend Team"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b294f578-9eef-41db-99a4-63372b575be0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.assignedTeam }}",
"rightValue": "Support Team"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8d5d93bb-502e-41c5-9df8-18410f493e0e",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.assignedTeam }}",
"rightValue": "API Team"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.3
},
{
"id": "51f79f94-dc6c-41df-984d-fe25efb895ff",
"name": "Airtable: 创建记录 (DevOps)",
"type": "n8n-nodes-base.airtable",
"position": [
32,
-160
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": ""
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZvyR7J8hndLlUZ",
"cachedResultUrl": "https://airtable.com/appsZ3Uuh5PnD215s/tblZvyR7J8hndLlUZ",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"Name": "={{ $json.issueTitle }}",
"Status": "Todo",
"Severity": "={{ $json.severity }}",
"FAQ Match": "={{ $json.faqMatch }}",
"Error Code": "={{ $json.airtableFields[\"Error Code\"] }}",
"Repository": "={{ $json.airtableFields.Repository }}",
"Root Cause": "={{ $json.rootCause }}",
"Source URL": "={{ $json.airtableFields[\"Source URL\"] }}",
"Error Category": "={{ $json.airtableFields[\"Error Category\"] }}",
"Suggested Action": "={{ $json.suggestedAction }}",
"Affected Endpoint": "={{ $json.affectedEndpoint }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Assignee",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Assignee",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Attachments",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Attachments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Attachment Summary",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Attachment Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Error Code",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Error Code",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Error Category",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Error Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "FAQ Match",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "FAQ Match",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Root Cause",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Root Cause",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Suggested Action",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Suggested Action",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Confidence",
"type": "number",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Confidence",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Affected Endpoint",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Affected Endpoint",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Source URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Source URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Repository",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Repository",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Number",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created At",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Created At",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "nWc9JHR6t25WPWVV",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2
},
{
"id": "be976a3b-ab8e-4095-9ba1-b36d47bc6817",
"name": "Notion: 记录 Issue (DevOps)",
"type": "n8n-nodes-base.notion",
"position": [
256,
-160
],
"parameters": {
"title": "={{ $json.fields.Name }}",
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "url",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Status|status",
"statusValue": "Todo"
},
{
"key": "Error Category|select",
"selectValue": "={{ $json.fields[\"Error Category\"] }}"
},
{
"key": "FAQ Match|rich_text",
"textContent": "={{ $json.fields[\"FAQ Match\"] }}"
},
{
"key": "Root Cause|rich_text",
"textContent": "={{ $json.fields[\"Root Cause\"] }}"
},
{
"key": "Suggested Action|rich_text",
"textContent": "={{ $json.fields[\"Suggested Action\"] }}"
},
{
"key": "Severity|select",
"selectValue": "High"
},
{
"key": "Affected Endpoint|rich_text",
"textContent": "={{ $json.fields[\"Affected Endpoint\"] }}"
},
{
"key": "Source URL|url",
"urlValue": "={{ $json.fields[\"Source URL\"] }}"
},
{
"key": "Repository|rich_text",
"textContent": "={{ $json.fields.Repository }}"
},
{
"key": "Created At|date",
"date": "={{ $json.fields[\"Created At\"] }}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "E9jA8DFWT2IxdpMU",
"name": "Notion account Vivek"
}
},
"typeVersion": 2.2
},
{
"id": "63b1b8c7-f049-45e7-9985-ed0da37a66c2",
"name": "Slack 通知: DevOps 团队",
"type": "n8n-nodes-base.slack",
"position": [
480,
-160
],
"webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
"parameters": {
"text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": ""
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.1
},
{
"id": "294932fc-d262-4915-98d1-be5d4a2357c5",
"name": "Notion: 记录 Issue (Backend)",
"type": "n8n-nodes-base.notion",
"position": [
32,
32
],
"parameters": {
"title": "={{ $json.airtableFields[\"Error Code\"] }}",
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "url",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Status|status",
"statusValue": "Todo"
},
{
"key": "Error Category|select",
"selectValue": "={{ $json.airtableFields[\"Error Category\"] }}"
},
{
"key": "FAQ Match|rich_text",
"textContent": "={{ $json.airtableFields[\"FAQ Match\"] }}"
},
{
"key": "Root Cause|rich_text",
"textContent": "={{ $json.airtableFields[\"Root Cause\"] }}"
},
{
"key": "Suggested Action|rich_text",
"textContent": "={{ $json.airtableFields[\"Suggested Action\"] }}"
},
{
"key": "Severity|select",
"selectValue": "High"
},
{
"key": "Affected Endpoint|rich_text",
"textContent": "={{ $json.airtableFields[\"Affected Endpoint\"] }}"
},
{
"key": "Source URL|url",
"urlValue": "={{ $json.airtableFields[\"Source URL\"] }}"
},
{
"key": "Repository|rich_text",
"textContent": "={{ $json.airtableFields.Repository }}"
},
{
"key": "Created At|date",
"date": "={{ $json.airtableFields[\"Created At\"] }}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "E9jA8DFWT2IxdpMU",
"name": "Notion account Vivek"
}
},
"typeVersion": 2.2
},
{
"id": "924557fe-310e-43d9-a477-50e195ea9a38",
"name": "Slack 通知: Backend 团队",
"type": "n8n-nodes-base.slack",
"position": [
256,
32
],
"webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
"parameters": {
"text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:* {{ $('Airtable: Create Record (DevOps)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": ""
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.1
},
{
"id": "f2160801-0978-4a63-8bba-07b44f075606",
"name": "Airtable: 创建记录 (Support)",
"type": "n8n-nodes-base.airtable",
"position": [
32,
224
],
"parameters": {
"base": {
"__rl": true,
"mode": "url",
"value": ""
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZvyR7J8hndLlUZ",
"cachedResultUrl": "https://airtable.com/appsZ3Uuh5PnD215s/tblZvyR7J8hndLlUZ",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"Name": "={{ $json.issueTitle }}",
"Status": "Todo",
"Severity": "={{ $json.severity }}",
"FAQ Match": "={{ $json.faqMatch }}",
"Error Code": "={{ $json.airtableFields[\"Error Code\"] }}",
"Repository": "={{ $json.airtableFields.Repository }}",
"Root Cause": "={{ $json.rootCause }}",
"Source URL": "={{ $json.airtableFields[\"Source URL\"] }}",
"Error Category": "={{ $json.airtableFields[\"Error Category\"] }}",
"Suggested Action": "={{ $json.suggestedAction }}",
"Affected Endpoint": "={{ $json.affectedEndpoint }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Assignee",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Assignee",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Attachments",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Attachments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Attachment Summary",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Attachment Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Error Code",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Error Code",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Error Category",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Error Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "FAQ Match",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "FAQ Match",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Root Cause",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Root Cause",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Suggested Action",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Suggested Action",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Confidence",
"type": "number",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Confidence",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Affected Endpoint",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Affected Endpoint",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Source URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Source URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Repository",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Repository",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Number",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created At",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Created At",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "nWc9JHR6t25WPWVV",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2
},
{
"id": "c3bcb44a-b3ce-4da0-8fd3-507dad3d1a99",
"name": "Slack 通知: Support 团队",
"type": "n8n-nodes-base.slack",
"position": [
480,
224
],
"webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
"parameters": {
"text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (Support)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (Support)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (Support)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:* {{ $('Airtable: Create Record (Support)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": ""
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.1
},
{
"id": "89a3e79b-89a9-498e-86cd-9fc06a920889",
"name": "Airtable: 创建记录 (API Team)",
"type": "n8n-nodes-base.airtable",
"position": [
32,
416
],
"parameters": {
"base": {
"__rl": true,
"mode": "url",
"value": ""
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZvyR7J8hndLlUZ",
"cachedResultUrl": "https://airtable.com/appsZ3Uuh5PnD215s/tblZvyR7J8hndLlUZ",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"Name": "={{ $json.issueTitle }}",
"Status": "Todo",
"Severity": "={{ $json.severity }}",
"FAQ Match": "={{ $json.faqMatch }}",
"Error Code": "={{ $json.airtableFields[\"Error Code\"] }}",
"Repository": "={{ $json.airtableFields.Repository }}",
"Root Cause": "={{ $json.rootCause }}",
"Source URL": "={{ $json.airtableFields[\"Source URL\"] }}",
"Error Category": "={{ $json.airtableFields[\"Error Category\"] }}",
"Suggested Action": "={{ $json.suggestedAction }}",
"Affected Endpoint": "={{ $json.affectedEndpoint }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Assignee",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Assignee",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Attachments",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Attachments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Attachment Summary",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Attachment Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Error Code",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Error Code",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Error Category",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Error Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "FAQ Match",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "FAQ Match",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Root Cause",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Root Cause",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Suggested Action",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Suggested Action",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Confidence",
"type": "number",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Confidence",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Affected Endpoint",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Affected Endpoint",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Source URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Source URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Repository",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Repository",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Number",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created At",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Created At",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "nWc9JHR6t25WPWVV",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2
},
{
"id": "e619b7fc-f78b-4899-af27-a97d73578515",
"name": "Notion: 记录 Issue (Support Team)",
"type": "n8n-nodes-base.notion",
"position": [
256,
224
],
"parameters": {
"title": "={{ $json.fields.Name }}",
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "url",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Status|status",
"statusValue": "Todo"
},
{
"key": "Error Category|select",
"selectValue": "={{ $json.fields[\"Error Category\"] }}"
},
{
"key": "FAQ Match|rich_text",
"textContent": "={{ $json.fields[\"FAQ Match\"] }}"
},
{
"key": "Root Cause|rich_text",
"textContent": "={{ $json.fields[\"Root Cause\"] }}"
},
{
"key": "Suggested Action|rich_text",
"textContent": "={{ $json.fields[\"Suggested Action\"] }}"
},
{
"key": "Severity|select",
"selectValue": "High"
},
{
"key": "Affected Endpoint|rich_text",
"textContent": "={{ $json.fields[\"Affected Endpoint\"] }}"
},
{
"key": "Source URL|url",
"urlValue": "={{ $json.fields[\"Source URL\"] }}"
},
{
"key": "Repository|rich_text",
"textContent": "={{ $json.fields.Repository }}"
},
{
"key": "Created At|date",
"date": "={{ $json.fields[\"Created At\"] }}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "E9jA8DFWT2IxdpMU",
"name": "Notion account Vivek"
}
},
"typeVersion": 2.2
},
{
"id": "eaded3ea-f394-45f8-ad39-cdb71ee40e56",
"name": "Notion: 记录 Issue (API Team)",
"type": "n8n-nodes-base.notion",
"position": [
256,
416
],
"parameters": {
"title": "={{ $json.fields.Name }}",
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "url",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Status|status",
"statusValue": "Todo"
},
{
"key": "Error Category|select",
"selectValue": "={{ $json.fields[\"Error Category\"] }}"
},
{
"key": "FAQ Match|rich_text",
"textContent": "={{ $json.fields[\"FAQ Match\"] }}"
},
{
"key": "Root Cause|rich_text",
"textContent": "={{ $json.fields[\"Root Cause\"] }}"
},
{
"key": "Suggested Action|rich_text",
"textContent": "={{ $json.fields[\"Suggested Action\"] }}"
},
{
"key": "Severity|select",
"selectValue": "High"
},
{
"key": "Affected Endpoint|rich_text",
"textContent": "={{ $json.fields[\"Affected Endpoint\"] }}"
},
{
"key": "Source URL|url",
"urlValue": "={{ $json.fields[\"Source URL\"] }}"
},
{
"key": "Repository|rich_text",
"textContent": "={{ $json.fields.Repository }}"
},
{
"key": "Created At|date",
"date": "={{ $json.fields[\"Created At\"] }}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "E9jA8DFWT2IxdpMU",
"name": "Notion account Vivek"
}
},
"typeVersion": 2.2
},
{
"id": "5f83906a-f47d-4fad-99d8-916ddf9249c7",
"name": "通知 API 团队",
"type": "n8n-nodes-base.slack",
"position": [
480,
416
],
"webhookId": "4fdaef14-d3a3-4e8b-af66-ec277655146d",
"parameters": {
"text": "=:rotating_light: *New API Error FAQ Entry*\n\n*Error Code:* {{ $('Airtable: Create Record (API Team)').item.json.fields['Error Code'] }}\n*Category:* {{ $('Airtable: Create Record (API Team)').item.json.fields['Error Category'] }}\n*FAQ Match:* {{ $('Airtable: Create Record (API Team)').item.json.fields['FAQ Match'] }}\n\n*Suggested Action:* {{ $('Airtable: Create Record (API Team)').item.json.fields['Suggested Action'] }}\n\n*GitHub Issue:* {{ $('Parse AI Classification Output').item.json.issueUrl }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": ""
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.1
},
{
"id": "72f825c7-add5-49b8-9458-dd4fa4e916b7",
"name": "错误处理触发器",
"type": "n8n-nodes-base.errorTrigger",
"position": [
-1616,
640
],
"parameters": {},
"typeVersion": 1
},
{
"id": "eb4f81f3-7256-4624-b8f5-a8050effbd57",
"name": "Slack: 发送错误警报",
"type": "n8n-nodes-base.slack",
"position": [
-1408,
640
],
"webhookId": "d5eff2c3-ff6e-4116-bdda-59455acd861b",
"parameters": {
"text": "=❌ *Error in API Error Catalog Workflow* *Node:* {{ $json.node.name }} *Message:* {{ $json.error.message }} *Time:* {{ $json.timestamp }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": ""
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "7c0f800e-2632-4c48-b0ab-da4672f352ae",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1888,
496
],
"parameters": {
"color": 2,
"width": 672,
"height": 336,
"content": "## 🚨 错误处理"
},
"typeVersion": 1
},
{
"id": "07514bfc-fd27-44e9-b269-25ef437daa3e",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1776,
-592
],
"parameters": {
"width": 512,
"height": 416,
"content": "## 🧩 构建基于 AI 的 API 错误目录"
},
"typeVersion": 1
},
{
"id": "616d9e85-fd78-40be-9508-1aea10a8896f",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
-352
],
"parameters": {
"color": 2,
"height": 976,
"content": "## 💬 Slack 警报"
},
"typeVersion": 1
},
{
"id": "8f53d912-7112-4496-bbee-a5c084fc3765",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
-592
],
"parameters": {
"width": 320,
"height": 272,
"content": "## 🔐 凭据与安全"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7b4afc5d-daca-4124-ac02-953beffca4a2",
"connections": {
"AI Memory Buffer": {
"ai_memory": [
[
{
"node": "AI: Classify API Error (GPT-4o)",
"type": "ai_memory",
"index": 0
}
]
]
},
"LLM Model: GPT-4o": {
"ai_languageModel": [
[
{
"node": "AI: Classify API Error (GPT-4o)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Error Handler Trigger": {
"main": [
[
{
"node": "Slack: Send Error Alert",
"type": "main",
"index": 0
}
]
]
},
"Route by Assigned Team": {
"main": [
[
{
"node": "Airtable: Create Record (DevOps)",
"type": "main",
"index": 0
}
],
[
{
"node": "Notion: Log Issue (Backend)",
"type": "main",
"index": 0
}
],
[
{
"node": "Airtable: Create Record (Support)",
"type": "main",
"index": 0
}
],
[
{
"node": "Airtable: Create Record (API Team)",
"type": "main",
"index": 0
}
]
]
},
"Prepare GitHub Issue Data": {
"main": [
[
{
"node": "AI: Classify API Error (GPT-4o)",
"type": "main",
"index": 0
}
]
]
},
"Notion: Log Issue (DevOps)": {
"main": [
[
{
"node": "Slack Notify: DevOps Team",
"type": "main",
"index": 0
}
]
]
},
"Notion: Log Issue (Backend)": {
"main": [
[
{
"node": "Slack Notify: Backend Team",
"type": "main",
"index": 0
}
]
]
},
"GitHub Issue Created/Updated": {
"main": [
[
{
"node": "Prepare GitHub Issue Data",
"type": "main",
"index": 0
}
]
]
},
"Notion: Log Issue (API Team)": {
"main": [
[
{
"node": "Notify API Team",
"type": "main",
"index": 0
}
]
]
},
"Parse AI Classification Output": {
"main": [
[
{
"node": "Check: Valid AI Response or Data Missing",
"type": "main",
"index": 0
}
]
]
},
"AI: Classify API Error (GPT-4o)": {
"main": [
[
{
"node": "Parse AI Classification Output",
"type": "main",
"index": 0
}
]
]
},
"Airtable: Create Record (DevOps)": {
"main": [
[
{
"node": "Notion: Log Issue (DevOps)",
"type": "main",
"index": 0
}
]
]
},
"Notion: Log Issue (Support Team)": {
"main": [
[
{
"node": "Slack Notify: Support Team",
"type": "main",
"index": 0
}
]
]
},
"Airtable: Create Record (Support)": {
"main": [
[
{
"node": "Notion: Log Issue (Support Team)",
"type": "main",
"index": 0
}
]
]
},
"Airtable: Create Record (API Team)": {
"main": [
[
{
"node": "Notion: Log Issue (API Team)",
"type": "main",
"index": 0
}
]
]
},
"Output Parser: Structured JSON Schema": {
"ai_outputParser": [
[
{
"node": "AI: Classify API Error (GPT-4o)",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Check: Valid AI Response or Data Missing": {
"main": [
[
{
"node": "Route by Assigned Team",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 工单管理, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI 客户支持分流与摘要系统
使用GPT-4o、Slack和CRM集成自动处理客户支持
If
Set
Code
+10
32 节点NodeAlchemy
工单管理
使用AI验证GitHub配置并将问题记录到表格和Slack
使用GPT-4o-mini验证GitHub配置并将问题记录到表格和Slack
Code
Merge
Slack
+9
22 节点Rahul Joshi
开发运维
支持收件箱到常见问题解答回填(Gmail/Outlook)
使用GPT-4o、Gmail、Notion和Slack将支持邮件转换为常见问题解答
If
Code
Gmail
+7
21 节点Rahul Joshi
工单管理
🎧 IT语音支持自动化机器人 – Telegram语音消息转JIRA工单(使用OpenAI Whisper)
通过Whisper和GPT-4.1 Mini将Telegram语音消息自动转换为JIRA工单
If
Set
Code
+11
25 节点Trung Tran
工单管理
使用GPT-4自动化从ClickUp到Slack和Gmail的每日晨报生成
使用GPT-4o从ClickUp生成AI驱动的晨报并发送至Slack和Gmail
If
Code
Gmail
+9
27 节点Rahul Joshi
API速率限制与认证FAQ测试
使用GPT-4o-mini、Google表格和Slack提醒自动化API常见问题质量测试
If
Set
Code
+7
19 节点Rahul Joshi
文档提取
工作流信息
难度等级
高级
节点数量30
分类2
节点类型14
作者
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
外部链接
在 n8n.io 查看 →
分享此工作流