在自定义操作中使用 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
  • 超时错误:timedout
  • 上限设置错误: 上限
  • 内部错误: 内部错误

如果返回的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