自動化規則¶
自動化規則允許針對特定觸發行為,執行一個或多個預先設定的操作。例如:若某個欄位設為指定資料值時,自動建立活動,或在記錄最後一次更新 7 天後,自動封存。
建立自動化規則時,可以加入執行自動化規則前 必須滿足的條件,例如:商機必須分配給指定銷售人員,或記錄的狀態不可是 草稿。
若要使用 Odoo Studio 建立自動化規則:
開啟 Studio ,按一下 自動化,然後按 新增。
為自動化規則命名,提供一個清晰、有意義的名稱,以識別其用途。
選擇 觸發 。若畫面因應所選觸發器而顯示有欄位需要填寫,請填入相關資料。
在 待办操作 标签中点击 添加操作。
选择 类型 操作,并根据所选操作填写相关字段。
按一下 儲存並關閉 ,或按 儲存及新增 設定其他操作。
Example
舉例,若想確保能跟進滿意度較低的客戶,此自動化規則可在銷售單建立 3 個月後,為滿意度評分低於 30% 的客戶建立跟進活動。
觸發¶
觸發 是執行自動化規則所需的事件類型。可用的觸發事件會因應 模型 而有所不同。系統總共有五種觸發類別:
加入條件¶
你可使用範圍篩選器,決定自動化規則應該針對或排除哪些記錄。高效率的篩選,能避免對不受規則影響的記錄進行不必要的處理,從而提高整體效能。
小訣竅
建立自動化規則之前,請先 啟動開發人員模式,在加入範圍篩選器上可享最大靈活度。
視乎所選觸發,你可設定一項或多項條件,要求記錄在觸發 之前 及/或 之後 必須滿足。
範圍更新前 是指記錄在觸發 之前 必須滿足的條件。例如:記錄必須為
類型 = 客戶發票及狀態 = 已過賬。啟動開發人員模式後,按一下 編輯範圍 (若可用),然後按 新增規則。
套用至 範圍是設定觸發 之後 記錄必須滿足的條件。例如:客戶發票必須為
付款狀態 = 部份已付。啟動開發人員模式後,按一下 編輯範圍 ,然後按 新增規則。
小訣竅
如果未啟動開發人員模式但需要設定 套用至 範圍,請按一下 加入條件 ,然後填寫或刪除建議的條件。若要加入其他條件,請按 新增規則。
發生 觸發 事件時,例如已過賬客戶發票的付款狀態被更新,自動化規則會檢查所設定的條件,並在記錄符合這些條件時,自動執行 操作 。
Example
若想在個人但不是公司的現有聯絡人首次設定電郵地址(而不是修改已有的電郵地址)時執行自動操作,可將 更新前範圍 設為 電郵未設定 及 是公司未設定 ,並將 套用至 範圍設為 電郵已設定 。
備註
建立記錄時,不會檢查 更新前範圍 。
資料值更新¶
在資料庫發生指定變化時,觸發自動操作。可用的觸發會視乎模型而不同,並會基於常見的更改,例如加入特定標籤(譬如加入至任務中)或設置欄位值(譬如為 使用者 欄位設定一個值)。
選擇觸發事件,然後按需要,選擇適用的資料值。
電郵活動¶
接收或發送電子郵件時,觸發自動操作。
時間條件¶
在一個相對於日期欄位,或相對於記錄建立或更新時間的時間點,觸發自動操作。可使用以下觸發事件:
基于日期字段:在所选日期字段的日期*之前或之后*的一段指定时间内触发操作,例如,在合同结束日期之前 30 天。
建立後:在建立及儲存記錄一段設定時間之後觸發操作。
上次更新後:在編輯及儲存現有記錄一段設定時間之後觸發操作。
要配置 时间条件 触发器,并使用 启动开发模式:
从 时间条件 类别中选择适当的 触发器。如果选择 基于日期字段 触发器,请选择相关日期字段。
配置 延迟`时间,以确定操作的*执行日期时间*。要执行此操作,请输入应触发操作的 :guilabel:`分钟、 小时、 天 或 月。如果选择了 基于日期字段 触发方式,则可在所选日期字段的 之后 或 之前 触发操作。
(可选)为记录添加触发规则之前和 / 或之后必须满足的条件,请参考:添加条件。
点击 手动保存。
点击 计划的操作,打开 自动化规则:检查并执行 计划的操作。
備註
该计划动作会检查自上次运行以来已到达的执行时间点,并在符合条件时执行相关动作。此计划动作默认 :guilabel:`执行间隔`为 4 小时,该频率通常足以满足 “订单日期后 3 个月” 或 “最后更新后 7 天” 这类延迟需求。
如果任何自动化规则具有基于时间的触发器,且延迟时间小于相当于40小时的时间,例如,在事件开始日期时间前3小时,则计划的执行频率会自动增加,例如,增加到 每18分钟执行一次。这允许该操作更接近其计划的执行日期时间。
点击左上角的 手动运行。
警告
这一步对于防止在历史记录上追溯运行规则至关重要。手动运行计划的操作会初始化自动化规则中*上次运行*的时间戳,这是规则的 执行逻辑 的关键元素。
点击面包屑导航中的自动化规则名称,返回自动化规则配置页面。
添加 需要执行的动作,所有动作定义完成后,点击图标 手动保存。
当执行时间到达后,且满足触发条件时,该动作将在 :guilabel:`自动化规则:检查并执行`计划动作首次运行时触发。
执行逻辑¶
采用时间触发条件时,动作仅在以下场景执行:执行时间需落在计划动作上一次运行与本次运行的时间区间内(无论本次运行为定时触发或手动触发),即:
上一次运行 → 执行时间 → 本次运行
備註
手动运行 :guilabel:`自动化规则:检查并执行`计划动作,并不一定会触发该规则对应的动作。测试基于时间触发的自动化规则时,请先确保上述时间顺序成立,再检查动作是否已执行。
Example
10 月 15 日上午,您创建了一条自动化规则:要求在 合同结束日期 的前 30 天自动发送邮件;合同的到期时间统一为结束当日的晚上 11 点 59 分。在创建该规则期间,自动化规则:检查并执行 计划动作已于上午 11 点完成手动触发,且该计划动作的定时执行频率设为每 4 小时一次。
这条新规则*仅适用于*规则创建之日起至少 30 天后到期的合同,即合同结束日期需为 11 月 14 日及之后。
以一份 11 月 14 日到期的合同为例:该规则的执行时间为 10 月 15 日晚上 11 点 59 分。因此,动作会在该执行时间到达后,于 :guilabel:`自动化规则:检查并执行`计划动作的下一次运行时触发 ,具体时间线如下:
计划动作上一次运行时间:10 月 15 日晚上 11 点
规则执行时间:10 月 15 日晚上 11 点 59 分
计划动作本次运行时间:10 月 16 日凌晨 3 点
自訂¶
觸發自動化操作:
建立時:首次儲存記錄時。
建立及編輯時:記錄首次儲存及之後任何時間再次儲存時。
刪除時:記錄被刪除時。
操作介面變更時:當有欄位值在 表單檢視畫面 上更改時。此設定甚至適用於記錄儲存之前。
若選擇 建立或編輯時 及 操作介面變更時 兩種觸發事件,你 必須 隨後在 更新此項時 欄位中,選擇用於觸發自動化規則的對應欄位。
警告
若 更新此項時 欄位未有選擇任何欄位,該自動化操作可能會在每一項記錄上都執行多次。
你也可選擇在 套用至 欄位中,設定觸發自動化規則需要符合的其他條件。
備註
操作介面變更時 觸發事件只可與 執行程式碼 操作一起使用,並只會在手動修改時觸發。若欄位透過其他自動化規則更改,便不會觸發此操作。
外部¶
你可使用 網絡鈎子 (webhook),依據外部系統或應用程式的特定事件,觸發自動操作。
在 Odoo 配置網絡鈎子(該網絡鈎子的網址是由系統產生)並設定目標記錄後,還需要在外部系統中實施。
警告
我們 強烈建議 你在決定使用網絡鈎子前,以及在整個實施過程中,諮詢開發人員、解決方案架構師或其他技術人員。若配置不當,網絡鈎子可以擾亂 Odoo 資料庫,並需要一段時間才可修正和恢復。
備註
自動化操作亦可設置為當你的 Odoo 資料庫發生事件時, 向外部系統的網絡鈎子傳送數據 。
其他資料
動作¶
設定自動化規則的 觸發 後,在 執行操作 分頁中,按一下 加入操作 ,以定義需要執行的操作。
小訣竅
若未有輸入明確名稱,操作名稱會根據你所設定的操作自動產生。操作名稱可隨時更新。
你可以為同一項自動化規則,設定多項操作。預設情況下,操作會依照定義的順序執行。
即是說,假設你設定了一個 更新記錄 操作,然後再設定一個 傳送電郵 操作,而電郵地址是引用剛被更新的欄位,那麼電郵操作將會使用已更新的值。但是,如果 傳送電郵 操作是設定在 更新記錄 之前,電郵地址便會使用更新記錄 之前 已設置的值。
若要更改已定義的操作順序,請按一下操作旁邊的 (拖曳把手) 圖示,然後將其拖放至所需位置。
更新記錄¶
此操作用於更新記錄的其中一個(相關)欄位。有以下選項可用:
更新:使用指定值去更新所選欄位。
用 AI 更新:根據系統提供的 AI 人工智能提示,動態更新所選欄位。此選項須安裝 Odoo AI 應用程式。
序列:使用定義的序列去更新所選欄位。
計算:使用 Python 程式碼,動態更新所選欄位。
若要定義操作:
選擇 更新 、 用 AI 更新 、 序列 或 計算 選項後,請選擇或搜尋要更新或計算的欄位。如有需要,按一下欄位名稱旁邊的 (右箭嘴) ,以查看相關欄位清單。
根據所選選項,提供相關資料。
更新¶
選擇或輸入欄位的更新值。
若更新的是 多對多欄位,請選擇該欄位應該如何更新:可以是 加入 、 移除 或 設定為 所選值,或完全 清除 現有值。
Example
若想自動化操作從客戶記錄中移除某個標籤,請將 更新 欄位設為 客戶 > 標籤,選擇 移除 ,然後選擇要移除的標籤。
用 AI 更新¶
輸入提示,指示 Odoo AI 應如何更新欄位。鍵入 / (斜線)可開啟 AI 提示工具。你亦可利用 欄位選擇工具 ,告訴 Odoo AI 應檢查哪些相關欄位,並使用 記錄選擇工具 為該欄位提供可能的更新值。
Example
若想自動化規則根據員工的專長,為新建立的任務更新 受指派人 欄位,你可編寫一段提示,指示 Odoo AI 檢查任務的 顯示名稱 欄位,以了解任務背景,然後自動分配給最適合的員工。
序列¶
選擇現有序列,或按以下步驟建立新的序列:
按一下 搜尋更多,然後按 新增 。
在顯示的視窗中,輸入序列的 名稱。
在 序列 选项卡中,配置序列:
前缀:在序列中的下一个数字*之前*添加的字符。
后缀:在序列中下一个数字*后*添加的字符。
序列大小:决定序列中每个数字的位数。如有必要,会在数字前加上前导零,以达到指定的序列大小,例如,序列大小为
5`时,序列中的第一个数字为 `00001。步骤:确定序列中数字之间的增量。
下一个编号:序列中将使用的下一个数字,不包含前导零。
小訣竅
使用如
%(year)s或%(month)s之类的动态占位符作为 前缀 和/或 后缀,以创建包含当前年份、月份等元素的序列。可能的占位符显示在窗口底部。要使用子序列(例如,使序列每年或每月重新开始),请启用 按日期范围使用子序列,然后为每个日期范围 添加一行 并指明该范围的 下一个编号。
按一下 儲存。
Example
若想自動化操作在每次建立新的客戶記錄時,建立一個順序的客戶參考編號,可將 序列 欄位設為 參考,然後在下拉式選單中,按一下 搜尋更多。按一下 新增 以建立新的序列。
在此示例中,每位新客户会收到一个带有前缀 #-REF-%(year)s- 的顺序参考号,其中 %(year)s 是包含世纪的当前年份,后缀为 /CL。例如:#-REF-2025-00001/CL、#-REF-2025-00002/CL 等。
計算¶
輸入用以計算欄位值的程式碼。
建立記錄及複製記錄¶
此類操作是用於在任何模型上,建立新的記錄或複製現有記錄。
若要定義操作:
按照實際需要,將操作 類型 設為 建立記錄 或 複製記錄,然後在 需要建立的記錄 欄位中,選擇所需的模型。此欄位預設設為目前的模型。
設定記錄的 名稱。若為複製記錄操作,請在 複製來源 欄位中,設定需要複製的來源記錄。
若要在其他模型上建立新記錄,或將記錄複製至其他模型,請在 連結欄位 選擇相應欄位,以關聯至觸發操作的來源記錄。
Example
若想在商機狀態設為 已贏得 時,利用自動化規則複製專案項目(例如,包含預設任務的專案範本),可在 專案 模型中,加入一個自訂的 相關商機 多對一欄位,並在 潛在客戶 模型中,加入自訂的 相關專案 一對多欄位,然後提供有關複製記錄的以下資料:
小訣竅
如有需要,可建立包含 更新記錄 操作的另一項自動化規則,為新建立或複製的記錄更新欄位。舉例,可使用 建立記錄 操作,建立新的專案任務,然後使用 更新記錄 操作,將該任務指派給指定使用者。
建立活動¶
此操作用於將關聯至記錄的新增活動排程。
若要定義操作:
將操作 類型 設為 建立活動,並在下拉式選單中,選擇適當的 活動類型。
輸入 標題。
在 期限尚餘 欄位中,設定 天 、 星期 或 月份 數目,以設定活動應該完成的最後期限。
選擇 使用者類型:
若想永遠將活動分配給相同的使用者,可選擇 指定使用者,然後將該使用者加入至 負責人 欄位。
若想動態指定與記錄相關聯的使用者,可選擇 動態使用者(基於記錄)。如有需要,可按一下佔位欄位名稱去修改 使用者欄位,並在顯示的清單中,選擇或搜尋所需的使用者欄位。如有需要,按一下欄位名稱旁邊的 (右箭嘴) 可存取相關欄位。
你亦可加入 備註,以為該活動提供更多資訊。
Example
舉例,向預期收入較高的商機發送提案後,可建立一個致電潛在客戶的活動,指派給銷售團隊負責人,提高成交機會。
要執行此操作,請將 活動類型 設為 通話,並將 使用者類型 設為 動態使用者(基於記錄)。按一下佔位欄位,選擇 銷售團隊,然後按一下 (右箭嘴) 並選擇 團隊負責人。
傳送電子郵件及 SMS 短訊¶
此操作用於向關聯至特定記錄的聯絡人,傳送電子郵件或 SMS 文字訊息。
若要定義操作:
將操作 類型 設為 傳送電子郵件 或 傳送短訊,然後選取或建立 電郵範本 或 短訊範本。
在 傳送電子郵件為 或 傳送短訊為 欄位中,選擇傳送電子郵件或短訊的方式。
若選用電子郵件,可選擇:
電郵:以電子郵件形式,將訊息發送給 電郵範本 的收件人。
訊息:在記錄中發佈訊息,並通知該記錄的關注者。
備註:以內部備註形式發送訊息,內部使用者可在聊天欄看到。
若選用短訊,可選擇:
短訊(不加備註):以 SMS 文字訊息形式,將訊息傳送給 短訊範本 的收件人。
短訊(加入備註):以 SMS 文字訊息形式,將訊息傳送給 短訊範本 的收件人,並以內部備註形式,發佈至聊天欄。
只限備註:訊息只會作為內部備註發佈至聊天欄。
傳送 WhatsApp¶
重要
要自動化傳送 WhatsApp 訊息,須建立一個或多個 WhatsApp 範本。
此操作用於向關聯至特定記錄的聯絡人,傳送 WhatsApp 訊息。
將操作 類型 設為 傳送 WhatsApp,然後從下拉式選單中,選擇所需的 WhatsApp 範本。
加入及移除關注者¶
此操作用於為現有聯絡人,訂閱為記錄的關注者,或取消訂閱(取消關注)。
按實際需要,將操作 類型 設為 加入關注者 或 移除關注者,然後選擇 關注者類型:
若要永遠加入/移除相同的聯絡人,可選擇 指定關注者,然後從下拉式選單中選擇聯絡人。你可加入/移除多名聯絡人。
若想動態加入/移除與記錄相關聯的聯絡人,可選擇 動態關注者。如有需要,可按一下佔位欄位名稱去修改 關注者欄位,並在顯示的清單中,選擇或搜尋所需的合作夥伴欄位。如有需要,按一下欄位名稱旁邊的 (右箭嘴) 可存取相關欄位。
Example
舉例,為使客戶時刻了解專案項目進度,當有專案任務設為 進行中 時,此自動化操作會將相關客戶加入為關注者。
執行程式碼¶
此操作用於執行 Python 程式碼。 你可在 程式碼 分頁中,編寫你的自訂程式碼,並可使用以下變數:
env:觸發操作的環境model:觸發操作所針對的記錄的模型,是空白的記錄集record:觸發操作所針對的記錄,可以是空集records:在多模式下觸發操作所針對的所有記錄的記錄集。此項可留空time、datetime、dateutil、timezone:有用的 Python 程式庫(時間、日期時間、日期公用程式、時區)float_compare:公用程式函數,按指定精確度比較浮點數log(message, level='info'):在 ir.logging 表格中,記錄除錯資訊的系統日誌寫入函數_logger.info(message):在伺服器日誌中發佈訊息的系統日誌寫入工具UserError:在面向使用者的警告訊息中,標示錯誤的異常類Command:x2many 指令命名空間action = {...}:傳回一項操作
小訣竅
程式碼 及 幫助 分頁都有關於可用變數的說明。
其他資料
傳送網絡鈎子(webhook)通知¶
此操作用於向 網址 欄位所指定的網絡鈎子網址(webhook URL)傳送包含所選 欄位 的值的 POST API 請求。
範例負載 可預覽請求所包括的數據樣本。預覽的數據會抽取自隨機記錄。若無可用記錄,會使用虛擬數據。
備註
你亦可設立自動化操作,在外部系統發生指明事件時, 利用網絡鈎子接收來自該外部系統的數據。
多重操作¶
此操作用於同時觸發多個(連結至目前模型的)操作。
設定操作步驟:
將操作 類型 設為 多重操作,然後按一下 加入操作。
在 加入:子操作 彈出視窗中:
選取一項或多項現有操作,然後按一下 選擇;或
按一下 新增,定義要執行的動作,然後按 儲存並關閉。如需繼續建立其他操作,可按一下 儲存及新增。
按照實際需要,重複以上步驟。