CRM 深度

Odoo 官网表单进 CRM 为什么来源、team、负责人会自己带上:website_form_input_filter 的默认注入链路讲透

很多人以为网站表单提交进 CRM 就是建一条普通 lead,但 website_crm 会在进入模型前先补 medium、默认 team、默认负责人,并根据 team 的 use_leads 决定它落成 lead 还是 opportunity。

CRM
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 6 阅读

先说结论

网站表单进入 Odoo CRM 时,并不是“浏览器提交什么,CRM 就原样建什么”。

website_crmwebsite_form_input_filter() 里会先做一轮默认值注入:

  • 没有 medium_id 时,优先取 UTM 默认值,否则创建/取用 website 这个 medium;
  • 没有 team_id 时,取网站默认销售团队;
  • 没有 user_id 时,取网站默认负责人;
  • 如果没有负责人但有 team,且规则分配没启用,会退回 team 负责人;
  • 最后根据 team 的 use_leads 决定记录是 lead 还是 opportunity

所以网站线索其实是先被路由,再被创建


一、为什么网站表单不是“纯前台输入”

很多人把网站表单理解成一层很薄的 UI,觉得字段映射完成就结束了。

但 CRM 真正关心的是:

  • 这条记录属于哪个销售入口;
  • 该按 lead 流程还是 opportunity 流程走;
  • 来源介质要不要先补齐,后续报表才不会断链。

所以 website_form_input_filter() 不是装饰器,而是业务路由器。


二、medium_id 为什么会被优先兜底成 website

源码先尝试:

  1. 表单里有没有显式 medium_id
  2. default_get(['medium_id']) 能否从 UTM 体系补出来;
  3. 还没有,就 _fetch_or_create_utm_medium('website')

这说明 Odoo 很明确:

前台线索如果连介质都没有,后面营销分析会很难看。

所以它宁可给你一个最保守的 website,也不愿让来源字段完全空着。


三、team 和 user 的默认注入,决定了后面整条主链路

网站对象上有 crm_default_team_idcrm_default_user_id

这两个默认值不是可有可无。

因为它们会影响:

  • 线索先落到哪个 pipeline;
  • 后续阶段作用域怎么选;
  • 是否一开始就有人负责;
  • 自动分配是否还需要继续接手。

特别是当 user_id 为空、team_id 存在且规则分配未启用时,源码会退回到该 team 的负责人。也就是说:

哪怕你没配复杂的自动分配,网站线索也不会永远漂在无人状态。


四、为什么同样是网站进线,有的成 Lead,有的直接成 Opportunity

关键判断在 team.use_leads

  • team 开启 Leads:落成 lead
  • 否则直接落成 opportunity

这不是单纯字段差异,而是流程哲学差异:

  • 有些团队要先筛选、资格判断,再转商机;
  • 有些团队更偏直接入 pipeline,不单独维护线索池。

网站表单只是入口,真正决定流程的是 team 策略。


五、最容易误判的地方

1. 以为来源字段一定来自前台隐藏域

不一定,后端会补。

2. 以为没配默认负责人就一定是无人线索

不一定,可能回退到 team 负责人。

3. 以为网站表单都先落 lead 再转机会

不一定,取决于 team 是否启用 Leads。

4. 以为“建出来不对”是表单模板问题

很多时候其实是网站默认 team/user 或 CRM 规则配置问题。


六、排错顺序

网站线索路由不对时,按这个顺序看最快:

  1. 网站默认 crm_default_team_id
  2. 网站默认 crm_default_user_id
  3. team 的 use_leads/use_opportunities
  4. 规则分配是否启用;
  5. medium 是否来自 UTM 默认或兜底 website。

一句话记忆

网站表单进 Odoo CRM,不是先建记录再想办法归类,而是先补 medium、team、owner 和类型,再正式落库。

DISCUSSION

评论区

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