自動化規則

自動化規則允許針對特定觸發行為,執行一個或多個預先設定的操作。例如:若某個欄位設為指定資料值時,自動建立活動,或在記錄最後一次更新 7 天後,自動封存。

建立自動化規則時,可以加入執行自動化規則前 必須滿足的條件,例如:商機必須分配給指定銷售人員,或記錄的狀態不可是 草稿

若要使用 Odoo Studio 建立自動化規則:

  1. 開啟 Studio ,按一下 自動化,然後按 新增

  2. 為自動化規則命名,提供一個清晰、有意義的名稱,以識別其用途。

  3. 選擇 觸發 。若畫面因應所選觸發器而顯示有欄位需要填寫,請填入相關資料。

  4. Click Add an action in the Actions To Do tab.

  5. Select the Type of action and complete the relevant fields based on the chosen action.

  6. 按一下 儲存並關閉 ,或按 儲存及新增 設定其他操作。

Example

舉例,若想確保能跟進滿意度較低的客戶,此自動化規則可在銷售單建立 3 個月後,為滿意度評分低於 30% 的客戶建立跟進活動。

訂閱模型自動化規則範例

小訣竅

  • 你可使用 備註 分頁,記錄自動化規則的用途及功能。這樣可使規則較容易維護,以及促進用戶之間的協作。

  • 若要修改自動化規則所針對的 模型,請先切換模型,然後在 Studio 按一下 自動化 ,或 啟動開發人員模式,建立或編輯該自動化規則,然後在 自動化規則 表單中選取所需 模型

  • 滑鼠停留在看板階段名稱上時,會顯示 (設定) 圖示,按一下此圖示然後選擇 自動化,便可在任何看板階段中,建立自動化規則。在這種情況下, 觸發 會預設設為 階段設為 ,但有需要時可以更改。

    在看板階段中建立自動化規則

觸發

觸發 是執行自動化規則所需的事件類型。可用的觸發事件會因應 模型 而有所不同。系統總共有五種觸發類別:

加入條件

你可使用範圍篩選器,決定自動化規則應該針對或排除哪些記錄。高效率的篩選,能避免對不受規則影響的記錄進行不必要的處理,從而提高整體效能。

小訣竅

建立自動化規則之前,請先 啟動開發人員模式,在加入範圍篩選器上可享最大靈活度。

視乎所選觸發,你可設定一項或多項條件,要求記錄在觸發 之前 及/或 之後 必須滿足。

  • 範圍更新前 是指記錄在觸發 之前 必須滿足的條件。例如:記錄必須為 類型 = 客戶發票狀態 = 已過賬

    啟動開發人員模式後,按一下 編輯範圍 (若可用),然後按 新增規則

  • 套用至 範圍是設定觸發 之後 記錄必須滿足的條件。例如:客戶發票必須為 付款狀態 = 部份已付

    啟動開發人員模式後,按一下 編輯範圍 ,然後按 新增規則

    小訣竅

    如果未啟動開發人員模式但需要設定 套用至 範圍,請按一下 加入條件 ,然後填寫或刪除建議的條件。若要加入其他條件,請按 新增規則

發生 觸發 事件時,例如已過賬客戶發票的付款狀態被更新,自動化規則會檢查所設定的條件,並在記錄符合這些條件時,自動執行 操作

Example

若想在個人但不是公司的現有聯絡人首次設定電郵地址(而不是修改已有的電郵地址)時執行自動操作,可將 更新前範圍 設為 電郵未設定是公司未設定 ,並將 套用至 範圍設為 電郵已設定

設有更新前範圍的觸發範例

備註

建立記錄時,不會檢查 更新前範圍

資料值更新

在資料庫發生指定變化時,觸發自動操作。可用的觸發會視乎模型而不同,並會基於常見的更改,例如加入特定標籤(譬如加入至任務中)或設置欄位值(譬如為 使用者 欄位設定一個值)。

選擇觸發事件,然後按需要,選擇適用的資料值。

電郵活動

接收或發送電子郵件時,觸發自動操作。

時間條件

