8
n8n 中文网amn8n.com

智能支持分类器-最终版-V140525.9

中级

这是一个Support, AI领域的自动化工作流,包含 8 个节点。主要使用 Set, Wait, Gmail, GoogleSheets, ManualTrigger 等节点,结合人工智能技术实现智能自动化。 使用Gmail、OpenAI GPT-3.5和Google表格自动处理客户支持邮件

前置要求
  • Google 账号和 Gmail API 凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "PBL0Vnp0dTenhlDm",
  "meta": {
    "instanceId": "0c91cd2a3133931f13781d4dcd6db321515413596b36e6bddb494176726841a7"
  },
  "name": "智能支持分类器-最终版-V140525.9",
  "tags": [
    {
      "id": "a6b41kNUtX65uzIo",
      "name": "tuguidragos.com",
      "createdAt": "2025-05-14T18:52:56.055Z",
      "updatedAt": "2025-05-14T18:52:56.055Z"
    }
  ],
  "nodes": [
    {
      "id": "20a686b8-bcb3-4b1e-82c4-777ff21702d4",
      "name": "启动工作流",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        480,
        40
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9297e730-ce96-48bc-af9c-140713730e5f",
      "name": "获取新支持邮件",
      "type": "n8n-nodes-base.gmail",
      "position": [
        660,
        40
      ],
      "webhookId": "90228d6b-baee-4dcc-a2fb-a16931c8d298",
      "parameters": {
        "filters": {
          "labelIds": [
            "Label_7360154076951125746"
          ]
        },
        "operation": "getAll",
        "authentication": "serviceAccount"
      },
      "typeVersion": 2.1
    },
    {
      "id": "9607cc7a-f74c-447c-a094-bce30ce384e3",
      "name": "AI:分类客户请求",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        840,
        40
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-3.5-turbo",
          "cachedResultName": "GPT-3.5-TURBO"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a customer support specialist for a premium streetwear brand.\n\nYour task is:\n1. Read the customer message below.\n2. Reply in a helpful, friendly and clear tone (do NOT include category or tone in your reply).\n3. Return a JSON object like this:\n\n{\n  \"reply\": \"...\",\n  \"category\": \"...\",   // one of: Complaint, Return, Exchange, Refund, General\n  \"tone\": \"...\"        // one of: calm, happy, confused, nervous, angry, urgent\n}\n\nCustomer message: \"{{ $json[\"snippet\"] }}\""
            }
          ]
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "0f44581f-cb39-4c7b-90b2-ffe5000a12c6",
      "name": "等待AI响应",
      "type": "n8n-nodes-base.wait",
      "position": [
        1200,
        40
      ],
      "webhookId": "2e4019c7-4a7a-4613-ae2b-0d83c8ac2258",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "a67f020c-c5c8-4d3d-be3b-eff344025afe",
      "name": "准备表格录入数据",
      "type": "n8n-nodes-base.set",
      "position": [
        1400,
        40
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a0f2548d-b19f-4571-885a-fcd1d9717859",
              "name": "reply",
              "type": "string",
              "value": "={{ JSON.parse($json[\"message\"][\"content\"]).reply}}"
            },
            {
              "id": "a5dda8a1-824d-4e70-be86-c7f26762efa6",
              "name": "category",
              "type": "string",
              "value": "={{ JSON.parse($json[\"message\"][\"content\"]).category }}"
            },
            {
              "id": "500684d5-d743-4612-a32f-33a07303a3a7",
              "name": "tone",
              "type": "string",
              "value": "={{ JSON.parse($json[\"message\"][\"content\"]).tone }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "be051cca-de6b-4a22-84ba-7acddf9fb549",
      "name": "在Google Sheets中记录请求",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1600,
        40
      ],
      "parameters": {
        "columns": {
          "value": {
            "Tone": "={{ $json[\"tone\"] }}",
            "Email": "={{ $node[\"Fetch New Support Email\"].json[\"From\"].match(/<(.+)>/)?.[1] || $node[\"Fetch New Support Email\"].json[\"From\"] }}",
            "Reply": "={{ $json[\"reply\"] }}",
            "Subject": "={{ $node[\"Fetch New Support Email\"].json[\"Subject\"] }}",
            "Category": "={{ $json[\"category\"] }}",
            "Timestamp": "={{ $now }}"
          },
          "schema": [
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Subject",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reply",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Reply",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Category",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Tone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UtGOIpiTxYyAOIj_8-u8k0mWaEgCmAIzfKcvd0bGZsY/edit#gid=0",
          "cachedResultName": "log"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1UtGOIpiTxYyAOIj_8-u8k0mWaEgCmAIzfKcvd0bGZsY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UtGOIpiTxYyAOIj_8-u8k0mWaEgCmAIzfKcvd0bGZsY/edit?usp=drivesdk",
          "cachedResultName": "Support_Log_SmartClassifier"
        },
        "authentication": "serviceAccount"
      },
      "typeVersion": 4.5
    },
    {
      "id": "7bf39ed5-5633-4fb4-b938-0523cc56d539",
      "name": "向客户发送自动回复",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1800,
        40
      ],
      "webhookId": "bf7651d5-9da5-4c0a-8651-d160f0446e6f",
      "parameters": {
        "sendTo": "={{ $node[\"Fetch New Support Email\"].json[\"From\"].match(/<(.*)>/)?.[1] || $node[\"Fetch New Support Email\"].json[\"From\"] }}",
        "message": "={{ $node[\"Log Request in Google Sheets\"].json[\"Reply\"] }}",
        "options": {},
        "subject": "=RE: {{ $node[\"Fetch New Support Email\"].json[\"Subject\"] }}",
        "emailType": "text",
        "authentication": "serviceAccount"
      },
      "typeVersion": 2.1
    },
    {
      "id": "1b529682-bdd3-48c1-ac13-f696d75013ef",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 2060,
        "height": 680,
        "content": "---"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6b515165-fa86-46aa-96cb-dc51f5beb393",
  "connections": {
    "Start Workflow": {
      "main": [
        [
          {
            "node": "Fetch New Support Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for AI Response": {
      "main": [
        [
          {
            "node": "Prepare Data for Sheet Entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch New Support Email": {
      "main": [
        [
          {
            "node": "AI: Categorize Customer Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Request in Google Sheets": {
      "main": [
        [
          {
            "node": "Send Auto-Response to Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Data for Sheet Entry": {
      "main": [
        [
          {
            "node": "Log Request in Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI: Categorize Customer Request": {
      "main": [
        [
          {
            "node": "Wait for AI Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

中级 - 客户支持, 人工智能

需要付费吗?

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

工作流信息
难度等级
中级
节点数量8
分类2
节点类型7
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

作者
Țugui Dragoș

Țugui Dragoș

@tuguidragos

I create no-code workflows that feel human, think smart, and close leads automatically.

外部链接
在 n8n.io 查看

分享此工作流