ChatGPT工作收件箱AI 评分 · 待评分AI 辅助编辑·未发现明显提示词注入风险n8n.io

n8n AI 客服自动分类与工单路由:Outlook + OpenAI + JIRA

邮件与 Webhook 双渠道输入 → AI 分类与结构化解析 → 自动回复或 JIRA 工单+通知

经验丰富步骤流程提示词贴士
给谁
已有 n8n 实例、使用 Outlook 与 JIRA 的支持团队,需处理邮件和在线表单请求
你会得到
AI 自动分类请求并判断能否自动解决;简单问题即时回复,复杂问题创建 JIRA 工单并通知负责人
你需要
n8n · gmail

硬约束

前置条件: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

步骤

  1. 配置双渠道触发器

    在 n8n 工作流中添加两个触发节点:Outlook Trigger(类型:Microsoft Outlook,操作 getAll,接收近 30 分钟邮件)与 Webhook Trigger(类型:Webhook,路径 support,方法 POST)。分别连接至 Normalize Data 节点。

  2. 归一化与去重

    添加 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;
  3. 配置 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"}
      }
    }
  4. 设置路由判断

    添加 If 节点(Route Decision1)。模板中条件字段 leftValue/rightValue 为空,需手动设置判断条件:当 canAutoResolve 为 true 时走「自动回复」分支,否则走「创建工单」分支。

  5. 配置自动回复分支

    在「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' }}"
    }
  6. 配置人工工单分支

    在「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
  7. 测试与上线

    保存工作流并启用。先通过 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

留言与反馈

试过这个方法吗?分享效果、遇到的问题或改进建议。留言审核后公开,请勿填写敏感信息。

正在加载…

    相关用例