在一個相對於日期欄位,或相對於記錄建立或更新時間的時間點,觸發自動操作。可使用以下觸發事件:

  • Based on date field: The action is triggered a defined period of time before or after the date of the selected date field, e.g., 30 days before the contract end date.

  • 建立後:在建立及儲存記錄一段設定時間之後觸發操作。

  • 上次更新後:在編輯及儲存現有記錄一段設定時間之後觸發操作。

To configure a Timing Conditions trigger, with developer mode activated:

  1. Select the appropriate Trigger from the Timing Conditions category. If you select the Based on date field trigger, select the relevant date field.

  2. Configure the Delay to determine the execution date time of the action(s). To do so, enter the number of Minutes, Hours, Days, or Months after which the action should be triggered. If you selected the Based on date field trigger, the action can be triggered After or Before the selected date field.

  3. Optionally, add conditions that the record must meet before and/or after the rule is triggered.

  4. Click Save manually.

  5. Click Scheduled action to open the Automation Rules: check and execute scheduled action.

    備註

    This scheduled action checks for execution date times that have been reached since its previous run, and executes the related action(s), if relevant. By default, the scheduled action is set to Execute Every 4 hours, which is generally sufficient for delays such as 3 months after the order date or 7 days after the last update.

    If any automation rule has a time-based trigger with a delay of less than the equivalent of 40 hours, e.g., 3 hours before the event start date time, the frequency of the scheduled action is automatically increased, e.g., to Execute Every 18 minutes. This allows the action to be executed closer to its scheduled execution date time.

  6. Click Run manually at the top left.

    警告

    This step is critical to prevent the rule from running retroactively on historical records. Running the scheduled action manually initializes the timestamp of its last run in the automation rule, which is a key element of the rule’s execution logic.

  7. Click the automation rule name in the breadcrumbs to return to the automation rule setup.

  8. Add the action(s) to be executed then, when all actions have been defined, click Save manually.

The action is executed the first time the Automation Rules: check and execute scheduled action runs after the execution date time is reached, and when the conditions are met.

Execution logic

When using a time-based trigger, an action is only executed when the execution date time falls between the last run of the scheduled action and the current run (whether scheduled or run manually), i.e.:

last run –> execution date and time –> current run

備註

Running the Automation Rules: check and execute scheduled action manually does not necessarily result in a rule’s action being executed. When testing an automation rule with a time-based trigger, ensure that this sequence is true, then check if the action has been executed.

Example

On the morning of October 15, you create an automation rule that triggers the sending of an email 30 days before the Contract end date; contracts end at 11:59 pm on their contract end date. During the creating of the rule, the Automation Rules: check and execute scheduled action was run manually at 11:00 am and is set to run every four hours thereafter.

This new automation rule will apply for contracts whose end date is at least 30 days after the creation of the rule, i.e., an end date of November 14 or later.

For a contract with an end date of November 14, the execution date time of the action is 11:59 pm on October 15. The action will therefore be executed the first time the Automation Rules: check and execute scheduled action runs after that date and time has passed, i.e.,:

  • last run of the scheduled action: 11:00 pm on October 15

  • execution date time: 11:59 pm on October 15

  • current run of the scheduled action: 3:00 am on October 16

自訂

觸發自動化操作:

  • 建立時:首次儲存記錄時。

  • 建立及編輯時:記錄首次儲存及之後任何時間再次儲存時。

  • 刪除時:記錄被刪除時。

  • 操作介面變更時:當有欄位值在 表單檢視畫面 上更改時。此設定甚至適用於記錄儲存之前。

若選擇 建立或編輯時操作介面變更時 兩種觸發事件,你 必須 隨後在 更新此項時 欄位中,選擇用於觸發自動化規則的對應欄位。

警告

更新此項時 欄位未有選擇任何欄位,該自動化操作可能會在每一項記錄上都執行多次。

你也可選擇在 套用至 欄位中,設定觸發自動化規則需要符合的其他條件。

備註

操作介面變更時 觸發事件只可與 執行程式碼 操作一起使用,並只會在手動修改時觸發。若欄位透過其他自動化規則更改,便不會觸發此操作。

外部

你可使用 網絡鈎子 (webhook),依據外部系統或應用程式的特定事件,觸發自動操作。

