企业 网站知识库

Odoo 企业版网站客服:Knowledge 知识库为什么不会越界展示

website_helpdesk_knowledge 真正要解决的是“客服团队只该把客户带到自己的知识树里”,而不是把整站 knowledge 随意公开给所有访客。

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

很多团队第一次用 Helpdesk Knowledge,会以为只是“给帮助中心挂一篇文章首页”。真正上线后才会发现,最关键的问题不是有没有首页,而是搜索会不会越界、文章下线会不会把入口打断。

这篇文章主要参考了以下企业版源码入口:

  • enterprise/website_helpdesk_knowledge/models/helpdesk.py
  • enterprise/website_helpdesk_knowledge/models/knowledge_article.py
  • enterprise/website_helpdesk_knowledge/controllers/main.py

一、这篇功能真正解决什么问题

website_helpdesk_knowledge 的核心目标是给 helpdesk team 一个受控的公开知识入口。它不是把整棵 Knowledge 树暴露给网站,而是让每个客服团队都能绑定自己的根文章,并把访客搜索限制在这棵子树里。

对客服运营来说,这个边界非常重要。否则 A 团队的访客很容易搜到 B 团队的内部知识树,或者某篇被当作首页锚点的文章被误下线以后,整个帮助入口直接断掉。

二、核心链路怎么走

1. team 先决定有没有资格展示知识库入口

helpdesk.team 上的 show_knowledge_base_article 不是手工勾选,而是通过 _compute_show_knowledge_base_article() 计算出来:只有团队启用了 use_website_helpdesk_knowledge,并且系统里存在可公开的知识文章,帮助中心才会显示知识库入口。

2. 搜索域会被压回团队根文章之下

knowledge.article._search_get_detail()options['helpdesk'] 存在时,会找到对应团队,再把 base_domain 改写成“当前 team 绑定文章本身 + 其 root_article_id 子树”。这意味着用户虽然还在做网站搜索,但结果集已经被限定在团队知识边界内。

3. 被团队引用的文章不能随便下线

knowledge.article.write() 里有一道很关键的保护:如果文章正在被某个 helpdesk team 作为 website_article_id 使用,那么你不能直接删掉、取消发布、设成子文章或者停用。官方很清楚,这类文章不是普通内容,而是公开入口的锚点。

三、新手最容易踩的坑

  • 以为帮助中心搜索会自动按团队分隔。实际上没有 team 级根文章时,搜索边界就会变松。
  • 以为知识文章可以像普通博客那样随时隐藏。若它正被 team 当作入口,强行下线会触发保护。
  • 以为点击帮助中心知识库一定跳到通用 /knowledge/home。源码里已经为 team 专门加了 /helpdesk/<team>/knowledge/home 路由。

四、实战落地时最该盯的点

  • 先为每个客服团队指定清晰的根文章,不要多个团队共用同一棵杂糅知识树。
  • 再检查公开文章是否真的满足 website_published/name/is_template/is_article_item 等条件,否则入口会忽隐忽现。
  • 最后培训内容运营:被 team 绑定的文章不是普通文章,修改发布态前要先解除绑定关系。

五、结论

Helpdesk Knowledge 真正值钱的地方,不是“多了一个知识库入口”,而是它把团队入口、搜索范围和入口保护绑成同一套约束。这样客户看到的是一个稳定、可控、不会乱串门的帮助中心。

DISCUSSION

评论区

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