自動化規則

自動化規則用於根據使用者操作(例如:當欄位設定為特定值時套用修改)、電子郵件事件、時間條件(例如:上次更新後 7 天封存記錄)或外部事件,觸發自動變更。

若要使用 Studio 建立自動化規則,請依照以下步驟操作:

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

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

  3. 按一下 加入操作,然後選擇 操作類型,畫面會因應你所選的操作而顯示一些欄位,請填寫相關資訊。

  4. 按一下 儲存並關閉儲存及新增

Example

訂閱模型自動化操作範例

小訣竅

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

  • 你亦可按一下看板階段名稱旁邊的齒輪圖示(),然後選擇 自動化,從任何看板階段建立自動化規則。在這種情況下, 觸發 事件預設設為 階段設定為,但你可按需要修改。

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

觸發器

觸發 是用於定義何時套用自動化規則。可用的觸發會取決於 模型。系統共有五種觸發器類別:

小訣竅

你亦可定義一個 更新前範圍,以指定自動化規則觸發 之前 必須滿足的條件。相反,使用 額外條件套用至 篩選器定義的條件,會在自動化規則執行 期間 進行檢查。

若要定義 更新前範圍,請 啟動開發人員模式,建立或編輯自動化規則,然後按一下 編輯範圍,再按一下 新增規則

例如,若想在為先前沒有電郵地址的聯絡人設定電郵地址時(而不是修改其現有電郵地址),執行自動化操作,請將 更新前範圍 定義為 電郵未設定,並將 套用至 範圍定義為 電郵已設定

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

資料值更新

此類別中可用的觸發器取決於模型,並基於常見的欄位更改,例如新增特定標籤(例如,為任務加入標籤)或設定 使用者 欄位。選擇觸發事件,然後根據需要,選擇資料值。

資料值更新觸發器範例

電郵活動

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

時間條件

根據日期欄位觸發自動化操作。有以下觸發器可用:

  • 基於日期欄位:選擇 延遲 欄位旁邊的欄位。

  • 建立後:建立並儲存記錄時,觸發此操作。

  • 上次更新後:編輯現有記錄並儲存時,觸發此操作。

然後,你可進一步定義:

  • 延遲:設定分鐘、小時、天數或月份數目。若要在觸發日期之前觸發操作,請輸入負數數值。若選擇 基於日期欄位 觸發器,須同時選擇用於計算延遲時間的日期欄位。

  • 額外條件:按一下 加入條件,然後指定觸發自動化規則的條件。按一下 新增規則 以加入另一項條件。

到達延遲時間而且符合條件時,此操作便會觸發。

Example

若要在日曆事件開始之前 30 分鐘傳送提醒電郵,可在 觸發日期 下方選擇 開始(日曆事件),並將 延遲 設為 -30 分鐘

基於日期欄位觸發範例

備註

預設情況下,排程工具每 4 小時檢查一次觸發日期,意味未必能滿足更精細的自動化操作時間條件。

自訂

觸發自動化操作:

  • 儲存時:儲存記錄時;

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

  • 操作介面變更時:當 表單檢視畫面 中的欄位值發生變化時,即使在儲存記錄之前也可觸發操作。

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

警告

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

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

備註

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

外部

使用網絡鈎子(webhook)根據外部事件觸發自動化操作。網絡鈎子是一種在兩個系統之間進行通訊的方法,其中來源系統會根據特定事件,向目標系統發送 HTTP 或 HTTPS 請求。請求通常包含一個資料負載,其中包含有關所發生事件的資訊。

若要設定 網絡鈎子 觸發事件,請將 Odoo 產生的 網址 複製至目標系統(即:接收請求的系統)。然後,在 目標記錄 欄位中,輸入要執行的程式碼,定義需要使用自動化規則更新的記錄。

警告

網址必須視為 機密資料 ,若在網上或不謹慎地分享該網址,可能會令你的系統面臨惡意攻擊的風險。如有需要,請按一下 重設秘密密鑰 按鈕,更改網址的密鑰。

備註

  • 目標記錄 欄位中預設定義的程式碼,適用於來自其他 Odoo 資料庫的網絡鈎子。它用於根據負載所載的資訊,決定要更新哪些記錄。

  • 若想將網絡鈎子的內容,用於尋找記錄以外的其他目的(例如 建立 新的記錄),只能使用 執行程式碼 操作。在這種情況下, 目標記錄 欄位必須包含任何有效的程式碼,但其結果不會對自動化操作本身產生任何影響。

  • 網絡鈎子的內容,會在伺服器操作上下文中,以 payload (負載)變數的形式提供,即:包含傳入請求的 GET 參數或 POST JSON 正文的字典。

