瞭解 Shopify Flow 中的動作
在工作流程中,動作 是當工作流程條件達成時,Shopify Flow 會執行的任務。常見的動作包括為訂單或顧客新增標籤、寄送電子郵件或 Slack 通知、更新庫存、暫停出貨作業、取消訂單,以及建立訂單草稿。您也可以自動化您已安裝的第三方連接器 app 中的動作,例如將資料傳送至 Google Sheets、Klaviyo 或 ShipStation。
動作可以連接工作流程中的任何其他步驟,例如觸發條件、條件或其他動作。工作流程可以包含任意數量的動作,而每個步驟都能連接任意數量的動作以達成單一結果。舉例來說,當條件成立時,如果您希望工作流程同時執行 5 件事,就可以連接 5 個不同的動作步驟。
選擇工作流程的動作
工作流程中有許多不同的動作可供選擇,能協助完成任務。瞭解 Shopify Flow 能自動化哪些特定任務,有助於確保您的工作流程正確運作。
動作可分為以下幾類:
- 商店動作:此類動作會變更您的 Shopify 商店中的項目,例如新增標籤、更新庫存或取消訂單。
- 溝通動作:此類動作會透過您選擇的平台傳送可自訂的通知,例如寄送電子郵件給您或您的團隊、在 Slack 張貼訊息,或向顧客寄送行銷電子郵件。
- App 動作:此類動作會在已連線的 app 中執行任務。可用的選項取決於您的商店安裝了哪些 app connectors。並非所有 app 都有對應的 Shopify Flow 連接器。
- 進階動作:此類動作會修改工作流程的行為或資料,包含下列類型:
- Get data actions:此類動作會從您的商店擷取一份額外資料清單,這些資料並非工作流程觸發條件預設提供,供您的工作流程使用。此類動作會呼叫帶有一組篩選條件的查詢,例如取得過去一天內更新的商品資料清單。
- Aggregation actions:此類動作會對工作流程中的清單資料進行計算,例如 Count 或 Sum。
- For each loop (iterate) action:此動作可在迴圈中,對清單回傳的每個項目逐一執行任務。
- 傳送要求動作:這些動作用於透過 Shopify GraphQL Admin API 或 external APIs 傳送與接收資料。
- Wait action:這是一種特殊的動作,會暫停工作流程,直到經過一段設定的時間才會進行下一步。
在建立工作流程並決定如何實作動作時,請根據您希望自動化的任務,參考以下注意事項:
確認工作流程提供哪些資料
動作需要資料才能運作,而這些資料必須由觸發條件提供,或是在工作流程中加入 Get data action 取得。如果您選擇的動作沒有收到必要的資料,工作流程就不會執行,並會顯示錯誤訊息。舉例而言,以 Customer created 觸發條件起始的工作流程,會將顧客資料匯入工作流程。若此觸發條件後接著 Add order tags 動作,而該動作需要的是訂單資料而非顧客資料,則此工作流程會出現資料遺漏錯誤。
為何重要:這通常是自訂工作流程發生錯誤,或一開始就無法運作的常見原因。在定案您的工作流程之前,請先思考完成該任務的動作需要哪些資訊,並確保前面步驟匯入的資料集能提供這些資料。
確認工作流程中動作的時機
工作流程由一連串步驟組成。透過拖放畫布,您可以設計同時執行多個動作的工作流程,或安排動作依序進行。舉例來說,若符合條件 A,您可以讓工作流程同時執行動作 X 與 Y,或先執行動作 X,再執行動作 Y。當某些條件或動作必須在其他動作之後才進行時,這種安排就很重要。
當條件成立且下一步是動作時,系統通常會立即執行該動作。不過,您也可以使用 等待 動作來控制執行時間。這對於自動化顧客溝通的工作流程很實用,例如先等一天再向新顧客寄送行銷電子郵件。動作在工作流程中何時發生,由您自行決定。
為何重要:動作的時間點決定工作流程中的任務何時執行。將動作安排為同時或依序進行,可確保自動化任務以正確順序發生並符合您的需求。舉例來說,透過 等待 動作,您可以控制顧客通知或其他後續任務的時機,讓流程更貼合您的需求。
在動作中加入變數以回傳動態資料
您可以在動作步驟中使用變數,將動態資料插入自訂文字,例如顧客電子郵件。這些變數採用 與條件相同的 GraphQL Admin API 點記號表示法,並以雙大括號 {{ }} 包住。在動作中使用時,變數會作為佔位符,根據工作流程執行時提供的資料回傳該變數的特定值。
例如,在 寄送訂單發票 動作中,電子郵件的 主旨 欄位預設包含 order.name 變數,格式為「Invoice {{order.name}}」。這表示當電子郵件寄出時,最終郵件的主旨會顯示為「Invoice #1000」,或依該筆訂單此欄位的值顯示對應的訂單編號。
如適用,您可以按一下 新增變數,在該動作的欄位內搜尋可用的變數。如此一來,您即可根據該動作可用的變數,利用 Liquid 自訂各欄位的內容。您也可以在 Liquid 程式碼中加入條件判斷,藉由變數控制內容何時顯示。
例如,在同一個 寄送訂單發票 動作中,您可以在 自訂訊息 欄位加入以下內容。這些內容包含多個變數,會依工作流程提供的資料帶入動態值:
Hello {{order.customer.firstName}}! This is the invoice for order {{order.name}}, which you placed on {{order.createdAt}}.
{% if order.fullyPaid = 'false' %}
Please complete any outstanding payments in the next 5 business days.
{% endif %}