将Payload Value应用于聊天机器人
有效载荷值让您为每个按钮分配一个独特的值。如果您想知道或记录用户在聊天机器人流程中选择了哪个按钮,这就特别有用。
通过保存有效载荷值,你也可以把它应用到聊天机器人流程的其他部分。在应用有效载荷值时,将使用以下对象。
- this.member.botMeta.tempData
- this.messageEvent.data.payload.payload
- this.messageEvent.data.payload.value
更多的对象引用,请参考参考文献。
预期结果
下面的聊天机器人对话只是一个例子,用于说明**支付价值的应用。请随意利用这些对象/代码,因为你认为合适。
- 用户回答一个调查问题(分数是5)。
Payload Value Sample Flow
- 用户答案在成员标签和分析之后的**响应中被重复使用。
Member Tagging & Analytics with Payload Value
示例树结构
Payload Value Sample Tree Structure
动手试试看
点击这里,创建你的树形节点。
###创建第一个树形节点--调查问题
- 创建第1个树节点,并将其重命名为 "调查问题**"。
Response Object with Payload Value
- 为调查问题创建一个快速答复(如果你愿意,你可以选择带有付费按钮的其他答复类型)。然后前往 "高级"下的 "**响应对象",并应用以下示例代码格式。
{
"type": "QUICK_REPLIES",
"quickReplies": [
{
"id": "HzpoWVKa",
"content_type": "text",
"title": "1",
"payload": {
"payload": "TEMP_RESULT",
"value": "1"
}
},
{
"id": "DKo8lI9d",
"content_type": "text",
"title": "2",
"payload": {
"payload": "TEMP_RESULT",
"value": "2"
}
},
{
"id": "EMtZb2P8",
"content_type": "text",
"title": "3",
"payload": {
"payload": "TEMP_RESULT",
"value": "3"
}
},
{
"id": "ALFY2WtR",
"content_type": "text",
"title": "4",
"payload": {
"payload": "TEMP_RESULT",
"value": "4"
}
},
{
"id": "jWqgikj1",
"content_type": "text",
"title": "5",
"payload": {
"payload": "TEMP_RESULT",
"value": "5"
}
}
],
"text": "Rate your experience 1-5"
}
上述格式允许你在有效载荷中添加一个值。
- 保存这个树节点。
创建第2个树节点 - 保存调查答案
- 添加第个树节点,并将其重命名为 "保存调查答案**"。
payload.payload Trigger
- 为匹配payload.payload创建以下触发器。
条件1:有效载荷类型。
this.messageEvent.type === "PAYLOAD"
条件2:TEMP_RESULT。
this.messageEvent.data.payload.payload === "TEMP_RESULT"
上述payload.payload格式允许节点被任何特定的payload与值所触发。
Save Payload Value to tempData
- 创建一个动作来保存有效载荷,代码示例如下。
return new Promise((resolve) => {
this.member.botMeta.tempData.score = this.lodash.get(this.messageEvent,"data.payload.value")
resolve({
member: this.member
})
})
上面的示例代码将messageEvent的payload.value作为tempData保存在成员对象中,这样保存的数据可以在其他节点中重复使用。
- 如果你想在你的聊天机器人响应中显示保存的payload.value,你可以在 "响应对象"上应用以下代码示例。
Response Object with payload value
{
"type": "TEXT",
"text": "Your score is {{botMeta.tempData.score}}"
}
由于payload.value被保存在member对象的tempData中,上述格式允许Stella从member中获取数据并在响应中显示。你可以在响应中使用{{}}而不是this.member。
Advanced Member Tagging & Analytics with Payload Value
- 你也可以将this.member.botMeta.tempData.score应用于会员标签和分析。请参考下面的示例代码。
return new Promise((resolve) => {
resolve({
tags: [`Score:${this.member.botMeta.tempData.score}`]
})
})
return new Promise((resolve) => {
resolve({
category: "tempData Sample",
action: "Survey",
label: `Score: ${this.member.botMeta.tempData.score}`
})
})
对于会员标签,如果你设置在字段(即Score)和变量(即this.member.botMeta.tempData.score)之间添加一个":",该变量将成为动态的。这意味着当用户回答不同的分数(如4分)时,会员标签将被更新(如Score:4)。
- 检查并看看你是否能产生与预期结果相似的结果。