机器人会话状态代码片段
本帮助页面上的信息同时适用于 Studio 和 Desktop Studio。
此代码片段适用于具有 botSessionState 属性的操作,例如 Textbot Exchange 和 Voicebot Exchange(从这里开始,这两个操作都简称为 Exchange)。 必须正确配置 botSessionState 属性,您的虚拟坐席 代替现场人工坐席处理客户交互的软件应用程序。才能按预期工作。
该提供程序在对话开始时创建标识符,并将其传递给包含首个响应的脚本。 脚本会将标识符存储在
您的脚本不应写入此属性或其变量。 您的脚本必须正确
脚本设置
使用 Exchange 操作时,您的脚本中至少需要该操作的两个实例。 每个 Exchange 操作中的 botSessionState 属性必须以不同方式配置:
- Exchange 操作的第一个实例位于脚本开头的 Begin 操作之后。 按以下方式对其进行配置:
- botSessionState:该字段必须为空。
- botSessionStateVarName (out):使用您希望脚本存储标识符的变量名称进行配置。
- 第二个 Exchange 操作位于脚本的后面。 按以下方式对其进行配置:
- botSessionState:在 Exchange 操作的第一个实例中使用 botSessionStateVarName (out) 中使用的变量进行配置。 该变量必须包含 JSON 格式的机器人会话状态标识符。
- botSessionStateVarName (out):使用您希望脚本存储标识符的变量名称进行配置。
- Exchange 操作的第三个和任何后续实例都是可选的。 如果您的脚本包含这些实例,请按如下方式配置它们:
- botSessionState:使用 Exchange 操作的上一个实例中的 botSessionStateVarName (out) 中使用的变量进行配置。 该变量必须包含 JSON 格式的机器人会话状态标识符。 机器人会话状态标识符一般不会在回合之间发生变化。 但是,如果要更改,则应配置此操作以捕获更改。
- botSessionStateVarName (out):使用您希望脚本存储标识符的变量名称进行配置。
所有虚拟坐席都需要进行此配置。
验证 botSessionState 属性设置是否正确
您可以使用脚本跟踪来确认此属性设置是否正确。
- 对虚拟坐席与联系人之间的交互运行脚本跟踪。 您可以使用连续跟踪或捕获特定 ANI 或 DNIS 的跟踪(仅适用于语音交互)。
- 在跟踪窗口中,单击与第一个 Virtual Agent Hub 操作(Voicebot Exchange 或 Textbot Exchange)对应的行。
- 在变量列表中,选中 botSessionState 变量。 其值必须为 null(空)。
- 在跟踪窗口中,单击跟踪中第一个 Virtual Agent Hub 操作之后的下一行。
- 记下 botSessionState 变量的值。
- 在跟踪窗口中,单击跟踪中与任何后续 Virtual Agent Hub 操作对应的行。
- 检查变量 botSessionState 的值。 它必须与步骤 5 中的相同。
将机器人会话状态标识符转换为 JSON 格式
必须将 botSessionStateVarName (out) 属性中使用的变量内容转换为 JSON 格式,并将其传递到脚本中第二个 Exchange 操作的 botSessionState 属性中。 为此,您可以在 Snippet 操作中包含代码,也可以直接配置属性。 这两种方法都是可以接受的。 不过,在 Snippet 中创建一个变量来保存转换后的对象的好处是,可以更容易地看到转换在哪里进行。
使用 Snippet 操作
- 使用保存会话状态标识符的变量名称配置 Exchange 操作的 botSessionStateVarName (out) 属性。 例如,botSessionState。
-
在您的脚本中将以下行添加到位于 Exchange 操作之前的 Snippet 中:
ASSIGN botSessionStateOut = botSessionStateOut.asJSON()
使用您在脚本中使用的变量的名称。
- 使用 ASSIGN 语句中使用的变量的名称配置 Exchange 操作中的 botSessionState 属性。 例如,botSessionStateOut。
在属性中转换
如果在 botSessionState 属性中转换变量,则在 asJSON() 函数中使用 botSessionStateVarName (out) 变量。 例如:
- botSessionStateVarName (out):botSessionState
- botSessionState: botSessionState.asJSON()