在 Odoo 配置網絡鈎子(該網絡鈎子的網址是由系統產生)並設定目標記錄後,還需要在外部系統中實施。

警告

我們 強烈建議 你在決定使用網絡鈎子前,以及在整個實施過程中,諮詢開發人員、解決方案架構師或其他技術人員。若配置不當,網絡鈎子可以擾亂 Odoo 資料庫,並需要一段時間才可修正和恢復。

基於日期欄位觸發範例

備註

自動化操作亦可設置為當你的 Odoo 資料庫發生事件時, 向外部系統的網絡鈎子傳送數據

動作

設定自動化規則的 觸發 後,在 執行操作 分頁中,按一下 加入操作 ,以定義需要執行的操作。

小訣竅

  • 若未有輸入明確名稱,操作名稱會根據你所設定的操作自動產生。操作名稱可隨時更新。

  • 你可以為同一項自動化規則,設定多項操作。預設情況下,操作會依照定義的順序執行。

    即是說,假設你設定了一個 更新記錄 操作,然後再設定一個 傳送電郵 操作,而電郵地址是引用剛被更新的欄位,那麼電郵操作將會使用已更新的值。但是,如果 傳送電郵 操作是設定在 更新記錄 之前,電郵地址便會使用更新記錄 之前 已設置的值。

    若要更改已定義的操作順序,請按一下操作旁邊的 (拖曳把手) 圖示,然後將其拖放至所需位置。

更新記錄

此操作用於更新記錄的其中一個(相關)欄位。有以下選項可用:

  • 更新:使用指定值去更新所選欄位。

  • 用 AI 更新:根據系統提供的 AI 人工智能提示,動態更新所選欄位。此選項須安裝 Odoo AI 應用程式。

  • 序列:使用定義的序列去更新所選欄位。

  • 計算:使用 Python 程式碼,動態更新所選欄位。

若要定義操作:

  1. 選擇 更新用 AI 更新序列計算 選項後,請選擇或搜尋要更新或計算的欄位。如有需要,按一下欄位名稱旁邊的 (右箭嘴) ,以查看相關欄位清單。

  2. 根據所選選項,提供相關資料。

更新

選擇或輸入欄位的更新值。

若更新的是 多對多欄位,請選擇該欄位應該如何更新:可以是 加入移除設定為 所選值,或完全 清除 現有值。

Example

若想自動化操作從客戶記錄中移除某個標籤,請將 更新 欄位設為 客戶 > 標籤,選擇 移除 ,然後選擇要移除的標籤。

更新記錄操作範例

用 AI 更新

輸入提示,指示 Odoo AI 應如何更新欄位。鍵入 / (斜線)可開啟 AI 提示工具。你亦可利用 欄位選擇工具 ,告訴 Odoo AI 應檢查哪些相關欄位,並使用 記錄選擇工具 為該欄位提供可能的更新值。

Example

若想自動化規則根據員工的專長,為新建立的任務更新 受指派人 欄位,你可編寫一段提示,指示 Odoo AI 檢查任務的 顯示名稱 欄位,以了解任務背景,然後自動分配給最適合的員工。

使用 AI 更新記錄範例

序列

選擇現有序列,或按以下步驟建立新的序列:

  1. 按一下 搜尋更多,然後按 新增

  2. 在顯示的視窗中,輸入序列的 名稱

  3. 序列 选项卡中,配置序列:

    • 前缀:在序列中的下一个数字*之前*添加的字符。

    • 后缀:在序列中下一个数字*后*添加的字符。

    • 序列大小:决定序列中每个数字的位数。如有必要,会在数字前加上前导零,以达到指定的序列大小,例如,序列大小为 5`时,序列中的第一个数字为 `00001

    • 步骤:确定序列中数字之间的增量。

    • 下一个编号:序列中将使用的下一个数字,不包含前导零。

    小訣竅

    • 使用如 %(year)s%(month)s 之类的动态占位符作为 前缀 和/或 后缀,以创建包含当前年份、月份等元素的序列。可能的占位符显示在窗口底部。

    • 要使用子序列(例如,使序列每年或每月重新开始),请启用 按日期范围使用子序列,然后为每个日期范围 添加一行 并指明该范围的 下一个编号

  4. 按一下 儲存

