n8n AI 客服自动分类与工单路由:Outlook + OpenAI + JIRA
邮件与 Webhook 双渠道输入 → AI 分类与结构化解析 → 自动回复或 JIRA 工单+通知
- 给谁
- 已有 n8n 实例、使用 Outlook 与 JIRA 的支持团队,需处理邮件和在线表单请求
- 你会得到
- AI 自动分类请求并判断能否自动解决;简单问题即时回复,复杂问题创建 JIRA 工单并通知负责人
硬约束
前置条件:n8n 实例(建议 1.x 以上,含 AI 节点)、Microsoft Outlook 共享邮箱访问权限、OpenAI API Key、JIRA Cloud 项目(默认项目键 SUP)、Gmail 发件权限。费用:OpenAI 按 token 计费,n8n 自托管或云实例按平台计费。注意:Route Decision 条件在模板中为空,需根据 canAutoResolve 补全;Assign Agent 中的邮箱为占位符,必须替换为真实地址。
他们做了什么
作者 annieth 在 n8n 官方模板库发布了一个支持自动化工作流模板。该模板通过 Outlook 邮件触发与 Webhook 端点接收客户请求,利用 Function 节点将异构输入归一化为统一结构,经去重后送入 OpenAI(gpt-4o-mini/gpt-4o)进行 AI 分类,输出包含 category、urgency、expertise、canAutoResolve、isVIP 的结构化 JSON。随后通过 If 节点路由:若可自动解决,则由 Outlook 发送自动回复并通过 Webhook 返回成功响应;否则由 Function 节点分配客服并计算 SLA,再创建 JIRA 工单(项目键 SUP),最后经 Gmail 发送确认邮件。模板内包含 5 个 Sticky Note,提供团队定制、AI 分类调优、自动解决范围、Webhook 集成说明等辅助信息。
效果如何
来源报告(author_report):该模板适用于日处理 50+ 请求的支持团队,可实现多渠道接入、智能路由与一致化工单创建。模板已被 n8n 官方审核发布(status: published),累计浏览 1272 次。未提供具体 ROI 或 A/B 测试数据。
值得知道
1. Route Decision1 的 If 条件在 workflow.json 中 leftValue/rightValue 为空字符串,实际运行必须补全判断逻辑(如检查 canAutoResolve),否则路由不会按预期工作。2. Assign Agent1 中的 agents 字典全部为 [email protected] 占位符,必须替换为真实邮箱;slaHours 亦为示例值。3. JIRA 项目键默认为 SUP,Issue Type 为 Task,需按实际项目调整。4. 自动解决范围由 AI 提示词定义,当前包括密码重置、账单查询等简单问题;计费争议、安全问题、VIP 请求等被明确排除,但具体边界取决于提示词调优。5. VIP 检测目前仅基于企业域名与关键词,准确率需结合实际数据验证。6. 本站未执行导入测试(reproduction=not_tested),搭建前建议在隔离环境验证凭证与权限。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- 导入后按各需鉴权节点绑定你自己的凭证;本附件不含原作者密钥。
需要替换的配置
- 源模板来自 n8n 公开库 #7407(约 18 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-24
步骤
配置双渠道触发器
在 n8n 工作流中添加两个触发节点:Outlook Trigger(类型:Microsoft Outlook,操作 getAll,接收近 30 分钟邮件)与 Webhook Trigger(类型:Webhook,路径 support,方法 POST)。分别连接至 Normalize Data 节点。
归一化与去重
添加 Function 节点(Normalize Data),粘贴以下代码,将邮件与 Webhook 的异构字段统一为标准结构;随后添加 Remove Duplicates 节点,以 email+subject 为键去重。
运行提示词 · 来源原文。Normalize Data1 节点的 Function Code 字段
const data = $input.all(); const result = []; for (const item of data) { let normalized = { source: item.json.from ? 'email' : 'webhook', email: item.json.from?.emailAddress?.address || item.json.email, name: item.json.from?.emailAddress?.name || item.json.name, subject: item.json.subject || 'Web Request', message: item.json.body?.content || item.json.message, timestamp: new Date().toISOString() }; result.push({ json: normalized }); } return result;配置 AI 分类与结构化输出
添加 Basic LLM Chain(AI Classifier2),连接 OpenAI Chat Model(gpt-4o-mini)与 Structured Output Parser。在 LLM Chain 的 Text 字段填入用户消息模板,Messages 填入系统分类指令,Output Parser 使用以下 JSON Schema。
运行提示词 · 来源原文。AI Classifier2 节点的 Text 字段(用户输入模板)
Subject: {{ $json.subject }} Message: {{ $json.message }} From: {{ $json.name }} ({{ $json.email }})运行提示词 · 来源原文。AI Classifier2 节点的 Messages → messageValues[0].message(系统指令)
Classify this support request. Return JSON with: { "category": "technical|billing|account|feature", "urgency": "critical|high|medium|low", "expertise": "frontend|backend|support|business", "canAutoResolve": true|false, "isVIP": true|false } VIP indicators: enterprise email domains, mentions of "enterprise", "premium", urgent language. Auto-resolve: simple how-to questions, password resets, basic billing questions.运行提示词 · 来源原文。JSON Parser1(Structured Output Parser)的 Input Schema 字段
{ "type": "object", "properties": { "category": {"type": "string"}, "urgency": {"type": "string"}, "expertise": {"type": "string"}, "canAutoResolve": {"type": "boolean"}, "isVIP": {"type": "boolean"} } }设置路由判断
添加 If 节点(Route Decision1)。模板中条件字段 leftValue/rightValue 为空,需手动设置判断条件:当 canAutoResolve 为 true 时走「自动回复」分支,否则走「创建工单」分支。
配置自动回复分支
在「true」分支后添加 Microsoft Outlook 节点(Auto Response1,操作 sendMessage)发送自动解决邮件;再添加 Respond to Webhook 节点(Webhook Response1)返回 JSON:{"status":"success","message":"Request processed","ticketId":"AUTO_RESOLVED"}。
运行提示词 · 来源原文。Webhook Response1 的 Response Body 字段
{ "status": "success", "message": "Request processed", "ticketId": "{{ $json.ticketKey || 'AUTO_RESOLVED' }}" }配置人工工单分支
在「false」分支后依次添加:Function 节点(Assign Agent1)分配客服并计算 SLA;JIRA 节点(Create JIRA Ticket1)创建工单;Gmail 节点(Send Confirmation1)通知客户。
运行提示词 · 来源原文。Assign Agent1 节点的 Function Code 字段(需将 [email protected] 替换为真实邮箱)
const request = $json; const expertise = request.output.expertise; const isVIP = request.output.isVIP; const urgency = request.output.urgency; // Agent assignment logic const agents = { 'frontend': '[email protected]', 'backend': '[email protected]', 'business': '[email protected]', 'support': '[email protected]' }; const assignedAgent = agents[expertise] || agents['support']; // SLA calculation const slaHours = { 'critical': isVIP ? 1 : 2, 'high': isVIP ? 4 : 8, 'medium': isVIP ? 8 : 24, 'low': 24 }; return [{ json: { ...request, assignedAgent, slaHours: slaHours[urgency], priority: urgency === 'critical' ? 1 : urgency === 'high' ? 2 : 3 } }];运行提示词 · 来源原文。Create JIRA Ticket1 的 Description 字段(Additional Fields)
Customer: {{ $json.name }} ({{ $json.email }}) Source: {{ $json.source }} Category: {{ $json.output.category }} Urgency: {{ $json.output.urgency }} {{ $json.output.isVIP ? 'VIP CUSTOMER' : '' }} Message: {{ $json.message }}运行提示词 · 来源原文。Send Confirmation1 节点的 Message 字段
Dear {{ $json.name }}, Your support request has been received and assigned ticket #{{ $json.ticketKey }}. Priority: {{ $json.output.urgency }}{{ $json.output.isVIP ? ' (VIP)' : '' }} Assigned to: {{ $json.assignedAgent }} Expected response: {{ $json.slaHours }} hours We'll update you as we work on your request. Best regards, Support Team测试与上线
保存工作流并启用。先通过 Webhook 发送测试 POST 请求(字段见提示词),再验证 Outlook 邮件触发。检查 JIRA 项目键、Issue Type、标签与优先级映射是否正确。
搭建指导 · 本站建议版本。Webhook 测试请求示例;粘贴到 Postman/curl 或前端表单进行端到端验证
{ "email": "[email protected]", "name": "Customer Name", "message": "Support request text" } 可选字段: { "subject": "Custom subject", "priority": "high", "source": "website" }
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你正在复现 n8n 模板 7407:AI 客服自动分类与工单路由。请按以下顺序操作:1) 确认已拥有 Outlook、OpenAI、JIRA、Gmail 凭证;2) 导入 workflow.json 或按步骤手动搭建;3) 将 Assign Agent 中的占位邮箱替换为真实团队地址;4) 补全 Route Decision 的判断条件(建议基于 canAutoResolve);5) 调整 JIRA 项目键与 SLA 小时数;6) 先用 Webhook 测试再启用 Outlook 触发。所有节点参数以 workflow.json 为准,本站未实测,遇到问题请对照来源模板排查。
如需从 n8n.io 直接导入,搜索模板 ID 7407;手动搭建时请严格对照 workflow.json 的节点类型与连线。
来源
AI-powered support automation with Outlook, OpenAI & JIRA ticketing · annieth · n8n.io · 2025-08-14
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。