8
n8n 中文网amn8n.com

使用 GPT-4o 和 gotoHuman 监督分类邮件并发送回复

高级

这是一个Ticket Management, Multimodal AI领域的自动化工作流,包含 24 个节点。主要使用 Set, Gmail, Switch, GmailTrigger, Agent 等节点。 使用 GPT-4o 和 gotoHuman 监督分类邮件并发送回复

前置要求
  • Google 账号和 Gmail API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "5ec543f78db8e552b46818580d4137dda2f58675a1a45426c44ae175fc35ac62"
  },
  "nodes": [
    {
      "id": "2b131412-e9f1-4a8b-a268-0c9b21443aa7",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -752,
        256
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {},
      "typeVersion": 1.2
    },
    {
      "id": "db840ba6-5bf2-4355-af2c-35d6a9b2059a",
      "name": "OpenAI 聊天模型2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        368,
        96
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {},
      "typeVersion": 1.2
    },
    {
      "id": "54e8ca88-61d2-4ecf-97be-5bde43f92adf",
      "name": "新邮件",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -880,
        16
      ],
      "parameters": {
        "simple": false,
        "filters": {},
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {},
      "typeVersion": 1.2
    },
    {
      "id": "138f84f1-1e44-4a2f-b2cf-574f196fabb1",
      "name": "AI 分类器",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -672,
        16
      ],
      "parameters": {
        "text": "=From: {{ $json.from.text }}\nTo: {{ $json.to.text }}\nSubject: {{ $json.subject }}\nBody:\n{{ $json.text }}",
        "options": {
          "systemMessage": "You are a helpful email assistant analyzing the email passed by the user.\nPlease determine whether we need to reply and if you would flag it as important. Also classify the email into one of the following categories:\n- Customer Support\n- Partnership Inquiry\n- Sales opportunity\n- Transactional notification\n- Promotion\n- Spam\n- Personal"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "f96111be-c199-4e19-84d7-15062c5bbcae",
      "name": "AI 邮件撰写器",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        416,
        -80
      ],
      "parameters": {
        "text": "=From: {{ $('New Email').item.json.from.text }}\nTo: {{ $('New Email').item.json.to.text }}\nSubject: {{ $('New Email').item.json.subject }}\nBody:\n{{ $('New Email').item.json.text }}",
        "options": {
          "systemMessage": "={{ $json.prompt }}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "4aa78fde-0378-43ac-8de4-5eb16d4654db",
      "name": "无需回复",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1632,
        -176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "fabc6e2c-338c-4fd5-892e-a9d41eb2fbf7",
      "name": "设置提示词",
      "type": "n8n-nodes-base.set",
      "position": [
        208,
        -80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d1b93765-fd43-4c01-aff9-f96170b77cd9",
              "name": "prompt",
              "type": "string",
              "value": "You are a helpful email assistant. Please draft a reply to the email passed by the user. Match the writing style of the received email. If you cannot answer questions or draft a complete reply, incl. placeholders. A user will review your draft after this and can fill in more info. Incl. the body of the email only, we are responding within the thread."
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "052cbe31-443a-4b3a-8429-fb775703eee0",
      "name": "设置(编辑后)提示词",
      "type": "n8n-nodes-base.set",
      "position": [
        1632,
        512
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f10b4f0b-3756-48e9-a7f6-51299ad48427",
              "name": "prompt",
              "type": "string",
              "value": "={{ $json.messages[0].content || $('Set Prompt').item.json.prompt }}"
            },
            {
              "id": "9a7c60fe-a782-4660-97fe-a7fc851cbb45",
              "name": "reviewToUpdate",
              "type": "string",
              "value": "={{ $json.reviewId }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "333ddcdf-c633-4824-9096-d1d47a564eb9",
      "name": "结构化输出",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        576,
        96
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"textEmailDraft\": \"Hello Jack...\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "6b82f29b-240a-42ba-a326-cfe92660e621",
      "name": "结构化输出1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -480,
        256
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"classifiedAs\": \"support\",\n    \"needsReply\": true,\n    \"important\": false\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "3d2ca961-b126-4b45-a87c-675128886bbb",
      "name": "需要人工关注?",
      "type": "n8n-nodes-base.switch",
      "position": [
        -320,
        0
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Needs reply",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "b5af0410-a10b-4b7c-a4e9-33f351a9c988",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.output.needsReply }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Needs no reply but important",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "ace11ff1-0722-475a-ba61-706bc21f9e8f",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ !$json.output.needsReply && $json.output.important }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Don't bother",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "d36d5ec4-90a8-4a70-bedd-4a3534dc0308",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ !$json.output.needsReply && !$json.output.important }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "b8d8ef38-2c99-418b-94bd-9fcd825a3a3a",
      "name": "不重要",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -80,
        192
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8afb91b3-70ca-4d20-8dc0-d8e82d47b16b",
      "name": "gotoHuman:人工审核",
      "type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
      "position": [
        1056,
        0
      ],
      "webhookId": "f445153e-594c-4e61-9f32-b6b4e87c1411",
      "parameters": {
        "fields": {
          "value": {
            "email": "={{ $('New Email').item.json.textAsHtml }}",
            "sender": "={{ $('New Email').item.json.from.text }}",
            "emailDraft": "={{ $json.output?.textEmailDraft ? {ai: {prompt: $('Set Prompt').item.json.prompt}, content: $json.output?.textEmailDraft} : \"No reply needed - FYI only\" }}",
            "classification": "={{ $('AI Classifier').item.json.output.classifiedAs }}"
          },
          "schema": [
            {
              "id": "sender",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "sender (textShort)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email (emailHtml)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "classification",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "classification (textShort)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "emailDraft",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "emailDraft (text)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "additionalFields": {
          "updateForReviewId": "={{ $('Set (edited) prompt').isExecuted ? $('Set (edited) prompt').item.json.reviewToUpdate : null }}"
        },
        "reviewTemplateID": {
          "__rl": true,
          "mode": "list"
        }
      },
      "credentials": {},
      "typeVersion": 1
    },
    {
      "id": "d7496fcc-e8d5-45fd-94af-0190be114308",
      "name": "人工回复",
      "type": "n8n-nodes-base.switch",
      "position": [
        1360,
        -16
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Rejected",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "c25eb32d-e664-420c-8574-946f9e1c10cf",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response }}",
                    "rightValue": "rejected"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Approved",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a55f8641-84eb-4043-a573-9958b9606571",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response }}",
                    "rightValue": "approved"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Retry",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "feaea8d7-d127-4a03-a87d-2269551ab775",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.type }}",
                    "rightValue": "chat"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "c1b741a5-4bb5-4570-acae-c4d6d0aef7f4",
      "name": "回复邮件线程",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2016,
        0
      ],
      "webhookId": "f5644cf1-21dd-446e-91b1-06a6958cdc27",
      "parameters": {
        "message": "={{ $json.responseValues.emailDraft.value }}",
        "options": {
          "appendAttribution": false
        },
        "emailType": "text",
        "messageId": "={{ $('New Email').item.json.id }}",
        "operation": "reply"
      },
      "credentials": {},
      "typeVersion": 2.1
    },
    {
      "id": "2d0ee5a2-b7f6-4e83-9640-4005526c451b",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        -80
      ],
      "parameters": {
        "color": 7,
        "height": 272,
        "content": "![源示例](https://cdn.prod.website-files.com/6605a2979ff17b2cd1939cd4/6877ff9cd93f480ff6eb4def_677c04b5cd6a77eb434526bf9c0eaaca_gotoHuman%20full%20logo.svg)"
      },
      "typeVersion": 1
    },
    {
      "id": "b24bd496-feed-4825-8de2-0c04252ffa9e",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        -224
      ],
      "parameters": {
        "color": 7,
        "width": 848,
        "height": 640,
        "content": "## 分类邮件"
      },
      "typeVersion": 1
    },
    {
      "id": "cb439e6b-dbe7-4e8a-9830-ea95293319c1",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -208
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 624,
        "content": "## 起草邮件回复"
      },
      "typeVersion": 1
    },
    {
      "id": "83096ad5-1749-4863-85c7-05148bc8c583",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        -208
      ],
      "parameters": {
        "color": 7,
        "width": 656,
        "height": 624,
        "content": "## 人工审核"
      },
      "typeVersion": 1
    },
    {
      "id": "aeeda5cc-c5ff-4bfe-ac35-7730efca93bb",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        448
      ],
      "parameters": {
        "color": 7,
        "width": 896,
        "height": 336,
        "content": "## 人工要求重试"
      },
      "typeVersion": 1
    },
    {
      "id": "c20abf9e-385a-4263-9205-8739a95093be",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1808,
        -224
      ],
      "parameters": {
        "color": 7,
        "width": 560,
        "height": 432,
        "content": "## 发送已批准的回复"
      },
      "typeVersion": 1
    },
    {
      "id": "e5994c92-1179-421d-957a-ecc413e41e8d",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -1056
      ],
      "parameters": {
        "width": 784,
        "height": 816,
        "content": "gotoHuman - 审核中"
      },
      "typeVersion": 1
    },
    {
      "id": "890831e1-89c0-4978-9b1f-6bdd00fceea4",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        800
      ],
      "parameters": {
        "width": 1072,
        "height": 352,
        "content": "gotoHuman - 使用 AI 重试"
      },
      "typeVersion": 1
    },
    {
      "id": "3ecfaedc-0b01-47f4-b6d1-bbde0426cc23",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        -976
      ],
      "parameters": {
        "width": 688,
        "height": 720,
        "content": "## AI 邮件助手 🤖📧"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "New Email": {
      "main": [
        [
          {
            "node": "AI Classifier",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Prompt": {
      "main": [
        [
          {
            "node": "AI Email Writer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Classifier": {
      "main": [
        [
          {
            "node": "Needs Human Attention?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Human response": {
      "main": [
        [
          {
            "node": "No reply",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Reply to thread",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set (edited) prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Email Writer": {
      "main": [
        [
          {
            "node": "gotoHuman: Human review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Classifier",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output": {
      "ai_outputParser": [
        [
          {
            "node": "AI Email Writer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "AI Email Writer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output1": {
      "ai_outputParser": [
        [
          {
            "node": "AI Classifier",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Set (edited) prompt": {
      "main": [
        [
          {
            "node": "AI Email Writer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Needs Human Attention?": {
      "main": [
        [
          {
            "node": "Set Prompt",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "gotoHuman: Human review",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Not important",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gotoHuman: Human review": {
      "main": [
        [
          {
            "node": "Human response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 工单管理, 多模态 AI

需要付费吗?

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

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

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

作者
gotoHuman

gotoHuman

@gotohuman

Approve critical actions in gotoHuman’s customizable review interface and edit AI outputs manually or by looping back to your workflow. Ensure AI-generated content is on-brand, messages to customers are accurate, and high-stakes decisions are made by humans.

外部链接
在 n8n.io 查看

分享此工作流