工单中心需求
1. 背景与目标
工单中心用于承接客服问题的统一受理、跟进、分派、回访、关闭和质检管理。当前阶段暂不考虑协同团队,所有工单处理都在客服组织内部完成,通过客服队列、坐席和主管完成流转。
核心目标:
- 客服可创建工单、记录跟进、预约回访和关闭工单。
- 主管可查看跨客户、跨 App、跨队列的工单进度、SLA 风险和坐席负载。
- 工单与客户 360 打通,支持从客户上下文查看和创建工单。
- 关键操作必须可审计,满足敏感信息访问和管理追踪要求。
2. 用户角色
| 角色 | 主要诉求 | 权限范围 |
|---|---|---|
| 一线客服 | 创建工单、记录跟进、查看客户和订单上下文 | 查询客户、创建工单、添加跟进、预约回访、关闭普通工单 |
| 客服主管 | 分派工单、查看队列、处理 SLA 风险、质检关闭结果 | 工单分派、改派、关闭复核、质检、报表 |
| 系统管理员 | 配置角色权限、审计、数据范围 | 工单权限配置、审计查询、导出控制 |
| 系统任务 | 根据告警或异常自动创建工单 | 自动创建工单,按规则进入队列 |
3. 信息架构
3.1 工单中心
全局工单管理入口,面向客服主管和一线客服。
功能模块:
- 工单指标:未结工单、高优先级、SLA 风险、待主管处理。
- 全局工单列表:支持按工单号、客户、订单、状态、优先级、队列、负责人筛选。
- 队列看板:展示各客服处理队列的工单数量和负载。
- 坐席负载:展示坐席当前工单数、高优先级工单数、排班入口。
- SLA 监控:按到期时间排序展示临期和超时工单。
3.2 新建工单
新建工单作为独立页面,不在工单中心列表中内嵌复杂表单。
支持能力:
- 客户/手机号:可选择客户 360 中已有用户,也可自定义输入手机号。
- App:下拉选择。
- 问题类型:下拉选择。
- 优先级:下拉选择。
- 关联订单或流水:支持下拉筛选和模糊搜索。
- 客户诉求:支持预设诉求选择,也支持自定义输入。
- 可由系统自动分配,主管可手动指定负责人。
3.3 工单详情
核心区域:
- 工单基础信息:App、客户、来源渠道、联系方式、关联订单、关联流水、优先级、负责人、处理队列、创建时间、SLA 到期、下次跟进。
- 客户诉求:展示客户原始问题和期望处理结果。
- 客服口径:展示当前可对客户解释的话术。
- 工单处理动作:添加跟进、分派负责人、预约回访、关闭工单。
- 跟进链路:按时间展示创建、关联、处理、回访、关闭等记录。
- 客服管理:结案标准、附件凭证、质检关注、最新记录。
4. 工单状态流转
| 状态 | 说明 | 可执行动作 |
|---|---|---|
| 待认领 | 工单已创建,尚未分派负责人 | 分派负责人、关闭无效工单 |
| 处理中 | 负责人正在处理 | 添加跟进、预约回访、关闭 |
| 待客户回复 | 已回复客户,等待客户补充材料或确认 | 添加跟进、预约回访、关闭 |
| 已解决 | 问题已处理完成,等待关闭或质检 | 关闭、质检退回 |
| 已关闭 | 工单结束,不允许普通客服继续编辑 | 查看详情、重开申请 |
状态流转规则:
- 高优先级工单关闭前需要主管复核。
- 关闭工单必须填写结案结果和结案说明。
- 已关闭工单原则上不可编辑,如需继续处理应走重开流程。
5. 工单流转状态机
stateDiagram-v2 [*] --> 待认领: 创建工单且未分配 [*] --> 处理中: 创建工单并同步分配 待认领 --> 处理中: 分派负责人 待认领 --> 已关闭: 无效工单/重复工单 处理中 --> 待客户回复: 已回复客户/等待材料 处理中 --> 已解决: 问题处理完成 处理中 --> 已关闭: 无需继续处理 待客户回复 --> 处理中: 客户回复/补充材料 待客户回复 --> 已关闭: 超时未回复/无需继续处理 已解决 --> 已关闭: 关闭工单 已解决 --> 处理中: 主管复核退回 已关闭 --> 处理中: 重开工单 已关闭 --> [*]
5.1 允许流转表
| 当前状态 | 目标状态 | 触发动作 | 触发角色 | 前置条件 |
|---|---|---|---|---|
| 待认领 | 处理中 | 分派负责人 | 客服主管/系统 | 已选择负责人和处理队列 |
| 待认领 | 已关闭 | 关闭工单 | 客服主管 | 工单无效、重复或无需处理,并填写关闭原因 |
| 处理中 | 待客户回复 | 添加跟进 | 一线客服 | 跟进记录中标记等待客户回复 |
| 处理中 | 已解决 | 添加跟进/标记解决 | 一线客服 | 已填写处理结果,客户问题已解决 |
| 处理中 | 已关闭 | 关闭工单 | 一线客服/主管 | 低/中优先级可直接关闭;高优先级需主管复核 |
| 待客户回复 | 处理中 | 添加跟进 | 一线客服 | 客户已回复或补充材料 |
| 待客户回复 | 已关闭 | 关闭工单 | 一线客服/主管 | 客户超时未回复或确认无需继续处理 |
| 已解决 | 已关闭 | 关闭工单 | 一线客服/主管 | 已填写结案说明;高优先级已质检 |
| 已解决 | 处理中 | 质检退回 | 客服主管 | 结案说明不足、证据不足或客户仍有争议 |
| 已关闭 | 处理中 | 重开工单 | 客服主管 | 客户再次反馈同一问题,填写重开原因 |
5.2 流转校验规则
通用校验:
- 每次状态变化必须生成跟进记录。
- 每次状态变化必须写入审计日志。
- 工单必须有客户或手机号。
- 工单必须有问题类型和优先级。
- 工单关联资金类问题时,必须关联订单或流水。
分派校验:
- 负责人必须在当前 App 授权范围内。
- 负责人必须具备目标队列权限。
- 处理队列必须与问题类型匹配,或填写手动改派原因。
关闭校验:
- 必须填写结案结果。
- 必须填写结案说明。
- 高优先级工单必须主管复核后关闭。
- 存在未完成预约回访时,需要确认是否取消回访。
重开校验:
- 仅主管或具备重开权限的角色可重开。
- 必须填写重开原因。
- 重开后 SLA 重新计算或按原 SLA 延续,需由业务配置决定。
6. 问题类型与优先级
初始问题类型:
- 还款争议
- 放款未到账
- 审批拒绝解释
- 逾期金额解释
- 结清咨询
- 账户/认证问题
优先级:
| 优先级 | 说明 | 示例 |
|---|---|---|
| 高 | 影响资金、投诉、SLA 紧急风险 | 放款 UNKNOWN、还款已付未销账 |
| 中 | 影响客户理解或后续还款行为 | 逾期金额解释、审批拒绝解释 |
| 低 | 普通咨询或状态确认 | 结清咨询、普通账户咨询 |
7. 工单分配方案
7.1 分配目标
- 工单必须分配给有对应 App 数据权限的人员或队列。
- 资金类、账务类、支付通道类问题优先进入专业客服队列。
- 高优先级和 SLA 临期工单优先分配给在线且负载较低的坐席。
- 同一客户或同一问题的连续工单优先分配给历史负责人。
- 分配结果必须可解释、可追溯,并写入审计日志。
7.2 分配对象
| 分配对象 | 说明 | 示例 |
|---|---|---|
| 一线客服 | 负责普通咨询、客户解释、基础查询和回访 | cs.amina、cs.mary |
| 专业客服队列 | 负责某类问题的集中处理 | 账务处理队列、支付通道处理队列 |
| 客服主管 | 负责兜底分配、强制改派、SLA 风险处理 | cs.lead |
7.3 默认分配规则
- 判断 App 权限:仅分配给拥有该 App 数据权限的队列或人员。
- 判断问题类型:根据问题类型映射默认队列。
- 判断优先级:高优先级进入优先处理池,同时通知主管。
- 判断坐席在线状态:优先分配给当前在线人员。
- 判断坐席负载:优先分配给未结工单数较少、SLA 风险较低的人员。
- 判断历史归属:同一客户未关闭工单优先分配给原负责人。
- 找不到合适负责人时进入待认领队列,由主管手动分配。
7.4 创建时同步分配
| 创建方式 | 是否同步分配 | 说明 |
|---|---|---|
| 客服创建,不指定负责人 | 是,系统自动分配 | 按 App、问题类型、优先级、坐席负载自动分配;无法命中时进入待认领 |
| 客服创建,指定本人 | 可以 | 仅允许指定自己为负责人,且必须具备该 App 和问题类型处理权限 |
| 客服创建,指定他人 | 默认不允许 | 避免一线客服绕过队列规则;如需指定他人,应由主管分派 |
| 主管创建,指定负责人 | 可以 | 主管可指定负责人和队列,但仍需校验目标人员 App 权限 |
| 系统自动创建 | 是,系统自动分配 | 例如投诉、支付异常、销账异常自动生成工单 |
创建时同步分配的状态规则:
- 已成功分配负责人:工单状态为“处理中”。
- 未成功分配负责人:工单状态为“待认领”。
- 高优先级工单即使已自动分配,也需要通知主管。
7.5 问题类型与默认队列映射
| 问题类型 | 默认队列 | 说明 |
|---|---|---|
| 还款争议 | 账务处理队列 | 核对实还流水、销账状态、账务队列 |
| 放款未到账 | 支付通道处理队列 | 核对放款流水、通道回调、补查询结果 |
| 审批拒绝解释 | 审批解释队列 | 只展示可披露原因,不展示策略阈值 |
| 逾期金额解释 | 逾期解释队列 | 解释应还、已还、剩余应还和逾期天数 |
| 结清咨询 | 普通咨询队列 | 查询订单和还款计划即可答复 |
| 账户/认证问题 | 账户认证队列 | 核对 KYC、BVN、NIN、登录设备等信息 |
7.6 坐席负载计算
建议计算维度:
- 未结工单数。
- 高优先级工单数。
- SLA 临期工单数。
- 当日新增工单数。
- 当前在线状态。
- 最近 30 分钟处理量。
- 是否正在处理同一客户或同一 App 的相关工单。
示例负载评分:
负载分 = 未结工单数 * 1
+ 高优先级工单数 * 2
+ SLA 临期工单数 * 3
- 在线可接单加权
- 同客户历史负责人加权7.7 手动分配与改派
主管和具备 support.ticket.assign 权限的人员可以手动分派或改派工单。
手动分派必须填写:
- 目标负责人。
- 目标队列。
- 分派原因。
- 是否通知原负责人。
改派限制:
- 已关闭工单不可改派。
- 高优先级工单改派需要记录原因。
- 跨 App 改派必须校验目标人员 App 数据权限。
8. 数据权限说明
8.1 权限目标
- 按角色控制菜单和动作。
- 按 App 控制数据范围。
- 按队列控制工单处理范围。
- 按敏感级别控制字段展示。
- 所有越权、敏感查看、导出和状态变更都必须审计。
8.2 数据范围维度
| 维度 | 说明 | 示例 |
|---|---|---|
| App 范围 | 用户只能查看授权 App 下的客户、订单和工单 | RooVault 客服只能看 RooVault |
| 队列范围 | 用户只能处理所属队列或被分配给自己的工单 | 账务处理队列成员只能处理账务类工单 |
| 角色范围 | 不同角色可执行不同动作 | 一线客服不能配置权限,主管可质检 |
| 工单归属 | 坐席默认可查看自己负责的工单 | owner = cs.amina |
| 敏感字段 | 手机号、BVN、NIN、身份证照片、银行卡等需脱敏 | 默认展示 maskedPhone |
8.3 动作权限
| 动作 | 权限点 | 一线客服 | 客服主管 | 管理员 |
|---|---|---|---|---|
| 查看工单 | support.ticket.read | 有 | 有 | 有 |
| 创建工单 | support.ticket.create | 有 | 有 | 有 |
| 添加跟进 | support.ticket.follow_up | 有 | 有 | 有 |
| 分派/改派 | support.ticket.assign | 无/受限 | 有 | 有 |
| 关闭工单 | support.ticket.close | 有,受优先级限制 | 有 | 有 |
| 质检工单 | support.ticket.quality_check | 无 | 有 | 有 |
| 查看报表 | support.ticket.report | 无 | 有 | 有 |
| 导出工单 | support.ticket.export | 无 | 有,需审批 | 有 |
8.4 创建工单权限
| 角色 | 是否可创建工单 | 创建范围 | 是否可同步指定负责人 |
|---|---|---|---|
| 一线客服 | 可以 | 仅限本人授权 App、可见客户和可处理问题类型 | 只能指定本人,或交给系统自动分配 |
| 客服主管 | 可以 | 所管理团队和授权 App 范围内 | 可以指定团队内有权限的负责人 |
| 系统管理员 | 可以,主要用于配置和测试 | 全部 App,受后台配置限制 | 可以,但生产操作应受审计和审批约束 |
| 系统任务 | 可以 | 告警、投诉、支付/账务异常等自动触发场景 | 只能走自动分配规则 |
创建工单的权限校验:
- 创建人必须拥有
support.ticket.create。 - 创建人必须拥有目标 App 的数据权限。
- 关联订单或流水必须在创建人的数据权限范围内。
- 指定负责人时,目标负责人必须拥有目标 App 和队列权限。
- 指定负责人不是本人时,创建人必须拥有
support.ticket.assign。
8.5 字段级权限
| 字段类型 | 默认展示 | 查看明文要求 |
|---|---|---|
| 手机号 | 脱敏展示 | 明文权限 + 查看原因 + 审计 |
| BVN/NIN | 脱敏展示 | 明文权限 + 查看原因 + 审计 |
| 身份照片 | 不默认展示 | 独立敏感权限 + 二次确认 + 审计 |
| 银行卡号 | 脱敏展示 | 明文权限 + 查看原因 + 审计 |
| 客户沟通内容 | 授权工单内展示 | 跨队列查看需主管权限 |
| 附件凭证 | 文件名默认展示 | 下载或查看原件需附件权限 |
9. 关键交互
9.1 新建工单
- 用户点击“新建工单”。
- 系统打开独立新建页面。
- 用户选择或输入客户/手机号。
- 用户选择 App、问题类型、优先级。
- 用户通过可搜索下拉选择关联订单或流水。
- 用户选择客户诉求,也可补充自定义诉求。
- 用户提交工单。
- 系统生成工单号,写入工单中心、客户 360、审计日志。
- 系统按分配规则同步分配;无法分配时进入待认领。
9.2 工单详情操作
| 操作 | 使用场景 | 提交结果 |
|---|---|---|
| 添加跟进 | 记录客户沟通、内部核查或处理进展 | 追加跟进记录,更新最新记录 |
| 分派负责人 | 转给其他坐席或专业队列 | 更新负责人、队列,写入审计 |
| 预约回访 | 约定下一次联系客户 | 更新下次跟进时间,进入坐席待办 |
| 关闭工单 | 问题已解决或满足结案标准 | 校验结案说明,高优先级需复核 |
10. 字段设计
10.1 工单主表字段
| 字段 | 说明 |
|---|---|
| ticketId | 工单号 |
| appId | 所属 App |
| customerId | 全局客户 ID |
| customerPhone | 客户手机号,默认脱敏展示 |
| type | 问题类型 |
| priority | 优先级 |
| status | 工单状态 |
| source | 来源,如来电、在线客服、WhatsApp |
| channel | 具体渠道 |
| owner | 当前负责人 |
| queue | 处理队列 |
| relatedOrderId | 关联订单 |
| relatedTxnId | 关联流水 |
| customerNeed | 客户诉求 |
| serviceScript | 客服口径 |
| resolution | 结案标准或结案结果 |
| sla | SLA 时长 |
| dueAt | SLA 到期时间 |
| nextFollowUpAt | 下次跟进时间 |
| createdAt | 创建时间 |
| updatedAt | 更新时间 |
| closedAt | 关闭时间 |
10.2 跟进记录字段
| 字段 | 说明 |
|---|---|
| time | 跟进时间 |
| actor | 操作人 |
| action | 动作类型 |
| note | 跟进说明 |
| next | 下一步 |
11. 权限与审计
权限点:
- support.ticket.read
- support.ticket.create
- support.ticket.follow_up
- support.ticket.assign
- support.ticket.close
- support.ticket.quality_check
- support.ticket.report
- support.ticket.export
必须审计:
- 创建工单
- 查看敏感客户信息
- 添加跟进
- 改派负责人
- 预约回访
- 关闭工单
- 质检工单
- 导出报表
12. SLA 规则
| 优先级 | 首响时限 | 解决时限 |
|---|---|---|
| 高 | 15 分钟 | 2-4 小时 |
| 中 | 30 分钟 | 8-12 小时 |
| 低 | 2 小时 | 24 小时 |
SLA 管理要求:
- 工单创建后根据问题类型和优先级自动计算 SLA。
- 临期前提醒负责人和主管。
- 超时工单进入 SLA 风险列表。
- 关闭时记录是否超时。
13. 与客户 360 的关系
- 客户 360 可查看当前客户所有工单。
- 客户 360 可从客户上下文跳转新建工单。
- 工单详情可回看客户、订单、还款、放款、认证和登录记录。
- 工单跟进记录应进入客户事件时间线。
14. 后续接口建议
- GET /tickets:查询工单列表
- POST /tickets:创建工单
- GET /tickets/{ticketId}:查询工单详情
- POST /tickets/{ticketId}/follow-ups:添加跟进
- POST /tickets/{ticketId}/assign:分派负责人
- POST /tickets/{ticketId}/callback:预约回访
- POST /tickets/{ticketId}/close:关闭工单
- POST /tickets/{ticketId}/reopen:重开工单
- GET /tickets/dashboard:查询工单指标
- GET /tickets/sla-risk:查询 SLA 风险工单
- GET /tickets/agent-load:查询坐席负载
- GET /tickets/assignment-candidates:查询可分配坐席
- GET /ticket-permissions/context:查询当前用户工单数据权限上下文
15. 当前原型范围
当前原型已覆盖:
- 工单中心独立页面。
- 新建工单独立页面。
- 客户 360 内工单视图。
- 工单详情。
- 跟进链路。
- 工单列表独立筛选。
- 工单基础指标展示。
- 队列和负责人字段展示。
- 从客户上下文关联工单。
- 中英文切换。
当前原型不包含:
- 真实数据保存。
- 后端接口。
- 文件上传。
- 真实消息通知。
- 导出文件生成。
- 真实权限拦截。
- 完整队列看板。
- 坐席负载看板。
- SLA 风险独立页面。
- 分派、跟进、预约回访、关闭、质检等完整详情操作表单。