如何在 Odoo 18 中配置自動化動作
Odoo是一款多功能的業務管理平臺,旨在幫助各種規模的企業更高效地處理日常運營。憑借其涵蓋銷售、庫存、客戶關系管理(CRM)、會計和人力資源等領域的多樣化模塊,Odoo 簡化了業務流程,并將所有業務數據整合到一個平臺中。其靈活性和隨業務擴展的能力,使其成為希望精簡運營、提升效率的企業的理想解決方案。
- Odoo的核心優勢在于自動化日常任務的能力。Odoo 的一大特色功能是能夠自動化常規任務,使企業無需持續人工監控即可確保重要流程無縫執行。在 Odoo 18 中,** 自動化動作(Automated Actions)** 功能得到進一步增強,提供了更多跨模塊設置自定義工作流的方式。這些自動化工作流可以基于特定條件觸發動作,例如發送提醒、更新記錄或啟動更復雜的流程,幫助企業以最小的精力保持對運營的掌控。
- 通過自動化重復性任務,企業可節省時間、減少錯誤并提升效率。本文將將深入探討 Odoo 18 中自動化動作的工作原理、如何根據需求定制它們,以及它們如何用于簡化從銷售和客戶管理到庫存和人力資源等各個領域的流程。
一、配置自動化動作的前提:安裝模塊
要配置自動化動作,需先安裝 base_automation 模塊(即 “自動化規則” 模塊)。該模塊是 Odoo 自動化功能的基礎,提供創建自動化規則的核心能力。
二、配置自動化動作的步驟
1、啟用開發者模式
- 進入 Odoo 界面,點擊右上角用戶頭像,選擇 啟用開發者模式(Developer Mode)。
2、訪問自動化動作配置界面
- 導航至 設置(Settings) > 技術(Technical) > 自動化規則(Automated Actions)。
在此界面中,您可以創建、編輯或刪除自動化規則,定義觸發條件和執行動作。
3、配置步驟詳解
- 步驟一:基礎設置
名稱(Name):自定義自動化規則的名稱,需簡潔明了(如"訂單確認后自動開票")
模型(Model):選擇要應用自動化動作的目標模型(如銷售訂單、采購訂單、庫存調撥等) - 步驟二:觸發條件(Triggers)
觸發條件決定自動化動作何時執行。Odoo 18 支持以下類型的觸發條件:- 1、值更新(Values Updated)
當記錄的特定字段發生變化時觸發(例如:用戶分配、標簽添加、狀態更新等)。 - 2、更新時(Upon Update)
收到郵件(On Incoming Email):接收到新郵件時觸發(如根據郵件內容創建潛在客戶)。
發送郵件(On Outgoing Email):發送郵件后觸發(如發票郵件發送后自動跟進)。 - 3、時間條件(Timing conditions)
基于日期字段(Based on Date Field):根據記錄中的日期字段(如截止日期)觸發。
創建后(After Creation):記錄創建后的指定時間觸發。
最后更新后(After Last Update):記錄最后一次更新后的指定時間觸發。
- 1、值更新(Values Updated)
- 4、自定義(Custom)
保存時(On Save):記錄保存時觸發。
刪除時(On Deletion):記錄刪除時觸發(如刪除訂單時發送通知)。
界面變更時(On UI Change):用戶界面字段值修改時觸發。 - 5、外部觸發(External)
·Webhook 觸發(On Webhook):接收到外部系統的 Webhook 請求時觸發(用于集成第三方應用)。
以下界面展示不同的觸發條件:
步驟三:過濾條件(Before Update Domain)
使用域(domain)表達式精確定位目標記錄,例如:
[(‘state’,‘=’,‘confirmed’), (‘amount_total’,‘>’,1000)]
表示針對"已確認"且"總金額超1000"的訂單
步驟四:執行動作(Action To Do)
定義觸發條件滿足時執行的動作。Odoo提供10種標準動作:
- 1、執行 Python 代碼(Execute Python Code):運行自定義 Python 邏輯(需注意權限和安全性)。
- 2、創建新記錄(Create a New Record):自動創建指定模型的新記錄(如創建采購訂單時自動生成庫存調撥單)。
- 3、更新記錄(Update the Record):自動更新當前記錄的字段值(如訂單確認后標記 “已處理”)。
- 4、發送郵件(Send Email):使用現有郵件模板或新建郵件發送通知(如發貨后通知客戶)。
- 5、添加關注者(Add Followers):自動將指定用戶或合作伙伴添加為記錄關注者。
- 6、移除關注者(Remove Followers):自動移除記錄的關注者。
- 7、創建活動(Create Activity):為記錄安排待辦活動(如提醒銷售跟進客戶)。
- 8、發送短信(Send SMS):使用短信模板發送短信通知。
- 9、發送 Webhook 通知(Send Webhook Notification):向外部系統發送 POST 請求(用于數據同步或觸發第三方服務)。
- 10、執行現有動作(Execute Existing Actions):批量執行多個已定義的服務器動作。
步驟五:允許的用戶組(Allowed Groups)
指定有權限觸發該自動化動作的用戶組,確保只有特定角色(如管理員、銷售團隊)可以執行相關動作。
步驟六:動作詳情(Action Details)
在此定義當滿足指定條件時自動化動作將執行的具體動作。該部分決定了當所有觸發條件達標時系統將產生的最終結果。
代碼配置示例
以下示例演示如何通過 XML 定義一個自動化規則:當采購相關的庫存調撥單狀態變為 “完成(done)” 時,自動為采購訂單生成草稿狀態的發票。
<?xml version="1.0" encoding="utf-8" ?>
<odoo><record id="action_create_invoice_on_purchase_done" model="ir.actions.server"><field name="name">從采購單生成發票</field><field name="model_id" ref="stock.model_stock_picking"/> <!-- 作用于庫存調撥單模型 --><field name="type">code</field><field name="code">
purchase_order = record.purchase_id
# 獲取關聯的采購訂單
if purchase_order and purchase_order.invoice_status == 'to invoice':purchase_order.action_create_invoice()
# 調用生成發票的方法</field></record><record id="automated_action_create_invoice_on_picking_done" model="base.automation"><field name="name">調撥單完成時生成發票</field><field name="model_id" ref="stock.model_stock_picking"/><field name="trigger">on_create_or_write</field> <!-- 記錄創建或者更新時觸發--><field name="filter_domain">[('state', '=', 'done')]</field> <!--僅當狀態為"完成"時觸發--><field name="action_server_ids" eval="[(4, ref('action_create_invoice_on_purchase_done'))]"/> <!--聯上述服務器動作 --></record>
</odoo>
配置說明
當庫存調撥單狀態變為 “done” 時,觸發自動化規則。
規則調用服務器動作,檢查關聯的采購訂單是否需要開票(invoice_status=‘to invoice’),若需要則自動生成發票。
安裝包含上述 XML 的自定義模塊后,系統將自動創建對應的自動化動作,如下圖所示:
五、總結
Odoo 18 的自動化動作功能通過自動化常規任務和簡化工作流,為企業提升效率提供了強大工具。通過設置特定的觸發條件和動作,用戶可節省時間并減少人為錯誤。Odoo 借助服務器動作(Server Actions)和 XML 配置,支持根據企業獨特需求定制自動化邏輯,使團隊能夠聚焦核心業務,推動增長和創新,而非困于重復性工作。通過合理配置自動化動作,企業可將日常運營效率提升40%以上。總體而言,這些功能助力企業實現更流暢、高效的運營。