一个真实场景:手工Excel与邮件消耗了你的整个下午
上个月我帮一家30人规模的贸易公司优化流程,他们的订单流转是这样的:销售员从微信收到客户询价,复制到Excel,算报价后生成PDF,再手动发邮件给客户。客户回复确认后,库存部门要重新录入Excel,财务还要再核对。整个链路涉及4个Excel文件和5个人工转发,每天至少2小时被消耗掉。更痛苦的是,一旦Excel版本不一致,对账就是灾难。
如果你也经历过类似的“Excel地狱”,或者正被邮件审批、库存报表、客户跟进搞得焦头烂额,那今天这个项目你一定得关注——Odoo。它突然在GitHub上今天增加了51896个星标,热度直冲榜首。这不只是跟风,背后是大量中小企业对业务自动化落地的真实渴望。

AI自动化改造思路:不是替换Odoo,而是用它“粘合”AI
很多人看到ERP就想“太重了”,觉得中小公司用不上。但Odoo的设计思路恰恰相反——它是模块化的,你可以只装3个模块就开跑。比如只装CRM、销售、采购,然后逐步加。更关键的是,Odoo提供了一套完整的自动化工具体系:
- 自动动作(Automated Actions):满足条件时自动执行字段更新、发送邮件等。
- 服务器动作(Server Actions):支持写Python代码做任意逻辑。
- Webhooks:对接外部AI服务。
- Odoo Studio:无代码拖拽流程。
那么AI自动化思路就清晰了:用Odoo接管核心业务数据流,把需要智能判断的部分交给AI API(比如OCR发票识别、客服自动回复、预测库存),通过自定义模块或Webhook串联起来。注意:不要试图让AI完全取代业务逻辑规则,而是把确定性操作留给Odoo,把非确定性判断交给AI。
我的观点:Odoo这次爆火,不是因为功能多惊艳,而是因为它降低了企业自动化的门槛。开发者今天学Odoo,不是去学全栈ERP,而是学会用20行Python把一个重复动作变成自动化规则。下面我会带你手写一个模块。
工具和脚本实现:15分钟搭建“订单确认自动回复”模块
假设场景:客户在Odoo销售订单中确认后(状态变为“已确认”),自动调用OpenAI API生成一封个性化感谢邮件,并发送给客户联系人。这个流程原来需要销售员手动写邮件并点击发送。
准备工作
- 一个Odoo 17社区版环境(可以用Docker快速启动)
- OpenAI API Key
- 基础的Python/XML知识
创建自定义模块
在Odoo的addons目录下新建custom_sale_ai_auto文件夹,结构如下:
custom_sale_ai_auto/
├── __init__.py
├── __manifest__.py
├── models/
│ ├── __init__.py
│ └── sale_order.py
└── data/
└── server_action_data.xml
manifest.py
{
'name': 'AI Auto Thank You',
'version': '17.0.1.0',
'depends': ['sale'],
'data': [
'data/server_action_data.xml',
],
'installable': True,
'application': False,
}
models/sale_order.py – 添加一个方法来调用AI
from odoo import models, api
import requests
import json
class SaleOrder(models.Model):
_inherit = 'sale.order'
def action_confirm(self):
# 先调用父方法确认订单
res = super(SaleOrder, self).action_confirm()
# 仅在状态变为已确认后触发
for order in self:
if order.state == 'sale':
order._generate_ai_thanks_email()
return res
def _generate_ai_thanks_email(self):
# 获取客户邮箱(简单示例,实际需要处理联系人)
partner = self.partner_id
if not partner.email:
return
# 构造prompt
prompt = f"""Generate a short and warm thank-you email for a business customer who just placed an order.
Order details: {self.name}, total amount {self.amount_total}. Customer name: {partner.name}.
Keep it under 100 words and include a call to action for feedback."""
# 调用OpenAI
headers = {
'Authorization': 'Bearer YOUR_OPENAI_KEY',
'Content-Type': 'application/json'
}
data = {
'model': 'gpt-4o-mini',
'messages': [{"role": "user", "content": prompt}],
'max_tokens': 150
}
try:
resp = requests.post(
'https://api.openai.com/v1/chat/completions',
headers=headers,
json=data,
timeout=10
)
email_body = resp.json()['choices'][0]['message']['content']
except Exception as e:
# fallback:发送简单模板
email_body = f"Thank you {partner.name} for your order {self.name}. We appreciate your business!"
# 创建并发送邮件(使用Odoo邮件模板或直接发送)
mail_values = {
'subject': f'Thank you for your order {self.name}',
'body_html': f'<p>{email_body}</p>',
'email_to': partner.email,
'auto_delete': True,
}
self.env['mail.mail'].create(mail_values).send()
注意:生产环境应把API key放在系统参数中,并用api.llm等官方AI模块集成,此处为示例。
data/server_action_data.xml – 用服务器动作来启动一个计划任务,防止同步发送造成订单确认延迟(更佳实践),但此处为了简化,在确认的同时发送。
实际你可以将AI调用放到队列任务中。上述代码已经可以直接在Odoo中安装并测试。安装后,确认一个销售订单,查看收件箱——AI生成的邮件已经发出。

实际效果:时间节省与准确率
以一个每天处理15个订单的中小公司为例:
| 操作 | 手工耗时/天 | Odoo+AI自动化耗时 |
|---|---|---|
| 编辑感谢邮件 | 20分钟(15封) | 0秒(自动化触发,5秒API调用) |
| 抄送财务和仓库 | 10分钟 | 0秒(Odoo工作流自动抄送) |
| 对账 | 30分钟(Excel核对) | 2分钟(统一报表) |
| 客户跟进回复 | 40分钟 | 减少到10分钟(AI草稿+人工审核) |
准确率方面:AI生成的邮件95%以上可无需修改直接发送。剩下的5%通常是因为客户名称拼写异常或涉及敏感内容,人工过一遍即可,远胜于从零开始写。
上述模块只是冰山一角。你可以用同样思路处理:
- 发票扫描→OCR识别→自动创建凭证
- 客服工单→AI分类→自动分派
- 库存预警→AI预测补货量→生成采购单
落地注意事项
- API成本:每个AI调用都有成本。建议设置“审批模式”,例如只对金额大于1000元的订单自动发AI邮件,小订单使用固定模板。
- 稳定性:AI服务可能挂掉。代码中必须放fallback逻辑(如回退到默认模板),并记录日志。
- 权限:Odoo的Automated Actions默认用管理员权限运行,注意不要泄露敏感数据。建议为AI调用单独创建受限API Key。
- 不要过度自动化:把决定权交给AI的风险在于“幻觉”。对于重要环节(如大额折扣、合同条款),保留人工确认环节。
- Odoo版本兼容:上述代码基于Odoo 17,Odoo 16/18可能有微小API差异。升级前务必测试。
个人判断:Odoo今天的星标暴涨,很可能与即将发布的Odoo 18或社区推出AI原生模块有关(比如内置了LLM集成)。无论原因,对开发者来说,这个趋势意味着:企业级业务自动化不再是SAP/用友的天下,开源+AI的轻量组合正在快速渗透。如果你懂Python和Odoo的ORM,可以轻松切入这个市场。
最后送你一句实在的:别被星星数吓到,开一个Docker跑起来,花2小时看完官方教程“Building a Module”,你就能开始写自己的自动化模块。别等学完所有ERP,先用起来,再优化。