2026-09-05 · 原文发布日
批量给客服工单分类并生成待审草稿
这个n8n模板把AI分类做成带校验的人工队列:手动运行时加载最多10张工单,逐张发给Apixly的OpenAI兼容接口,要求返回严格JSON(类别、优先级、摘要、回复草稿),再逐层校验HTTP状态、JSON结构、字段完整性,把接口报错、格式异常或包含不安全退款承诺的结果统统标记出来,最终汇总成一份含分类统计的人工审核报告。它不会直接回复客户。
原文要点
这是Apixly团队维护的免费n8n模板,需n8n 2.37.10或兼容版本。它手动触发,每次最多处理10张工单,先校验必填字段、体积和工单ID唯一性,再逐张调用Apixly的OpenAI兼容chat/completions接口,要求模型返回严格JSON(类别、优先级、摘要、回复草稿)。随后逐层校验HTTP状态码、JSON结构、schema与ticket_id一致性,把传输错误、非2xx响应、非法JSON、schema不符或包含不安全退款承诺的结果标记为待人工分诊,最终汇总一份含分类与优先级计数的人工审核报告。模板声明绝不直接回复客户、不退款、不改账户,也不把模型自报的token用量当作计费依据;API调用由Apixly单独计费。
这次做成什么
在n8n里搭一条'手动触发→校验工单→逐条AI分类→三层结果校验→汇总审核报告'的队列,产出一份每张工单都有明确状态(成功/待分诊)的审核清单,全程不向客户发出任何回复。以下步骤为本站按模板描述独立整理的重现方案。
准备什么
- 一个Apixly账号及有效API Key,接口地址为OpenAI兼容的chat/completions URL
- n8n 2.37.10或兼容版本的实例,可手动执行工作流
- 在n8n凭据中新建HTTP Header Auth:Header名填Authorization,值填Bearer空格加你的Key,并在请求节点选择该凭据
- 1到10张有权使用的工单数据,含唯一ticket_id、subject、body字段
具体怎么做
配置模型与工单批次
在工单配置步骤填入Apixly的chat/completions端点URL和要用的模型名,把演示工单替换为下方artifacts中的合成测试数据或你自己的授权数据,确认每批1到10张且ticket_id不重复。
逐条调用分类接口
循环节点每次取一张工单,把系统提示词(见artifacts中的提示词全文)和工单JSON拼进messages数组,POST到配置好的端点;请求头带上HTTP Header Auth凭据,body里设response_format为JSON对象(若端点支持)并要求模型只输出JSON。
三层校验每张结果
第一层看HTTP状态码,非2xx直接标记为'API错误待分诊';第二层尝试解析返回内容为JSON,解析失败标记'格式异常';第三层核对category、priority、summary、draft_reply四个字段齐全、ticket_id与输入一致、draft_reply不含'保证全额退款'类不安全承诺,命中任一问题都进待分诊桶。
汇总人工审核报告
循环结束后把成功项与失败项合并,按category和priority分别计数,输出一份Markdown报告,列出每张工单的状态、分类结果或失败原因,交给人工逐条过目后再决定是否采用草稿。
可直接复制的材料
分类系统提示词(可直接粘贴)
本站独立编写的示例提示词,类别与优先级集合若修改,校验节点的合法值列表必须同步改。
你是一名客服工单分类助手。用户会给你一张JSON格式的工单,包含ticket_id、subject、body三个字段。请只输出一个JSON对象,不要输出任何其他文字、解释或Markdown代码块。输出格式必须是:{"ticket_id":"与输入完全相同的工单ID","category":"账单问题|技术故障|退款请求|功能咨询|其他 五选一","priority":"高|中|低 三选一","summary":"不超过50字的中文问题摘要","draft_reply":"一段不超过150字的中文回复草稿,语气礼貌,只承诺'已记录并转交处理',绝不承诺具体退款金额、退款时限或任何补偿"}。如果工单内容不足以判断,category填"其他",priority填"中"。合成测试工单数据(3张,可直接替换演示数据)
纯虚构合成数据,用于隔离测试;正式使用时换成你有权处理的工单,每批不超过10张。
[{"ticket_id":"T-1001","subject":"上月被扣了两次订阅费","body":"你好,我查银行账单发现3月份被扣了两笔68元的订阅费,我只开通过一个账号,请帮我核实并退回多收的那笔。"},{"ticket_id":"T-1002","subject":"手机App登录后一直白屏","body":"安卓端更新到5.2版之后,登录进去就是白屏,清缓存和重装都试过没用,型号是小米13,系统Android 14。"},{"ticket_id":"T-1003","subject":"请问支持导出报表吗","body":"我们团队想把每月的使用数据导出成Excel做汇报,请问现在有没有这个功能?没有的话有计划吗?"}]校验节点判定规则配置说明
本站设计的校验规则示意,供你在n8n的Code或IF节点里实现;unsafePhrases词表可自行扩充。
{
"allowedCategories": ["账单问题", "技术故障", "退款请求", "功能咨询", "其他"],
"allowedPriorities": ["高", "中", "低"],
"requiredFields": ["ticket_id", "category", "priority", "summary", "draft_reply"],
"unsafePhrases": ["保证全额退款", "立即退款到账", "无条件赔偿"],
"failReasons": {
"http_error": "HTTP状态码非2xx",
"invalid_json": "返回内容无法解析为JSON",
"schema_mismatch": "缺少必填字段或取值不在合法集合",
"id_mismatch": "返回ticket_id与输入不一致",
"unsafe_claim": "草稿包含不安全承诺用语"
}
}输入与输出示例
本站虚构演示输出,非原作者运行结果,实际分类取决于你所用模型。
输入
使用上面合成数据中的T-1002:{"ticket_id":"T-1002","subject":"手机App登录后一直白屏","body":"安卓端更新到5.2版之后登录白屏,清缓存重装无效,小米13,Android 14。"}对应输出
成功项示意:{"ticket_id":"T-1002","category":"技术故障","priority":"高","summary":"安卓App更新5.2版后登录白屏,常规处理无效","draft_reply":"您好,您反馈的登录白屏问题已记录并转交技术团队处理,建议暂时通过网页版继续使用,有进展会第一时间通知您。"}。若模型返回的是纯文本“这张工单是技术故障”,则标记为{"ticket_id":"T-1002","status":"待分诊","reason":"invalid_json"},报告中计入失败项。做完检查这些
- 用3张合成工单手动跑一次,报告中必须恰好出现3条记录,且每条都有明确的成功或待分诊状态
- 把其中一张工单的ticket_id改成与另一张重复,批次校验必须在调用API之前就拦截并报错
- 故意把提示词中JSON格式要求删掉后跑一次,格式异常的结果应被标记为待分诊而不是进入成功统计
- 报告末尾的分类计数和优先级计数之和必须等于本批工单总数
容易卡住的地方
- 每批硬性上限10张工单,超过会在配置校验阶段被拒绝,不要试图绕过
- Apixly的API调用单独计费,费用不在n8n模板范围内,需到Apixly侧确认单价
- 若你自定义了类别或优先级名称,提示词和校验器两处必须同步更新,否则大量结果会被误判为schema_mismatch
- 模型自报的token用量不能当作计费依据,对账以Apixly后台为准
- 草稿中含退款承诺不代表已执行退款,模板本身不具备退款或回复客户的能力
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Classify support tickets and build a human review queue with Apixly OpenAI API
- 原作者
- apixly
- 原始发布日期
- 2026-09-05T13:39:18.437Z
- 来源
- https://n8n.io/workflows/19246