现在很多人提 AI 通话,脑子里只有“录音转文字,再自动出摘要”。Odoo 企业版的思路更务实:enterprise/voip_ai/models/voip_call.py 负责把通话变成可检索的 transcript 与 summary,enterprise/voip_crm/models/voip_call.py 和相关前端补丁则负责把这通电话重新挂回客户和商机动作上。真正的价值在桥接,而不只在生成。
一、AI 部分的重点是状态机,而不是一句摘要
voip.call 上有 transcript、transcription_status、summary 三个核心字段。_cron_transcribe_recent_voip_call() 说明通话处理不是实时魔法,而是一个带状态推进的后台链路:pending、queued、done、error、too_big_to_process、no_audio 等状态都被明确定义出来。
这很重要,因为企业里最怕“AI 功能偶尔失灵但没人知道”。Odoo 至少把失败显式化了:没有音频、音频太大、转写异常都不是静默吞掉,而是回写到 call 记录里。
二、summary 的真正作用是把 transcript 压缩成可操作入口
源码里 AI agent prompt 强调“EXACTLY ONE short, action-oriented fragment”。这句话说明产品设计目标不是写会议纪要,而是把长通话压缩成一个足够短、足够像下一步动作提示的摘要。
所以标题里的“next step”不是说源码里有个 next_step 字段,而是说 summary 被设计成行动导向的片段。它服务的场景是:销售或客服在 call list、表单、侧边栏里扫一眼,就知道这通电话接下来该干什么。
三、CRM bridge 才让摘要真正有业务落点
voip_crm 做的事很直接:
voip_action_view_opportunity()能从通话跳到 partner 对应商机;res.partner.get_view_opportunities_action()会根据机会数量,决定是新建、直达单条还是打开列表;- 前端
LeadButton/ in-call patch 把“创建 lead / 查看 leads”嵌进软电话界面。
这意味着 AI summary 不是给你“看着高级”的,它要能落到 CRM 后续动作里。否则就只是一个漂亮的只读字段。
四、活动 bridging 更像“人为接棒”,不是 AI 自动闭环
voip_crm/views/crm_lead_views.xml 和相关测试可以看出,系统在 CRM 侧非常重视 phone call activity。也就是说,Odoo 没有激进到让 AI 自动替你创建所有下一步,而是把通话、摘要、lead/opportunity 入口和后续 activity 保持在一条可人工接棒的链路上。
这其实是正确的企业思路:
- AI 负责压缩信息、减少回听成本;
- CRM bridge 负责找到该跟进的业务对象;
- activity 负责让下一步动作被真正安排出去。
五、容易误解的地方
1. 有 transcript 不等于摘要一定可靠
摘要质量取决于录音质量、转写质量和 prompt 约束,不应替代人工判读关键承诺。
2. summary 不是自动成交按钮
它只是后续动作的入口,真正推进客户仍要靠 CRM 流程和人。
3. 通话桥接失败时,问题常在 partner / lead 关系
很多“点不进去商机”并不是 AI 失灵,而是客户资料或权限关系没建好。
六、实战建议
- 先盯
transcription_status,确认通话有没有进入正确状态; - 再看 summary 是否足够行动导向,而不是空泛复述;
- 最后验证 CRM 按钮是否能把用户送到正确的 lead / opportunity 和后续 activity 上。
七、结论
Odoo 企业版 AI 通话真正有价值的地方,不是“帮你生成一段摘要”,而是让通话内容能以最小认知成本重新接回 CRM 跟进链路。没有这层 bridging,AI 再聪明,也只是一段挂在电话记录里的文本。
主要源码锚点:
enterprise/voip_ai/models/voip_call.pyenterprise/voip_ai/data/ai_agent_prompts.xmlenterprise/voip_crm/models/voip_call.pyenterprise/voip_crm/models/res_partner.py
DISCUSSION
评论区