同步響應

通常,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 秒的 作為最後的保障措施。