Example

若想自動化操作在每次建立新的客戶記錄時,建立一個順序的客戶參考編號,可將 序列 欄位設為 參考,然後在下拉式選單中,按一下 搜尋更多。按一下 新增 以建立新的序列。

在此示例中,每位新客户会收到一个带有前缀 #-REF-%(year)s- 的顺序参考号,其中 %(year)s 是包含世纪的当前年份,后缀为 /CL。例如:#-REF-2025-00001/CL#-REF-2025-00002/CL 等。

使用序列更新記錄操作範例

計算

輸入用以計算欄位值的程式碼。

Example

若想在任務優先級別設為 非常高 (三粒星)時,利用自動化規則計算自訂的 升級時間 日期時間欄位 ,可將觸發事件 優先級別設為 定義為 非常高,並依照以下步驟,配置 更新記錄 操作:

使用 Python 表達式計算自訂日期時間欄位

建立記錄及複製記錄

此類操作是用於在任何模型上,建立新的記錄或複製現有記錄。

若要定義操作:

  1. 按照實際需要,將操作 類型 設為 建立記錄複製記錄,然後在 需要建立的記錄 欄位中,選擇所需的模型。此欄位預設設為目前的模型。

  2. 設定記錄的 名稱。若為複製記錄操作,請在 複製來源 欄位中,設定需要複製的來源記錄。

  3. 若要在其他模型上建立新記錄,或將記錄複製至其他模型,請在 連結欄位 選擇相應欄位,以關聯至觸發操作的來源記錄。

小訣竅

連結欄位 下拉式選單只會顯示目前模型中存在、需要連結至目標模型中 多對一欄位一對多欄位

Example

若想在商機狀態設為 已贏得 時,利用自動化規則複製專案項目(例如,包含預設任務的專案範本),可在 專案 模型中,加入一個自訂的 相關商機 多對一欄位,並在 潛在客戶 模型中,加入自訂的 相關專案 一對多欄位,然後提供有關複製記錄的以下資料:

複製記錄至其他模型

小訣竅

如有需要,可建立包含 更新記錄 操作的另一項自動化規則,為新建立或複製的記錄更新欄位。舉例,可使用 建立記錄 操作,建立新的專案任務,然後使用 更新記錄 操作,將該任務指派給指定使用者。

建立活動

此操作用於將關聯至記錄的新增活動排程。

若要定義操作:

  1. 將操作 類型 設為 建立活動,並在下拉式選單中,選擇適當的 活動類型

  2. 輸入 標題

  3. 期限尚餘 欄位中,設定 星期月份 數目,以設定活動應該完成的最後期限。

  4. 選擇 使用者類型

    • 若想永遠將活動分配給相同的使用者,可選擇 指定使用者,然後將該使用者加入至 負責人 欄位。

    • 若想動態指定與記錄相關聯的使用者,可選擇 動態使用者(基於記錄)。如有需要,可按一下佔位欄位名稱去修改 使用者欄位,並在顯示的清單中,選擇或搜尋所需的使用者欄位。如有需要,按一下欄位名稱旁邊的 (右箭嘴) 可存取相關欄位。

  5. 你亦可加入 備註,以為該活動提供更多資訊。

Example

舉例,向預期收入較高的商機發送提案後,可建立一個致電潛在客戶的活動,指派給銷售團隊負責人,提高成交機會。

要執行此操作,請將 活動類型 設為 通話,並將 使用者類型 設為 動態使用者(基於記錄)。按一下佔位欄位,選擇 銷售團隊,然後按一下 (右箭嘴) 並選擇 團隊負責人

建立活動操作範例

傳送電子郵件及 SMS 短訊

此操作用於向關聯至特定記錄的聯絡人,傳送電子郵件或 SMS 文字訊息。

