机器人会话状态代码片段

本帮助页面上的信息同时适用于 StudioDesktop Studio

此代码片段适用于具有 botSessionState 属性的操作,例如 Textbot ExchangeVoicebot Exchange(从这里开始,这两个操作都简称为 Exchange)。 必须正确配置 botSessionState 属性,您的虚拟坐席关闭 代替现场人工坐席处理客户交互的软件应用程序。才能按预期工作。

botSessionState 属性必须配置有保存联系人与虚拟坐席之间对话的唯一标识符的变量。 它由虚拟坐席提供程序自动分配。 该标识符可防止对话的每个回合中都创建新会话,并可帮助虚拟坐席保持回合之间的上下文。

该提供程序在对话开始时创建标识符,并将其传递给包含首个响应的脚本。 脚本会将标识符存储在 Exchange 操作botSessionStateVarName (out) 属性中命名的变量中。 最后,脚本将标识符从上一回合的 botSessionStateVarName (out) 属性传递到 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 属性设置是否正确

您可以使用脚本跟踪来确认此属性设置是否正确。

  1. 对虚拟坐席与联系人之间的交互运行脚本跟踪。 您可以使用连续跟踪或捕获特定 ANI 或 DNIS 的跟踪(仅适用于语音交互)。
  2. 在跟踪窗口中,单击与第一个 Virtual Agent Hub 操作(Voicebot Exchange Textbot Exchange)对应的行。
  3. 在变量列表中,选中 botSessionState 变量。 其值必须为 null(空)。
  4. 在跟踪窗口中,单击跟踪中第一个 Virtual Agent Hub 操作之后的下一行。
  5. 记下 botSessionState 变量的值。
  6. 在跟踪窗口中,单击跟踪中与任何后续 Virtual Agent Hub 操作对应的行。
  7. 检查变量 botSessionState 的值。 它必须与步骤 5 中的相同。

将机器人会话状态标识符转换为 JSON 格式

必须将 botSessionStateVarName (out) 属性中使用的变量内容转换为 JSON 格式,并将其传递到脚本中第二个 Exchange 操作的 botSessionState 属性中。 为此,您可以在 Snippet 操作中包含代码,也可以直接配置属性。 这两种方法都是可以接受的。 不过,在 Snippet 中创建一个变量来保存转换后的对象的好处是,可以更容易地看到转换在哪里进行。

使用 Snippet 操作

  1. 使用保存会话状态标识符的变量名称配置 Exchange 操作的 botSessionStateVarName (out) 属性。 例如,botSessionState
  2. 在您的脚本中将以下行添加到位于 Exchange 操作之前的 Snippet 中:

    ASSIGN botSessionStateOut = botSessionStateOut.asJSON()

    使用您在脚本中使用的变量的名称。

  3. 使用 ASSIGN 语句中使用的变量的名称配置 Exchange 操作中的 botSessionState 属性。 例如,botSessionStateOut

在属性中转换

如果在 botSessionState 属性中转换变量,则在 asJSON() 函数中使用 botSessionStateVarName (out) 变量。 例如:

  • botSessionStateVarName (out)botSessionState
  • botSessionState: botSessionState.asJSON()