8
n8n 中文网amn8n.com

构建基于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
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 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)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量30
分类2
节点类型14
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Rahul Joshi

Rahul Joshi

@rahul08

Rahul 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 查看

分享此工作流