协同办公

Odoo 预设回复为什么不是个人小抄:快捷词替换、群组共享与可编辑边界讲透

很多人把 canned response 理解成输入框里的文本片段。源码里它其实带着快捷词、替换正文、共享群组、创建者广播和编辑权限判断。也就是说,它不是单纯提高打字速度,而是在统一团队回复口径与控制谁能改模板。

协同办公
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

先说结论

Odoo 的 mail.canned.response 不是“我自己存一段常用文本”这么简单。

它本质上是一套可共享的协作回复片段:既要让输入足够快,也要让团队口径尽量统一,还要控制谁能看、谁能改。

所以它的设计天然带权限和广播,而不是一个本地浏览器收藏夹。


一、它到底存了什么

addons/mail/models/mail_canned_response.py 里,核心字段很少:

  • source:快捷词
  • substitution:替换内容
  • group_ids:授权群组
  • last_used
  • is_shared
  • is_editable

这套结构说明它关注的不是“文本很长还是很短”,而是三件事:

  • 如何被触发
  • 替换成什么
  • 属于谁的协作空间

二、为什么快捷词要单独建模

源码帮助文本已经说得很直白:输入 ::shortcut 时,可以自动替换成更长内容。

这意味着 Odoo 的目标不是做一个“模板中心页面”,而是让用户在聊天和协作输入过程中直接插入标准化内容。

这特别适合:

  • 客服常见答复
  • HR 邀约话术
  • 项目交接提醒
  • 财务催款或确认模板

所以 canned response 的本质不是“文档”,而是对话里的可复用动作


三、为什么共享是按群组,而不是人人可见

group_ids 的存在非常关键。

它说明 Odoo 不希望所有预设回复天然全员共享。

这很合理,因为团队回复模板往往带边界:

  • 销售话术不一定该给所有人随便用
  • 财务回复可能涉及固定措辞
  • HR 模板可能含流程敏感内容

因此它不是“共享/不共享”二元开关,而是“共享给哪些角色”。


四、为什么创建、修改、删除都要广播

源码里 create()write()unlink() 都会调用 _broadcast()

这说明 canned response 不是后台静态配置,而是前台协作界面的一部分。

一旦模板变动,相关用户或群组要尽快收到更新,否则会出现:

  • A 看到旧模板
  • B 看到新模板
  • 团队回复口径短时间分裂

广播机制的意义,就是把模板更新尽快同步进当前协作现场。


五、为什么 is_editable 不是简单看创建者

源码里可编辑性不是只看 create_uid,而是结合创建权限、写权限来算。

这很像一个成熟协作系统的态度:

  • 创建者通常有天然控制权
  • 但如果当前用户有对应访问权,也可能允许编辑
  • 没权限就算看得到,也不该随便改

这比“只有创建者能改”更灵活,也比“谁都能改”更安全。


六、最容易踩的误区

误区 1:把它当成个人便签

结果团队没有统一话术,重复造轮子。

误区 2:把所有模板都全员共享

结果低质量模板泛滥,输入候选噪音很大。

误区 3:把它当成正式知识库

它适合短促、可插入的回复,不适合承载完整 SOP。


七、落地建议

如果你想把它用好,建议按这个思路:

  1. 高频、短句、可复用的内容才放 canned response
  2. 需要统一口径的模板按群组授权
  3. 模板正文保持“可直接发出去,但允许临场改一句”
  4. 复杂流程说明仍然放知识库、文档或 playbook

最后一句

Odoo 预设回复真正优化的,不只是打字速度,而是团队在高频沟通里的表达一致性。

这也是它为什么必须同时管快捷词、共享范围和编辑权限。

DISCUSSION

评论区

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