若要定義操作:

  1. 將操作 類型 設為 傳送電子郵件傳送短訊,然後選取或建立 電郵範本短訊範本

  2. 傳送電子郵件為傳送短訊為 欄位中,選擇傳送電子郵件或短訊的方式。

    若選用電子郵件,可選擇:

    • 電郵:以電子郵件形式,將訊息發送給 電郵範本 的收件人。

    • 訊息:在記錄中發佈訊息,並通知該記錄的關注者。

    • 備註:以內部備註形式發送訊息,內部使用者可在聊天欄看到。

    若選用短訊,可選擇:

    • 短訊(不加備註):以 SMS 文字訊息形式,將訊息傳送給 短訊範本 的收件人。

    • 短訊(加入備註):以 SMS 文字訊息形式,將訊息傳送給 短訊範本 的收件人,並以內部備註形式,發佈至聊天欄。

    • 只限備註:訊息只會作為內部備註發佈至聊天欄。

傳送 WhatsApp

重要

要自動化傳送 WhatsApp 訊息,須建立一個或多個 WhatsApp 範本

此操作用於向關聯至特定記錄的聯絡人,傳送 WhatsApp 訊息。

將操作 類型 設為 傳送 WhatsApp,然後從下拉式選單中,選擇所需的 WhatsApp 範本

加入及移除關注者

此操作用於為現有聯絡人,訂閱為記錄的關注者,或取消訂閱(取消關注)。

按實際需要,將操作 類型 設為 加入關注者移除關注者,然後選擇 關注者類型

  • 若要永遠加入/移除相同的聯絡人,可選擇 指定關注者,然後從下拉式選單中選擇聯絡人。你可加入/移除多名聯絡人。

  • 若想動態加入/移除與記錄相關聯的聯絡人,可選擇 動態關注者。如有需要,可按一下佔位欄位名稱去修改 關注者欄位,並在顯示的清單中,選擇或搜尋所需的合作夥伴欄位。如有需要,按一下欄位名稱旁邊的 (右箭嘴) 可存取相關欄位。

Example

舉例,為使客戶時刻了解專案項目進度,當有專案任務設為 進行中 時,此自動化操作會將相關客戶加入為關注者。

專案任務設為進行中時,將客戶加入為關注者

執行程式碼

重要

若自動化規則需要執行 自訂程式碼,請注意, 標準自訂功能 定價計劃都不包括這些自訂程式碼的維護工作,並會產生 額外費用

此操作用於執行 Python 程式碼。 你可在 程式碼 分頁中,編寫你的自訂程式碼,並可使用以下變數:

  • env:觸發操作的環境

  • model:觸發操作所針對的記錄的模型,是空白的記錄集

  • record:觸發操作所針對的記錄,可以是空集

  • records:在多模式下觸發操作所針對的所有記錄的記錄集。此項可留空

  • timedatetimedateutiltimezone :有用的 Python 程式庫(時間、日期時間、日期公用程式、時區)

  • float_compare:公用程式函數,按指定精確度比較浮點數

  • log(message, level='info'):在 ir.logging 表格中,記錄除錯資訊的系統日誌寫入函數

  • _logger.info(message):在伺服器日誌中發佈訊息的系統日誌寫入工具

  • UserError:在面向使用者的警告訊息中,標示錯誤的異常類

  • Command:x2many 指令命名空間

  • action = {...}:傳回一項操作

小訣竅

程式碼幫助 分頁都有關於可用變數的說明。

傳送網絡鈎子(webhook)通知

此操作用於向 網址 欄位所指定的網絡鈎子網址(webhook URL)傳送包含所選 欄位 的值的 POST API 請求。

範例負載 可預覽請求所包括的數據樣本。預覽的數據會抽取自隨機記錄。若無可用記錄,會使用虛擬數據。

備註

你亦可設立自動化操作,在外部系統發生指明事件時, 利用網絡鈎子接收來自該外部系統的數據

多重操作

此操作用於同時觸發多個(連結至目前模型的)操作。

設定操作步驟:

  1. 將操作 類型 設為 多重操作,然後按一下 加入操作

  2. 加入:子操作 彈出視窗中:

    • 選取一項或多項現有操作,然後按一下 選擇;或

    • 按一下 新增,定義要執行的動作,然後按 儲存並關閉。如需繼續建立其他操作,可按一下 儲存及新增

  3. 按照實際需要,重複以上步驟。

設定需要執行的多重操作