「我的问题没人管」,客服在微信里翻了半小时聊天记录

工单反馈 使用文档
工单反馈 使用文档

用户报问题,最常走的路是加客服微信。图片、日志、账号信息全在聊天窗口里散着,三天后要找「上周那个说登录不上的用户」,得往上一屏一屏翻。

工单反馈把这条路换成一张单据:前台提交,系统给一个编号,后台回复,来回都有记录。

提交的时候要填什么

前台 /feedback_ticket 是一张表单:标题、内容、邮箱、微信、QQ,附件可选。

联系方式有三栏,不是让你全填,是让用户挑一个能联系上的。很多人没有 QQ,也有些人不用邮箱,把三种都放出来,回复率会明显高一些。

提交成功后页面给一个工单编号,16 位大写字母数字。这个编号是查进度的唯一凭据:/feedback_ticket/{编号} 打开就是这条工单的往来记录,不需要登录。

这个设计对「还没注册的用户」特别友好。装了会员的站可以不要求登录就报问题,代价是任何人拿到编号都能看这条工单——编号是随机 16 位,猜不出来,但如果用户把截图发到群里,别人也能打开。

后台只看不回

后台的「工单反馈记录」列表:工单编号、名称、邮箱、微信、QQ、内容、状态。

工单由前台产生,后台负责查看和回复,列表上没有编辑动作。这是对的:工单是用户提交的原始描述,改了就失去证据价值。

后台工单列表:状态列用不同颜色的圆点标出「处理中」「等待回复」,后面是工单编号、名称、邮箱、微信、QQ 几列

列表可以按编号、标题、状态筛。用户来问「我的工单处理得怎么样了」,按编号一搜就到。

五种状态

状态含义
处理中有人接手了,正在处理
等待回复回复发出去了,等用户补充信息
已关闭处理完,正常关闭
已关闭(过期)太久没动静,系统或人工关掉
已关闭(用户)用户自己关的

这个状态机不复杂,但要养成改状态的习惯。全是「处理中」的列表,等于没有状态。

邮件怎么发

回复的时候会给用户填的邮箱发一封通知,里面带工单编号和回复内容,用户点链接回到工单页继续对话。

发信走的是队列任务(MailSendJob),不是同步发。这个选择很关键:SMTP 有时会卡十几秒,同步发会让后台的「回复」按钮转很久。走队列之后,点完立刻返回,邮件在后台慢慢发。

代价是队列必须有人跑。站点的消息队列没配或者没启动,表现是「回复成功了但用户没收到邮件」,日志里能看到任务堆积。部署时把队列进程的守护配上。

另外,邮件服务器的配置在站点的基础设置里,不在这个模块。SPF、DKIM 这些没配好,邮件会进垃圾箱,用户以为你没回。

附件

提交和回复都能传附件,附件存在站点统一存储里,走 /feedback_ticket/{编号}/file/{回复ID}_{序号} 这个地址下载,真实路径不暴露。

这里有个容易忽略的清理动作:删除一条工单时,模块会把它下面所有回复的附件文件一起删掉(deleteReplyFiles),再删回复记录。也就是说删工单是不可恢复的,附件也跟着没。想留档就先导出。

适合什么场景

技术支持入口。用户报 bug、报故障,附带截图和日志,比微信强得多。

售前咨询分流。有些问题不适合在即时聊天里答(需要查订单、需要技术确认),转成工单更清楚。

内部 IT 报修。员工电脑坏了提一张单,IT 按单处理,月底能统计出「哪类问题最多」。

不适合:需要秒回的咨询。工单的节奏是按天算的,用户预期也是「一两天内有回复」。要即时,用在线客服那个模块。

上线前

  1. 配好发信服务器,用一个外部邮箱测收信,确认不进垃圾箱;
  2. 配好队列进程,发一条回复看任务有没有被执行;
  3. 自己提一张单,走完「提交 → 回复 → 用户再回 → 关闭」的完整流程;
  4. 在站点的帮助页或者页脚挂上工单入口,别只留一个没人知道的地址;
  5. 定一个响应时限,比如「工作日 24 小时内回复」,写在前台的表单上方。用户知道多久能等到,就不会重复提交。
更新: 2026-10-29 16:30:26
QQ
微信
客服