8
n8n 中文网amn8n.com

Noco看板与AI优先级排序

高级

这是一个Support, AI, IT Ops领域的自动化工作流,包含 27 个节点。主要使用 If, Set, Slack, NocoDb, Aggregate 等节点,结合人工智能技术实现智能自动化。 使用AI分配请求并根据NocoDB看板状态发送提醒

前置要求
  • Slack Bot Token 或 Webhook URL
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "E2hq7z4ANLoL5vw1",
  "meta": {
    "instanceId": "bdce9ec27bbe2b742054f01d034b8b468d2e7758edd716403ad5bd4583a8f649",
    "templateCredsSetupCompleted": true
  },
  "name": "Noco 看板与 AI 优先级排序",
  "tags": [],
  "nodes": [
    {
      "id": "4976d737-a419-4cc6-a8fc-dc1a9482642d",
      "name": "事件表单",
      "type": "n8n-nodes-base.formTrigger",
      "disabled": true,
      "position": [
        -100,
        200
      ],
      "webhookId": "fef1bb69-69e9-49ff-ba29-ded7cc398a13",
      "parameters": {
        "options": {},
        "formTitle": "Incident Form",
        "formFields": {
          "values": [
            {
              "fieldType": "email",
              "fieldLabel": "Email",
              "placeholder": "Your Email",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Incident Description",
              "placeholder": "Incident Description",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Incident Desired Category",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Critical"
                  },
                  {
                    "option": "Major"
                  },
                  {
                    "option": "Medium"
                  },
                  {
                    "option": "Minor"
                  },
                  {
                    "option": "Support"
                  },
                  {
                    "option": "Feature"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "formDescription": "Experiencing issues? Fill in this incident form so we can take care of it"
      },
      "typeVersion": 2.2
    },
    {
      "id": "f9829dfd-c8bd-45c0-b9ac-fe496d527df8",
      "name": "分配类别",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        620,
        100
      ],
      "parameters": {
        "text": "=You are professional support assistance. You are receiving information about different issues users are having. Your task is to assign proper category to task requested.\n\nYou should output:\n- category based on definitions provided\n- response time assgined to category\n- resolution time assigned to category\n- default assignee\n\nDefinitions:\n{{ $json.data.toJsonString() }}\n\nTask request is:\n{{ $('On schedule or during flow').item.json['Incident Description'] }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8,
      "alwaysOutputData": true
    },
    {
      "id": "bef9f61d-0019-4407-a0fc-9a4c44894d6e",
      "name": "OpenAI 聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        540,
        280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "zjIZQuuuZMJpiUny",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ccb2092e-f9bb-4b64-987a-d4349b401d5c",
      "name": "结构化输出 Todoist 就绪1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        860,
        260
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"category\": \"critical\",\n  \"response_time\": \"1\",\n  \"resolution_time\": \"8\",\n  \"default_assignee\": \"email@example.com\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "7b8fa2ca-5697-4792-ab60-3506be78bcdf",
      "name": "获取事件定义",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        180,
        100
      ],
      "parameters": {
        "table": "mt94l49b6zocsxy",
        "options": {
          "fields": [
            "Title",
            "Definition",
            "Response time",
            "Resolution time",
            "Default assignee"
          ]
        },
        "operation": "getAll",
        "projectId": "pksfpoc943gwhvy",
        "returnAll": true,
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "6KgsjKtnCVIEbBwC",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "b6023ac0-0a43-47b5-add3-f11c4bb8a5d1",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        0
      ],
      "parameters": {
        "height": 440,
        "content": "## 事件表单"
      },
      "typeVersion": 1
    },
    {
      "id": "1a207b67-98de-40e6-8ec2-eb64e515cc14",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        120,
        0
      ],
      "parameters": {
        "width": 1320,
        "height": 440,
        "content": "## 解析事件"
      },
      "typeVersion": 1
    },
    {
      "id": "e28f77db-4701-4df2-a79c-b7239a4b4e1f",
      "name": "插入事件",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        1260,
        260
      ],
      "parameters": {
        "table": "mwh33g1yyeg9z6k",
        "operation": "create",
        "projectId": "pksfpoc943gwhvy",
        "dataToSend": "autoMapInputData",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "6KgsjKtnCVIEbBwC",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "17ccb056-2f0b-4a38-812b-e869842c7032",
      "name": "聚合以供 AI 解析",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        400,
        100
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "0048bfe3-0e1f-4a2d-8200-900a56afb21b",
      "name": "按计划或在流程中",
      "type": "n8n-nodes-base.noOp",
      "position": [
        160,
        820
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "25370677-2364-426f-a7ed-f87e4f5d9223",
      "name": "当点击“测试工作流”时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -120,
        900
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "930fc886-6c1d-4613-b312-360bd37544fa",
      "name": "任务在预期响应后未被接取",
      "type": "n8n-nodes-base.if",
      "position": [
        660,
        620
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e860430a-ec94-4dce-9196-5da467e6af2f",
              "operator": {
                "type": "dateTime",
                "operation": "before"
              },
              "leftValue": "={{ $json['Expected Response'] }}",
              "rightValue": "={{ $now }}"
            },
            {
              "id": "278afe7e-2e68-461b-a0fb-baa530cb0819",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "todo"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a11567b4-e5e7-4e64-970d-51e61e6f376f",
      "name": "发送邮件给客户",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1000,
        540
      ],
      "webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
      "parameters": {
        "text": "We are sorry that we have not yet looked at your message. Although We are working heavily, currently all our developers are busy. But we have reminded asignee on your request and we will reply to you shortly.",
        "options": {},
        "subject": "Your task is important to us",
        "toEmail": "={{ $json.email }}",
        "fromEmail": "support@example.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "id": "tkdzDgcUAt04af3B",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ea9d3ad5-0dd5-428f-8a23-60999c7134f4",
      "name": "每天检查状态",
      "type": "n8n-nodes-base.scheduleTrigger",
      "disabled": true,
      "position": [
        -120,
        720
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ce94960f-56c8-4b67-81af-ece07f97c94f",
      "name": "发送邮件给负责人",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1260,
        640
      ],
      "webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
      "parameters": {
        "text": "You have an outstanding task that should be picked up. Visit your kanban board for more information ",
        "options": {},
        "subject": "Your task is important to us",
        "toEmail": "={{ $json.assignee }}",
        "fromEmail": "support@example.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "id": "tkdzDgcUAt04af3B",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "8c1cc107-76aa-4d62-871d-d107f2055071",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        360,
        460
      ],
      "parameters": {
        "width": 1080,
        "height": 400,
        "content": "## 保持通知"
      },
      "typeVersion": 1
    },
    {
      "id": "b6fb24c3-2a04-4906-be2e-510356cd5f76",
      "name": "获取未接取任务",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        420,
        620
      ],
      "parameters": {
        "limit": 5,
        "table": "mwh33g1yyeg9z6k",
        "options": {
          "where": "(status,eq,todo)",
          "fields": []
        },
        "operation": "getAll",
        "projectId": "pksfpoc943gwhvy",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "6KgsjKtnCVIEbBwC",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "5d5b635d-0302-462d-94a5-7055a63e85ac",
      "name": "获取未完成任务",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        420,
        1060
      ],
      "parameters": {
        "limit": 5,
        "table": "mwh33g1yyeg9z6k",
        "options": {
          "where": "(status,eq,todo)",
          "fields": []
        },
        "operation": "getAll",
        "projectId": "pksfpoc943gwhvy",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "6KgsjKtnCVIEbBwC",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "4a8724da-a752-46fc-8753-ae6344d9d6d3",
      "name": "任务未在预期时间内完成",
      "type": "n8n-nodes-base.if",
      "position": [
        660,
        1060
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e860430a-ec94-4dce-9196-5da467e6af2f",
              "operator": {
                "type": "dateTime",
                "operation": "before"
              },
              "leftValue": "={{ $json['Expected Resolution'] }}",
              "rightValue": "={{ $now }}"
            },
            {
              "id": "278afe7e-2e68-461b-a0fb-baa530cb0819",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "done"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "03fc4e3d-3a49-417e-b0e7-b71cd684e8f7",
      "name": "发送邮件给客户1",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1000,
        960
      ],
      "webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
      "parameters": {
        "text": "We are sorry that we have not yet finished your task. Although We are working heavily, currently all our developers are busy. But we have reminded asignee on your request and we will reply to you shortly.",
        "options": {},
        "subject": "Your task is important to us",
        "toEmail": "={{ $json.email }}",
        "fromEmail": "support@example.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "id": "tkdzDgcUAt04af3B",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ddeeee95-41b6-47e1-add5-60de172d0117",
      "name": "如果有负责人邮箱",
      "type": "n8n-nodes-base.if",
      "position": [
        1000,
        720
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3e686523-7208-40f8-b857-7db42ccb0e12",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.assignee }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "fb8a3bf0-0f15-4ea3-b61e-f9b582d64d3f",
      "name": "如果有负责人 Slack",
      "type": "n8n-nodes-base.if",
      "position": [
        1000,
        1140
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8a70caa3-b692-49c5-a92c-dedff9a8e2ba",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json['assignee slack'] }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c31d46a2-d1f2-4573-a4dd-f07a7f9b2e52",
      "name": "Slack 通知负责人",
      "type": "n8n-nodes-base.slack",
      "position": [
        1260,
        980
      ],
      "webhookId": "2a3764a2-a030-4d99-9dae-0a691934d778",
      "parameters": {
        "text": "You have unfinished task in progress. Inform client on your next steps and update expected resolution time.",
        "user": {
          "__rl": true,
          "mode": "username",
          "value": "={{ $json['assignee slack'] }}"
        },
        "select": "user",
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "B0jUtT53pVAEPaQM",
          "name": "Slack Oauth"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "ff015cfa-c234-453a-aef5-b2a2d4bda6db",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        360,
        880
      ],
      "parameters": {
        "width": 1080,
        "height": 460,
        "content": "## 任务未完成"
      },
      "typeVersion": 1
    },
    {
      "id": "516f487a-8f3c-457c-8c35-134c66dacc2f",
      "name": "再次发送邮件给负责人",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1260,
        1160
      ],
      "webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
      "parameters": {
        "text": "You have an unfninished task that should be done by now. Visit your kanban board for more information ",
        "options": {},
        "subject": "Your task is important to us",
        "toEmail": "={{ $json.assignee }}",
        "fromEmail": "support@example.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "id": "tkdzDgcUAt04af3B",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ab931ca8-ea7a-433c-bf1c-26c9fb67722b",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        560
      ],
      "parameters": {
        "width": 480,
        "height": 580,
        "content": "## 每日触发任务检查"
      },
      "typeVersion": 1
    },
    {
      "id": "b432ed80-eb24-4978-b711-83660a8edeaf",
      "name": "为 Noco 格式化",
      "type": "n8n-nodes-base.set",
      "position": [
        1040,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b75b02b8-3365-4830-ad28-87e76836c938",
              "name": "email",
              "type": "string",
              "value": "={{ $('On schedule or during flow').item.json.Email }}"
            },
            {
              "id": "2a0d4d0f-1b1c-40ec-8fb7-f0be9af544f9",
              "name": "message",
              "type": "string",
              "value": "={{ $('On schedule or during flow').item.json['Incident Description'] }}"
            },
            {
              "id": "60fc4759-3026-4d04-9853-b474dbe92d43",
              "name": "expected category",
              "type": "string",
              "value": "={{ $('On schedule or during flow').item.json['Incident Desired Category'] }}"
            },
            {
              "id": "3eccf7ae-f2eb-4997-b304-15428fdf5fb5",
              "name": "assigned category",
              "type": "string",
              "value": "={{ $json.output.category }}"
            },
            {
              "id": "f70e8b0d-4818-405b-ba36-4dc3d31bd11b",
              "name": "status",
              "type": "string",
              "value": "todo"
            },
            {
              "id": "e8ddc64f-d5f0-482e-93d6-a4fd082e3505",
              "name": "Expected Response",
              "type": "string",
              "value": "={{ $now.plus($json.output.response_time, 'hours') }}"
            },
            {
              "id": "be04bc69-e2a6-4c7c-9e94-d39f8b0e4f39",
              "name": "Expected Resolution",
              "type": "string",
              "value": "={{ $now.plus($json.output.resolution_time, 'hours') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2c6430f3-da2b-41bf-951d-b650ba63475a",
  "connections": {
    "Incident Form": {
      "main": [
        [
          {
            "node": "Get incident definitions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assign Category": {
      "main": [
        [
          {
            "node": "Format for Noco",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format for Noco": {
      "main": [
        [
          {
            "node": "Insert Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Insert Incident": {
      "main": [
        [
          {
            "node": "On schedule or during flow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack to assignee": {
      "main": [
        []
      ]
    },
    "Get Unpicked Tasks": {
      "main": [
        [
          {
            "node": "Task is not picked up after expected response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Assign Category",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get Unfinished Tasks": {
      "main": [
        [
          {
            "node": "Task is not complete in expected time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send email to asignee": {
      "main": [
        []
      ]
    },
    "Check status every day": {
      "main": [
        [
          {
            "node": "On schedule or during flow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate for AI parsing": {
      "main": [
        [
          {
            "node": "Assign Category",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get incident definitions": {
      "main": [
        [
          {
            "node": "Aggregate for AI parsing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If there is asignee email": {
      "main": [
        [
          {
            "node": "Send email to asignee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If there is assignee slack": {
      "main": [
        [
          {
            "node": "Slack to assignee",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send another email to asignee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On schedule or during flow": {
      "main": [
        [
          {
            "node": "Get Unpicked Tasks",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Unfinished Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structure Output Todoist Ready1": {
      "ai_outputParser": [
        [
          {
            "node": "Assign Category",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "On schedule or during flow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Task is not complete in expected time": {
      "main": [
        [
          {
            "node": "Send email to client1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "If there is assignee slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Task is not picked up after expected response": {
      "main": [
        [
          {
            "node": "Send email to client",
            "type": "main",
            "index": 0
          },
          {
            "node": "If there is asignee email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 客户支持, 人工智能, IT 运维

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

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

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

作者
Łukasz

Łukasz

@lukaszpp

Developer, automation enthusiast and dedicated CTO/CEO

外部链接
在 n8n.io 查看

分享此工作流