企业网站 / 社区分流

Odoo 企业版网站 Helpdesk Forum 为什么不是“让用户先去论坛搜一下”这么简单:分流、团队路由与帖子回写链路讲透

基于 website_helpdesk_forum 拆解 forum 与 helpdesk 的互相借力:哪些团队会显示“转工单”,帖子如何反向回写 ticket,以及标签是如何复用的。

企业 网站
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

论坛分流真正难的不是“把工单按钮放到论坛页面”,而是同一个问题在论坛、工单和团队之间如何保持可追踪的关系。

核心链路

  1. controllers/website_forum.py 里的 helpdesk_forums() 先根据 team 的 website_forum_ids 和当前 website_domain() 过滤论坛;如果最终只剩一个论坛,用户会被直接 302 跳转。也就是说,入口页本身就承担了网站级隔离。
  2. create_ticket_and_view() 不是简单返回一个按钮,而是先通过 _read_group() 反推“这个论坛对应哪些 helpdesk team”。若论坛没有绑定团队但存在“全局可用团队”,返回值会把团队列表全给前端。
  3. 在后台分享场景里,helpdesk.ticket.select.forum.wizarddefault_get()_compute_post()_search_filter_for_helpdesk_wizard() 共同决定可选论坛、默认标题/描述、以及 ticket tag 如何映射为 forum tag。
  4. _create_forum_post() 会创建 forum 问题贴;如果客服已经写好 answer_content,还会立刻补一条 is_correct=True 的答案。随后它把 forum_post 追加回 ticket.forum_post_ids,并在消息线程中留一条可点击链接。
  5. 这条链路的重要含义是:论坛不是工单的“出口”,而是企业支持流程里的另一个知识沉淀终点。客服把票据内容沉淀成论坛问答后,系统仍保留 ticket 到 post 的双向关联。

关键源码位置

  • /home/ubuntu/odoo-temp/enterprise/website_helpdesk_forum/controllers/website_forum.py
  • /home/ubuntu/odoo-temp/enterprise/website_helpdesk_forum/wizards/helpdesk_ticket_select_forum.py

容易误解的地方

  • 误区一:用户总能看到“创建工单”按钮。实际上 teams_per_forum_dict 决定了按钮是否出现,论坛没接 team 时不一定开放。
  • 误区二:forum tag 与 helpdesk tag 是两套无关体系。源码会按名称小写匹配并复用已有 forum_tag。
  • 误区三:把 ticket 分享到 forum 就等于关闭工单。事实上这里只是建立关联,并没有自动结案。

实战注意事项

  • 如果想让论坛先承接简单问题,再升级复杂问题为工单,关键不是改模板,而是规划 website_forum_ids 与 team 的映射关系。
  • 为避免标签污染,helpdesk 与 forum 侧最好约定统一的小写标签命名。
  • 客服把标准答案沉淀到 answer_content 时,要把一次性工单语气改成可复用问答,否则论坛资产质量会很差。

结语

企业版这些代码共同说明一件事:真正可上线的业务流程,靠的不是“页面上看起来能点通”,而是权限、状态、时机、对账口径和跨模块回写都被收紧。理解这些边界,实施和二开时就不容易走进“功能演示能跑、真实业务一用就散”的坑。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。