很多团队把 Helpdesk 接现场服务时,脑子里的模型是“建个 task 给工程师就行”。但企业版 helpdesk_fsm 真正处理的是:这个 task 应该进哪个 FSM 项目、继承哪些字段、谁有权发起,以及完工后如何回写客服上下文。
参考入口:
enterprise/helpdesk_fsm/tests/test_helpdesk_fsm.py
一、启用 use_fsm 后,team 不只是多一个按钮
当 team 开启 use_fsm,Helpdesk 会把“现场服务任务”视为该团队的一种标准后续动作。测试验证:生成的 task 必须是 is_fsm=True,并且与原 ticket 建立 helpdesk_ticket_id 回链。
这意味着 FSM 不是离线跳转,而是 ticket 生命周期里的受控分支。
二、默认 FSM 项目是按公司选的,不是全局第一个
test_fsm_project 与 test_fsm_project_multicompany 都强调:默认 fsm_project_id 必须来自 team 所在公司。团队切公司后,默认现场服务项目也要跟着换。
这能避免一个经典事故:客服在 A 公司工单里,结果任务被丢进 B 公司的现场项目。
三、没有客户也能先起单,但要在 wizard 里补齐
test_generate_fsm_task_no_partner 证明,ticket 没 partner 时仍可打开生成向导;wizard 可以补录客户,再把 partner 同步回 ticket 与 task。也就是说,Helpdesk 不要求所有前置信息一次填完,而是允许在分流节点补齐。
四、完工不是只改 task 状态,还要写回 ticket 消息流
测试 test_helpdesk_fsm 在 task action_fsm_validate() 之后,会检查 ticket 消息流里是否记录了任务完成。这保证客服与现场团队对同一事件看到的是同一条业务事实。
五、实战建议
- 多公司环境先核对 team/company/fsm project 三者是否同域。
- 让客服明确“何时转现场、何时继续在线处理”,避免工单与任务双线失控。
- 若允许无客户先建单,要把补录 partner 的责任落到流程节点上。
六、结论
Helpdesk 和 FSM 的联动,真正解决的是客服流程与现场执行的责任衔接,而不是简单地“复制一张任务单”。项目归属、客户补录和完工回写,缺一块都会让链路断开。
DISCUSSION
评论区