在自訂動作中使用 API 呼叫回應 custom-action-enhancements

您可以在自訂動作中運用API呼叫回應,並根據這些回應協調您的歷程。

重要備註 custom-action-enhancements-notes

  • 回應承載支援純量陣列:

    code language-none
    "dummyScalarArray": [
    "val1",
    "val2"
    ]
    
  • 回應承載中不支援異質陣列:

    code language-none
    "dummyRandomArray": [
    20,
    "aafw",
    false
    ]
    

設定自訂動作 config-response

  1. 建立自訂動作。 請參見此頁面

  2. 在​ 回應 ​欄位內按一下。

    {width="80%"}

  3. 貼上呼叫傳回之裝載的範例。 驗證欄位型別是否正確(字串、整數等)。 以下是呼叫期間擷取的回應裝載範例。 我們的本機端點會傳送熟客點數和設定檔的狀態。

    code language-none
    {
    "customerID" : "xY12hye",
    "status":"gold",
    "points": 1290 }
    

    {width="80%"}

    每次呼叫API時,系統都會擷取裝載範例中包含的所有欄位。

  4. 我們也將customerID新增為查詢引數。

    {width="80%"}

  5. 按一下​ 儲存

在歷程中善用回應 response-in-journey

只需將自訂動作新增至歷程即可。 然後,您可以在條件、其他動作和訊息個人化中運用回應裝載欄位。

例如,您可以新增條件以檢查熟客點數。 當人員進入餐廳時,您的本機端點會傳送包含設定檔忠誠度資訊的呼叫。 如果設定檔為黃金客戶,則可傳送推播。 如果在呼叫中偵測到錯誤,請傳送自訂動作以通知您的系統管理員。

  1. 新增您的事件和先前建立的熟客方案自訂動作。

  2. 在忠誠度自訂動作中,將客戶ID查詢引數對應至設定檔ID。 核取選項​ 在逾時或錯誤的情況下新增替代路徑

  3. 在第一個分支中,新增條件並使用進階編輯器在​ Context ​節點下運用動作回應欄位。

  4. 然後新增推播,並使用回應欄位個人化您的訊息。 在範例中,我們使用忠誠度點數和客戶狀態來個人化內容。 動作回應欄位位於​ 內容屬性 > Journey Orchestration > 動作 ​下。

    note note
    NOTE
    每個輸入自訂動作的設定檔都會觸發呼叫。 即使回應一律相同,歷程仍會為每個設定檔執行一個呼叫。
  5. 在逾時和錯誤分支中,新增條件並利用內建的​ jo_status_code ​欄位。 在我們的範例中,我們使用
    http_400 ​錯誤型別。 請參閱本節

    code language-none
    @action{ActionLoyalty.jo_status_code} == "http_400"
    

  6. 新增將傳送給您的組織的自訂動作。

測試模式記錄 test-mode-logs

您可以透過測試模式存取與自訂動作回應相關的狀態記錄。 如果您已在歷程中定義具有回應的自訂動作,您將會在這些記錄上看到​ actionsHistory ​區段,其中顯示外部端點傳回的裝載(作為該自訂動作的回應)。 這在偵錯方面可能非常有用。

錯誤狀態 error-status

jo_status_code ​欄位一律可用,即使未定義任何回應裝載。

以下是此欄位可能的值:

  • http狀態代碼: http_<HTTP API call returned code>,適用於執行個體http_200或http_400
  • 逾時錯誤: 逾時
  • 上限設定錯誤: 上限
  • 內部錯誤: 內部錯誤

當傳回的http程式碼大於2xx或發生錯誤時,會將動作呼叫視為錯誤。 在這種情況下,歷程會流向專用逾時或錯誤分支。

WARNING
只有新建立的自訂動作才會包含立即可用的​ jo_status_code ​欄位。 如果您想要將其用於現有的自訂動作,則需要更新動作。 例如,您可以更新說明並儲存。

運算式語法 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"
)}
)

其他資源

如需詳細資訊,請參閱以下頁面:

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76