在自訂動作中使用 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"
)}
)

在原生管道中使用自訂動作回應 response-in-channels

您可以使用Handlebars語法,從原生管道(例如電子郵件、推播或簡訊)的自訂動作回應中反複處理巢狀陣列。 當您需要使用外部系統的動態資料個人化訊息內容時,這會很有用。

例如,如果您的自訂動作從外部系統傳回以下回應:

{
    "id": "84632848268632",
    "responses": [
        { "productIDs": [1111,2222,3333] },
        { "productIDs": [4444,5555,6666] },
        { "productIDs": [7777,8888,9999] }
    ]
}

您可以在原生通道(例如電子郵件中的執行個體)中,反複執行responses陣列和巢狀productIDs陣列,如下所示:

{{#each context.journey.actions.<yourcustomaction>.responses as |res|}}

  {{#each res.productIDs as |productID|}}
    <li>{{productID}}</li>
  {{/each}}

{{/each}}

以歷程中設定的自訂動作實際名稱取代<yourcustomaction>

其他資源

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

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