你亦可選擇 記錄呼叫 去記錄接收到的負載,舉例,用以確保來源系統傳送的資料,格式及內容符合要求。這也有助識別及診斷可能出現的任何問題。若要存取日誌,請按一下 自動化規則 表單頂部的 系統日誌 智慧按鈕。

應採取的行動

為自動化規則定義好 觸發事件 後,按一下 加入操作 ,以定義要執行的操作。

小訣竅

你可為同一個觸發事件/自動化規則,定義多個操作,這些操作會依照定義的順序執行。例如:若先定義了一個 更新記錄 操作,然後再定義一個 傳送電郵 操作,電子郵件會使用更新後的值。但是,如果 傳送電郵 操作是放在 更新記錄 操作之前,電子郵件會使用執行更新操作前已有的值。

更新記錄

此操作可更新記錄的其中一個(相關)欄位。按一下 更新 欄位,然後在開啟的清單中,選擇或搜尋需要更新的欄位。如有需要,可按一下欄位名稱旁邊的右箭嘴圖示,存取相關欄位清單。

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

Example

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

更新記錄操作範例

小訣竅

或者,你也可使用 Python 程式碼,動態設定記錄的欄位。要執行此操作,請選擇 計算 而非 更新,然後輸入用於計算欄位值的程式碼。例如,若想自動化規則在任務優先級別設為 時(透過為任務加上星號),計算自訂的 日期時間欄位,可將觸發器的 優先級別設為 定義為 ,並按以下步驟定義 更新記錄 操作:

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

建立活動

此操作用於將關聯至記錄的新增活動排程。選擇 活動類型,輸入 標題 及描述,然後在 期限尚餘 欄位設定活動預排時間,然後選擇 使用者類型

  • 若要永遠將活動指派給相同的使用者,請選擇 特定使用者,然後在 負責人 欄位中,新增相關使用者;

  • 若想動態指定與記錄相關聯的使用者,可選擇 動態使用者(基於記錄)。如有需要,可修改 使用者欄位

Example

當潛在客戶轉換為銷售機會後,自動化操作可以為負責該潛在客戶的使用者,自動安排通話。要執行此操作,請將 活動類型 設為 通話,並將 使用者類型 設為 動態使用者(基於記錄)

建立活動操作範例

傳送電子郵件及 SMS 短訊

這些操作用於向連結至特定記錄的聯絡人,傳送電子郵件或 SMS 文字訊息。要執行此操作,選取或建立 電郵範本短訊範本,然後在 傳送電郵為傳送短訊為 欄位中,選擇你想發送電子郵件或短訊的方式:

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

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

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

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

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

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

加入及移除關注者

這類操作可將現有聯絡人,訂閱為記錄的關注者,或取消訂閱(取消關注)。

建立記錄

此操作用於在任何模型上建立新的記錄。

要建立的記錄 欄位中,選擇所需的模型。預設情況下,該欄位會是目前的模型。為記錄命名一個 名稱,之後,如果要在另一個模型上建立記錄,請在 連結欄位 選擇一個欄位,以連結至觸發建立新記錄的原本記錄。

備註

連結欄位 相關聯的下拉式選單,只包含目前模型中已存在、並連結至目標模型的 多對一欄位一對多欄位

小訣竅

你可建立另一個包含 更新記錄 操作的自動化規則,以便在必要時為新增記錄更新欄位。例如,可使用 建立記錄 操作,建立新的專案任務,然後使用 更新記錄 操作,將其指派給指定使用者。

執行程式碼

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

  • env:觸發操作的環境

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

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

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

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

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

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

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

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

  • Command:x2many 指令命名空間

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

小訣竅

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

傳送網絡鈎子(webhook)通知

此操作可向 網址 欄位中指定的網址,傳送包含 欄位 值的 POST 請求。

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

執行現有動作

此操作用於同時觸發多個(與目前模型關聯的)操作。要執行此操作,請按一下 加入資料行,然後在 加入:子操作 彈出視窗中,選擇一個現有操作,或按 新增 建立新操作。