在自訂動作中使用 API 呼叫回應 custom-action-enhancements
您可以在自訂動作中運用API呼叫回應,並根據這些回應協調您的歷程。
重要備註 custom-action-enhancements-notes
-
回應承載支援純量陣列:
code language-none "dummyScalarArray": [ "val1", "val2" ]
-
回應承載中不支援異質陣列:
code language-none "dummyRandomArray": [ 20, "aafw", false ]
設定自訂動作 config-response
-
建立自訂動作。 請參見此頁面。
-
在 回應 欄位內按一下。
{width="80%"}
-
貼上呼叫傳回之裝載的範例。 驗證欄位型別是否正確(字串、整數等)。 以下是呼叫期間擷取的回應裝載範例。 我們的本機端點會傳送熟客點數和設定檔的狀態。
code language-none { "customerID" : "xY12hye", "status":"gold", "points": 1290 }
{width="80%"}
每次呼叫API時,系統都會擷取裝載範例中包含的所有欄位。
-
我們也將customerID新增為查詢引數。
{width="80%"}
-
按一下 儲存。
在歷程中善用回應 response-in-journey
只需將自訂動作新增至歷程即可。 然後,您可以在條件、其他動作和訊息個人化中運用回應裝載欄位。
例如,您可以新增條件以檢查熟客點數。 當人員進入餐廳時,您的本機端點會傳送包含設定檔忠誠度資訊的呼叫。 如果設定檔為黃金客戶,則可傳送推播。 如果在呼叫中偵測到錯誤,請傳送自訂動作以通知您的系統管理員。
-
新增您的事件和先前建立的熟客方案自訂動作。
-
在忠誠度自訂動作中,將客戶ID查詢引數對應至設定檔ID。 核取選項 在逾時或錯誤的情況下新增替代路徑。
-
在第一個分支中,新增條件並使用進階編輯器在 Context 節點下運用動作回應欄位。
-
然後新增推播,並使用回應欄位個人化您的訊息。 在範例中,我們使用忠誠度點數和客戶狀態來個人化內容。 動作回應欄位位於 內容屬性 > Journey Orchestration > 動作 下。
note note NOTE 每個輸入自訂動作的設定檔都會觸發呼叫。 即使回應一律相同,歷程仍會為每個設定檔執行一個呼叫。 -
在逾時和錯誤分支中,新增條件並利用內建的 jo_status_code 欄位。 在我們的範例中,我們使用
http_400 錯誤型別。 請參閱本節。code language-none @action{ActionLoyalty.jo_status_code} == "http_400"
-
新增將傳送給您的組織的自訂動作。
測試模式記錄 test-mode-logs
您可以透過測試模式存取與自訂動作回應相關的狀態記錄。 如果您已在歷程中定義具有回應的自訂動作,您將會在這些記錄上看到 actionsHistory 區段,其中顯示外部端點傳回的裝載(作為該自訂動作的回應)。 這在偵錯方面可能非常有用。
錯誤狀態 error-status
jo_status_code 欄位一律可用,即使未定義任何回應裝載。
以下是此欄位可能的值:
- http狀態代碼: http_
<HTTP API call returned code>
,適用於執行個體http_200或http_400 - 逾時錯誤: 逾時
- 上限設定錯誤: 上限
- 內部錯誤: 內部錯誤
當傳回的http程式碼大於2xx或發生錯誤時,會將動作呼叫視為錯誤。 在這種情況下,歷程會流向專用逾時或錯誤分支。
運算式語法 exp-syntax
語法如下:
#@action{myAction.myField}
以下是一些範例:
// action response field
@action{<action name>.<path to the field>}
@action{ActionLoyalty.status}
// action response field
@action{<action name>.<path to the field>, defaultValue: <default value expression>}
@action{ActionLoyalty.points, defaultValue: 0}
@action{ActionLoyalty.points, defaultValue: @event{myEvent.newPoints}}
在自訂動作回應中操控集合時,您可以仰賴currentActionField
存取目前專案:
count(
@action{MyAction.MyCollection.all(
currentActionField.description == "abc"
)}
)
其他資源
如需詳細資訊,請參閱以下頁面: