同步響應
通常,Webhook 會立即回應呼叫方,而您的 Shopify Flow 工作流程則在背景中執行。若啟用「同步回應」,應用程式會保持呼叫方的 HTTP 請求處於開啟狀態,直到您的工作流程傳回資料後,才將該資料傳回。
當呼叫方需要的是答案,而非僅僅是確認時,這便派上用場 - - 例如顯示結果的表單、需要計算值的系統,或是資料查詢。
打開它
「進階設定」→「Webhook 的同步回應」。
建立工作流程
同步 Webhook 會觸發「同步 Webhook 觸發器」,而非標準的 Webhook 觸發器。該觸發器會攜帶一個額外欄位「invocationId」,用以識別正在等待回應的個別請求。
| 步驟 | 什麼 |
|---|---|
| 觸發器 | 同步 Webhook 觸發器 |
| 狀況 | Webhook ID 等於您的 Webhook 的 ID |
| 上一項操作 | Webhook 回傳回應 |
此動作涉及三個欄位:
| 領域 | 該放什麼進去 |
|---|---|
| 呼叫編號 | 請從觸發器中綁定 {{invocationId}}。若未綁定此參數,您的回覆將無法與等待中的呼叫者配對,並會被丟棄。 |
| 回應正文 | 來電者會收到什麼 - - 請參閱下文。 |
| 內容類型 | 可選。預設值為 application/json;若要使用純文字,請改用 text/plain。 |
撰寫回應內容
您可以直接在欄位中使用觸發器的變數來撰寫主體內容,這通常已足以滿足大多數工作流程的需求:
{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}
所有觸發器欄位皆可使用:{{fieldOne}} 至 {{fieldFour}}、{{rawBody}} 以及 {{webhookId}}。
凡是需要邏輯處理的任務 - - 例如查詢客戶資料、計算總額、整理較大的物件 - - 請在工作流程較早的階段使用「執行程式碼」動作,並將其結果綁定至此處。
當沒有得到回覆時
如果您的工作流程在 **15 **秒內未作出回應,呼叫方將收到標準回應 - - 這與非同步 webhook 所返回的 200 相同。這絕非錯誤,呼叫方也不會因此陷入懸而未決的狀態。該呼叫仍會顯示在「歷史紀錄」中,且工作流程仍可能完成;只是回應來得太晚而無法使用。
常見原因:
- 此工作流程尚未啟用。
- 它是基於標準的 Webhook 觸發器,而非同步觸發器所建置的。
- 某個分支已完成,但尚未到達「返回 Webhook 回應」階段。
- 該召喚 ID 尚未被綁定。
值得了解的事項
- **第一個回覆即勝出。**若兩個工作流程都回應了同一項請求,呼叫方將獲得 第一個;第二個則被捨棄。
- **重複的送件從不等待。**若請求被 重複送達防護 立即返回 - - 沒有任何工作流程會執行,因此 無話可答。
- 典型的往返時間為 2 至 4 秒,但 Shopify 並未針對 Shopify Flow。將同步回應視為「盡力而為」:實際上速度很快,且有 15 秒的 作為最後的保障措施。

