2026-10-13 · 原文发布日
PII脱敏后用AI分类并起草客服回复
这条n8n流程通过webhook或手动触发接收客服工单,先把工单正文交给Enterprise PII Guardrails将姓名、邮箱等敏感信息替换为替代令牌,再让OpenAI(gpt-4o-mini)基于脱敏文本做优先级、分类和情绪判断并起草回复,之后在本地环境还原原始信息,打包成可送入CRM的结构化载荷,兼顾隐私与自动化。
原文要点
原作者Vishal Prajapati的n8n模板:经POST webhook或手动触发接收工单(ticket_id、channel、customer_name、customer_email、ticket_subject、ticket_body),规整字段后把正文发给Enterprise PII Guardrails,将PII替换为替代令牌并返回令牌到原值的映射;脱敏文本交OpenAI(gpt-4o-mini)做优先级、分类、情绪判断并起草回复,要求逐字保留令牌;随后用映射在本地环境还原PII,打包成CRM派送与审计载荷。需自建或演示版Guardrails的API key与base URL,OpenAI需有gpt-4o-mini权限。
这次做成什么
搭一条“脱敏→AI处理→还原→出CRM载荷”的隐私保护工单流水线。本站独立设计练习:用手动触发加一条合成工单先验证令牌保留与还原,再接webhook;给出完整分类提示词、测试JSON与验收条件,不编造模板未提及的节点或API路径。
准备什么
- n8n环境,并从模板页导入该工作流
- Enterprise PII Guardrails的API key凭据,以及对应部署(演示或自托管)的base URL
- OpenAI API凭据,且账号可使用gpt-4o-mini模型
- (可选)能向webhook地址POST JSON的工单来源或curl/Postman工具
具体怎么做
配置两类凭据
在n8n凭据中新建Enterprise PII Guardrails的API key凭据,并在流程对应配置处填入你的Guardrails base URL(演示或自托管地址);再新建OpenAI凭据,确认模型选择gpt-4o-mini对你的账号可用。两者缺一都会在对应节点报401或模型不可用错误。
手动触发跑合成工单
先用Manual Trigger手动执行,把下文测试JSON作为工单输入。依次检查:规整节点输出字段齐全;Guardrails脱敏后正文中姓名、邮箱已变成形如[PERSON_1]、[EMAIL_1]的令牌并返回映射;OpenAI节点收到的只有脱敏文本。
核对AI输出与还原结果
查看OpenAI返回的分类与回复草稿,确认草稿中的令牌原样保留未被改写;再查看还原节点输出,草稿里的令牌已被映射表替换回原始姓名与邮箱,最终载荷同时包含还原后的草稿和隐私元数据。
接入webhook
改用webhook触发,复制support-ticket-inbound端点的webhook URL,用curl或Postman POST相同字段的JSON,确认与手动触发得到一致结果后,再把该URL配置到真实工单来源系统。
出载荷前人工抽检
在CRM派送前抽看若干条的audit载荷:确认送出的正文不含任何残留令牌、分类标签与情绪判断合理,再决定直接进入CRM还是加人工复核环节。
可直接复制的材料
OpenAI分诊与起草提示词
本站独立编写,需替换花括号变量;令牌保真规则对应原流程要求,勿删除
你是客服工单分诊与回复起草助手。输入是一条已脱敏的工单,正文中形如[PERSON_1]、[EMAIL_1]的方括号令牌代表被隐去的个人信息。
硬性规则:这些令牌必须逐字原样保留在你的输出中,禁止改写、翻译、猜测或还原令牌内容。
任务:
1. 判断priority(取值:low/medium/high/urgent)、category(取值:billing/bug/account/feature/other)、sentiment(取值:positive/neutral/negative),各给一个0到1的confidence。
2. 起草一段不超过120字的中文回复草稿,称呼处使用[PERSON_1]令牌。
3. 严格只输出JSON:{"priority":"...","category":"...","sentiment":"...","confidence":{"priority":0.0,"category":0.0,"sentiment":0.0},"reply_draft":"..."}
工单主题:{{ticket_subject}}
工单正文:{{masked_ticket_body}}webhook/手动触发测试工单JSON
本站虚构合成数据,邮箱为示例域名;字段名按原文列出的入站字段
{
"ticket_id": "T-9001",
"channel": "email",
"customer_name": "陈晓萌",
"customer_email": "chenxm@example-test.cn",
"ticket_subject": "升级后导出报表报错",
"ticket_body": "我是陈晓萌,邮箱chenxm@example-test.cn。昨天升级到3.2版后,导出月度报表一直提示500错误,财务月底要用,麻烦尽快处理。"
}CRM派送载荷结构示例
本站按原文“结构化派送与审计载荷”描述设计的示意结构,实际字段以模板输出节点为准核对
{
"ticket_id": "T-9001",
"channel": "email",
"triage": {
"priority": "high",
"category": "bug",
"sentiment": "negative"
},
"resolution_draft": "陈晓萌您好,很抱歉升级后导出报表出现500错误……",
"privacy": {
"pii_masked": true,
"tokens_restored": 2,
"ai_received_raw_pii": false
},
"audit": {
"model": "gpt-4o-mini",
"processed_at": "2026-10-13T09:30:00Z"
}
}输入与输出示例
本站虚构演示,非原作者结果,未在本站运行
输入
POST测试工单T-9001:客户陈晓萌(chenxm@example-test.cn)反映升级3.2版后导出月度报表报500错误、月底财务急用。对应输出
脱敏后正文变为“我是[PERSON_1],邮箱[EMAIL_1]。昨天升级到3.2版后……”;OpenAI返回{"priority":"high","category":"bug","sentiment":"negative","confidence":{"priority":0.9,"category":0.95,"sentiment":0.85},"reply_draft":"[PERSON_1]您好,很抱歉升级后导出报表出现500错误,我们已登记为紧急故障,工程师正在排查,会在今天内给您初步答复。"};还原节点把[PERSON_1]、[EMAIL_1]换回陈晓萌与chenxm@example-test.cn后进入CRM载荷,privacy.ai_received_raw_pii=false。做完检查这些
- OpenAI节点的请求体中只出现令牌,不出现陈晓萌或真实邮箱字符串
- AI返回的reply_draft里[PERSON_1]逐字保留,未被改成中文姓名或拼音
- 还原后草稿中所有令牌均被替换,最终载荷里无残留方括号令牌
- 最终载荷同时含还原草稿与隐私元数据,可直接作为CRM入站JSON解析
- webhook与手动触发两种方式对同一工单产出一致的分类结果
容易卡住的地方
- Guardrails的base URL必须指向你自己的部署或演示服务,填错会在脱敏节点直接失败
- OpenAI账号若无gpt-4o-mini权限需先在账号侧开通,否则模型调用报错
- 令牌保真依赖提示词约束,提示词被改弱可能导致AI改写令牌,还原时出现错位或残留
- 脱敏只覆盖Guardrails识别的PII类型,订单号、内部编号等自定义敏感串需另行评估
- 映射表丢失或对应不上时无法还原,执行中途失败要保留映射再重试
- webhook端点暴露后任何人可POST,生产环境应加鉴权或IP白名单
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Triage and draft PII-safe support replies with OpenAI and Enterprise PII Guardrails
- 原作者
- Vishal Prajapati
- 原始发布日期
- 2026-10-13T09:50:39.871Z
- 来源
- https://n8n.io/workflows/20870