企业 Helpdesk

Odoo 企业版 Helpdesk 门户为什么不是“给客户个链接就行”:团队可见性、portal share 与客户关单边界讲透

基于 helpdesk portal/controller 与测试,讲清 internal、invited、portal 三种可见性,以及 share 与 portal 关单边界。

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

Helpdesk 对外服务最容易被低估的,是“客户到底能看到什么”。很多人以为给个 portal 链接就完了,但企业版其实把团队可见性、关注者关系、access token 和客户关单动作拆成了好几层。

参考入口:

  • enterprise/helpdesk/controllers/portal.py
  • enterprise/helpdesk/tests/test_helpdesk_team_privacy_visibility.py
  • enterprise/helpdesk/tests/test_helpdesk_mail_features.py

一、team 的 privacy_visibility 先决定大边界

测试清楚区分了三种语义:

  • internal:内部帮助台用户可见,portal 用户即使关注也不自动有权限;
  • invited_internal:只有被邀请/关注的内部用户能看,普通 helpdesk user 也可能看不到;
  • portal:portal 用户只有在成为团队或工单 follower 后才可见。

所以 visibility 不是“门户开没开”,而是“什么身份 + 什么关注关系”才有访问资格。

二、portal share 的本质不是发邮件,而是加 follower

test_ticket_portal_share_adds_followers 说明 portal 分享向导真正改变的是 message_partner_ids。邮件只是通知手段;真正决定后续能否看到工单的,是接收方是否被纳入 follower 集合。

三、门户关单也不是万能动作

ticket_close() 先检查 allow_portal_ticket_closing,再把工单推进到团队 closing stage,并写 closed_by_partner=True。同时系统还会发一条 note 记录“客户关闭了工单”。

也就是说,客户关单不是随便改状态,而是走了受团队配置约束、带审计日志的路径。

四、搜索/列表页权限仍回到 domain

门户 /my/tickets 的搜索、过滤、分组都建立在 _prepare_helpdesk_tickets_domain()_document_check_access() 之上。URL 存在,不等于你能越权搜到别人的单。

五、实战建议

  • 对外支持中心要先定 visibility 策略,再发分享链接。
  • 不要把“收到了邮件”误当“已经有 portal 权限”。
  • 如果允许客户自助关单,要同步设计 closing stage、复开策略和消息留痕。

六、结论

Helpdesk 门户真正开放的是一套受 visibility、followers 和 team policy 约束的客户协作面,而不是一条裸链接。谁能看、谁能关、谁只是被通知,必须分清。

DISCUSSION

评论区

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