核心行为
StandardBot 核心行为是虚拟坐席执行的基本操作。CXone 以标准、一致的方式处理每个核心行为。在此页面上定义了 CXone 处理每个行为的方式。
所有虚拟坐席行为包括:
-
输入:输入由脚本传递给虚拟坐席。输入会触发虚拟坐席做出响应。输入有两种:
- 单词或短语:这些是来自人类用户的话语 联系人所说或输入的内容。。设置虚拟坐席的一部分是训练其识别触发特定行为和意图 联系人所说/输入内容背后的含义或目的;联系人想要沟通或完成的内容的单词。
- 自动意图:这些是脚本发送给虚拟坐席以触发特定行为的命令。虚拟坐席被配置为通过遵循其配置中的特定意图来响应自动意图。例如,脚本会识别情况(联系人开始新的聊天)并将自动意图发送给虚拟坐席以触发一个意图(欢迎意图),从而开始新的交互。要使用自动意图:
- 必须编写脚本来识别情况并向虚拟坐席发送命令。
- 必须将虚拟坐席配置为通过遵循已配置的特定意图来响应命令。
- 来自虚拟坐席的响应:从虚拟坐席发送到 Studio 脚本的所有数据都被视为响应的一部分。响应的关键部分是:
- 脚本传递给联系人的语句或问题。
- 脚本使用的其他数据,例如意图和要采用的下一个脚本分支。
StandardBot 测试中的行为配置
在 StandardBot 测试脚本中,每个行为都有一个默认配置。该配置定义:
- 来自触发虚拟坐席响应的脚本的输入。
- 确定虚拟坐席是否通过测试的标准。
默认配置按原样工作,无需进行更改。如果出于任何原因您需要修改它,例如当您的 CXone 客户代表 指示时,您可以这样做。在进行更改前先备份脚本。此外,请务必仔细检查脚本,以确保必须更改的所有信息在显示它们的所有位置都得到了更改。如果对默认输入触发器或通过标准进行了任何更改,则还必须对您正在测试的虚拟坐席中的测试相关配置进行更改。
欢迎意图
行为定义:虚拟坐席会按照配置发送欢迎信息,以响应新会话。
此行为适用于
下表描述了欢迎意图的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天) |
开始聊天会话的任何消息。 |
人工输入(语音) |
取决于如何将虚拟坐席集成到电话服务系统或 IVR 菜单中。 例如,如果使用虚拟坐席对打给客户服务的电话进行分类,则呼叫者可能会拨打主要公司电话号码。该脚本会将欢迎意图发送给虚拟坐席,虚拟坐席可提供一系列选项供呼叫者选择。 |
触发 |
欢迎自动意图。只要您的脚本和虚拟坐席被配置为使用相同的触发器,这可以是任何值,例如 AutoWelcome 或 WelcomeIntent。用于传递自动意图的变量取决于您。没有标准或必需的变量。 当发生预期的人工输入时,脚本会将变量发送给虚拟坐席。这在什么情况下发生取决于您脚本的设置方式。 |
虚拟坐席响应 |
在虚拟坐席提供程序的配置面板中配置的欢迎消息或意图。 例如,欢迎意图可以是问候语(“您好。今天我们能为您做点什么?”), 或联系说明(“请输入您的姓名。”)。 预期结果分支:PromptAndCollectNextResponse |
StandardBot 测试
“欢迎意图”是 StandardBot 测试 1。
“欢迎意图”测试作为学习和示例工具很有用,但在测试生产环境时可能没有用。根据您使用的虚拟坐席提供程序,欢迎意图可能会以不同的方式进行处理。例如,某些虚拟坐席可能会随机向联系人显示多条欢迎意图消息。或者,它们可能只有一个欢迎意图选项,因此,如果您测试生产虚拟坐席,则此测试将触发欢迎意图的实时版本。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成使用以下短语响应欢迎自动意图输入: 注意:如果您正在测试只有一个欢迎意图选项的实时虚拟坐席,请跳过此配置。不要修改面向客户的欢迎消息。 |
在脚本中运行测试的变量输入 |
In the TestData object in the Config test data snippet: AutoIntent="Welcome" UserInput="" CustomPayload="" TestName="StandardBotWelcome - Get Hello World from Automated Welcome" |
输入手动运行测试 |
在 虚拟坐席中心 中虚拟坐席“属性”页面的“测试”窗格中,单击更多选项 。从菜单中选择触发自定义意图事件,然后输入 欢迎。 |
虚拟坐席通过条件 |
虚拟坐席根据其配置以预期的欢迎意图进行响应。 StandardBot 脚本中的默认通过标准是:
|
报告中的默认测试标签 |
Test1 |
机器人交换
行为定义:虚拟坐席以适当的回复来响应联系人输入。
此行为适用于
下表描述了联系人与虚拟坐席之间典型交换的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
任何,在发送自动欢迎意图后。 |
触发 |
联系人的话语 联系人所说或输入的内容。。每次联系人通过聊天窗口发送消息时,话语的内容都会在 UserInput 变量中发送: UserInput="[来自联系人的任何消息或问题]" |
虚拟坐席响应 |
根据联系人的话语做出的适当响应。响应必须在 预期结果分支:PromptAndCollectNextResponse |
StandardBot 测试
“机器人交换”是 StandardBot 测试 2。
目前,该测试仅针对文本虚拟坐席。对于语音虚拟坐席来说,它依赖于语音输入。用于在文本虚拟坐席中触发测试的无意义单词不适用于语音虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成使用以下内容响应 debugStandardBotExchange 输入:
|
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput="debugStandardBotExchange" CustomPayload="" TestName="StandardBotExchange - Get Bot Response from Human Input" |
输入手动运行测试 |
对于基于文本的虚拟坐席,请输入 debugStandardBotExchange 在 虚拟坐席中心 中虚拟坐席“属性”页面“测试”窗格中的输入一个信息字段中。您还可以在与运行虚拟坐席所在的渠道关联的聊天窗口中输入此触发词,例如您网站上的 数字 实时聊天窗口。 |
虚拟坐席通过条件 |
该脚本解析虚拟坐席的响应。StandardBot 脚本中的默认通过标准是:
|
报告中的默认测试标签 |
Test2 |
用户输入不理解
行为定义:当虚拟坐席不理解联系人的输入时,会做出适当的响应。
此行为适用于
下表描述了“用户输入不理解”行为。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
在发送自动欢迎意图后发送的未训练虚拟坐席识别的任何文本。 |
触发 |
联系人的话语 联系人所说或输入的内容。,当该话语与虚拟坐席经训练可识别的任何内容不匹配时。 每次联系人通过聊天窗口发送消息时,话语的内容都会在 UserInput 变量中发送: UserInput="[来自联系人的任何消息或问题]" |
虚拟坐席响应 |
虚拟坐席使用 UserInputNotUnderstood 意图进行响应:intentInfo.intent = userInputNotUnderstood 意图和 预期结果分支 PromptAndCollectNextResponse |
StandardBot 测试
“用户输入不理解”是 StandardBot 测试 5。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成使用 UserInputNotUnderstood 意图和 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput="[any nonsense word or phrase]" CustomPayload="" TestName="StandardBotUserInputNotUnderstood - Get a user not understood message for nonsense text" |
输入手动运行测试 |
输入 Gobblygook在 虚拟坐席中心 中虚拟坐席“属性”页面“测试”窗格中的输入一个信息字段中。您还可以在与运行虚拟坐席所在的渠道关联的聊天窗口中输入此触发词,例如您网站上的 数字 实时聊天窗口。 |
虚拟坐席通过条件 |
该脚本解析虚拟坐席的响应。默认通过标准为: IF (BotIntent= "userinputnotunderstood") && BotDiagnostics.contains('userinputnotunderstood') |
报告中的默认测试标签 |
Test5 |
用户输入超时
行为定义:当虚拟坐席从脚本接收到 UserInputTimeout 自动意图时,会做出适当的响应。当脚本检测到联系人响应时间过长时,就会出现这种情况。
例如,如果您的脚本使用 ASKCALLER 操作来提示联系人,则超时长度将来自该操作的 TimeoutSec 属性。然后该操作采用 OnTimeout 分支。这会触发脚本将
此行为适用于
下表描述了用户输入超时行为的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
无。要触发超时,联系人在超时配置的时间内不能输入或说出任何内容。时间长度是可配置的,其取决于影响交互的特定超时。 |
触发 |
AutoIntent = "UserInputTimeout" 当联系人未在聊天窗口中输入任何文本,并且经过足够的时间来触发脚本中基于脚本的超时时,脚本会将该意图发送给虚拟坐席。 |
虚拟坐席响应 |
虚拟坐席使用 预期结果分支:PromptAndCollectNextResponse |
StandardBot 测试
“用户输入超时”为 StandardBot 测试 6。
此测试仅验证脚本是否可以触发超时。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成通过返回 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent=" UserInput="" CustomPayload="" TestName="StandardBotUserInputTimeout - Get a user input timeout message for when an Askcaller action hits the Timeout Branch" |
输入手动运行测试 |
在 虚拟坐席中心 中虚拟坐席“属性”页面的“测试”窗格中,单击更多选项 。从菜单中选择触发自定义意图事件,然后输入 StandardBotUserInputTimeout。 |
虚拟坐席通过条件 |
该脚本解析虚拟坐席的响应。默认通过标准为: IF (BotIntent = "userinputtimeout") && BotDiagnostics.contains('userinputtimeout') |
报告中的默认测试标签 |
Test6 |
将自定义有效负载发送到脚本
行为定义:虚拟坐席可以将自定义有效负载传递到 CXone 中的 Studio 脚本。有效负载无意传递给联系人。 这可用于将虚拟坐席收集的数据传递回脚本,以供以后使用。例如,您可以将数据存储在 CRM 管理联系人、销售信息、支持详细信息和案例历史记录等事项的第三方系统。 中,或者在 坐席应用程序 中显示它们。
从虚拟坐席发送的自定义有效负载的 JSON 结构应类似于以下示例:
{
"scriptPayloads": [
{
"metadata": "for your script",
"nestedobject": {
"integervalue": "4",
"stringvalue": "foo"
},
"nestedarray": [
"1",
"2",
"3",
"4"
]
}
]
}
此行为适用于
下表描述了将自定义有效负载发送到脚本的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
不同。 |
触发 |
不同。 定义输入触发器以及您想要与此行为关联的意图。将虚拟坐席配置成发送它,以及将脚本配置成接收它并根据它进行操作。 例如,您可能希望虚拟坐席在从联系人那里收集帐户详细信息后发送的下一个响应中包含这些信息。在这种情况下,您可以将响应配置为包含具有已收集数据的自定义有效负载。 |
虚拟坐席响应 |
虚拟坐席按照本部分开头描述的结构在 customPayload 对象中发送自定义有效负载数据。 预期结果分支:PromptAndCollectNextResponse |
StandardBot 测试
“将自定义有效负载发送到脚本”是 StandardBot 测试 7。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成将自定义有效负载发送到脚本以响应 debugStandardBotScriptPayload 用户输入。自定义有效负载必须包含以下键值对:
|
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput="debugStandardBotScriptPayload" CustomPayload="" TestName="StandardBotScriptPayload - Get a custom payload back from the bot" |
输入手动运行测试 |
无。无法手动触发该测试。 |
虚拟坐席通过条件 |
该脚本解析虚拟坐席的响应并将其保存到三个变量中:transcriptString、transcriptString2、transcriptString3。默认通过标准为: IF transcriptString.contains('metadata":"for your script') && transcriptString2.contains('integervalue":"4') && transcriptString3.contains('1","2","3","4') |
报告中的默认测试标签 |
Test7 |
将自定义有效负载发送到虚拟坐席
行为定义:该脚本可以将自定义有效负载从 CXone 发送到虚拟坐席提供程序。虚拟坐席可以解析有效负载并做出响应。
必须在 customPayload 对象中发送自定义有效负载。自定义有效负载可包含您需要发送的任何内容。CXone 对于其必须包含的内容没有要求。您的虚拟坐席可能对自定义有效负载的格式、结构和内容有要求。
此行为适用于
下表描述了将自定义有效负载发送到虚拟坐席的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
任何,在发送自动欢迎意图后。 |
触发 |
不同。将您的脚本配置成在必要时在发送给虚拟坐席的请求中的 customPayload 对象中包含自定义有效负载。遵循虚拟坐席提供程序的任何要求。 |
虚拟坐席响应 |
预期结果分支:PromptAndCollectNextResponse |
StandardBot 测试
“将自定义有效负载发送到虚拟坐席”是 StandardBot 测试 8。
构建为此测试发送的默认自定义有效负载是为了测试将自定义有效负载数据发送到虚拟坐席的三种方法。一些虚拟坐席可能仅对其中一种方法做出响应,但其他虚拟坐席可能使用多种方法。您可以检查脚本跟踪中 customPayload 变量的内容,以了解您的虚拟坐席使用哪种方法。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成解析自定义有效负载的内容,并返回这些内容以作为下一个提示响应,从而响应用户输入 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput=" CustomPayload=customInputToBotJson TestName="StandardBotExchangeCustomInput - Send a custom payload to the bot and have it returned" 在 StandardBot 脚本中,customInputToBotJson 是一个动态数据对象,默认情况下该对象是使用为进行测试而解析的值进行配置的。 |
输入手动运行测试 |
输入 |
虚拟坐席通过条件 |
虚拟坐席解析自定义有效负载,并返回其内容以作为下一个提示响应。默认通过标准是: IF nextprompt.contains('passing json to bot method') |
报告中的默认测试标签 |
Test8 |
自动意图
行为定义:当虚拟坐席从脚本接收到自动化意图时,可以做出适当的响应。适当的应答各不相同,其将因每个自动意图而异。
此行为适用于
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
不同。 |
触发 |
在脚本中使用变量将自动意图发送给虚拟坐席。 |
虚拟坐席响应 |
不同,具体取决于自动意图。 预期结果分支:不同。 |
StandardBot 测试
“自动意图”是 StandardBot 测试 9。
此测试需要对 StandardBot 脚本进行一些自定义。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将您的虚拟坐席配置成响应您要测试的自动意图。您还需要在 StandardBot 脚本中修改测试 9 的输入和通过标准。 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="StandardBotExchange" UserInput="" CustomPayload="" TestName="StandardBotAutomatedIntent - Get Bot Response from an automated intent" |
输入手动运行测试 |
在 虚拟坐席中心 中虚拟坐席“属性”页面的“测试”窗格中,单击更多选项 。从菜单中选择触发自定义意图事件,然后输入 StandardBotExchangeCustomInput。 |
虚拟坐席通过条件 |
虚拟坐席按照配置进行响应。确切的响应取决于测试的自动意图。
|
报告中的默认测试标签 |
Test9 |
分支覆盖
行为定义:虚拟坐席可以在适当的时候对分支或意图做出覆盖响应。此测试使用机器人发送到脚本的自定义有效负载中指定的响应分支或意图覆盖 虚拟坐席中心 中的响应分支或意图。
并非所有虚拟坐席都需要这种行为。如果您的虚拟坐席在未执行特定操作的情况下对发送正确分支(例如升级或结束对话)进行处理,则您可以从脚本中省略此操作。
您必须将虚拟坐席配置成发送包含分支或意图覆盖的自定义有效负载。您可以在提供程序的控制台中执行此操作。有效负载必须包含以下示例中显示的 JSON。
{
"contentType": "ExchangeResultOverride",
"content": {
vahExchangeResultBranch": "ReturnControlToScript",
"intent": "OverrideIntent"
}
}
如果您只使用这些选项中的一个,则不必测试同时覆盖结果分支和意图。省略
此行为适用于
下表描述了触发分支覆盖的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
不同。 |
触发 |
从虚拟坐席发送到包含分支或意图覆盖的脚本的自定义有效负载,如先前示例中所示。必须将您的脚本配置成解析这些值并根据它们进行操作。 |
虚拟坐席响应 |
不同,具体取决于被覆盖的分支或意图。 预期结果分支:不同。 |
StandardBot 测试
“分支覆盖”是 StandardBot 测试 10。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将虚拟坐席配置成将响应中发送的意图更改为“覆盖意图”并将控制权返回给脚本,从而响应 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput="debugStandardBotBranchOverride" CustomPayload="" TestName="StandardBotAutomatedIntent - Get Bot Response from an automated intent" |
输入手动运行测试 |
在 虚拟坐席中心 中虚拟坐席“属性”页面“测试”窗格中的输入一个信息字段中输入 |
虚拟坐席通过条件 |
虚拟坐席将 overrideIntent 作为意图并将 ReturnControlToScript 作为下一个分支进行响应。
|
报告中的默认测试标签 |
Test10 |
结束对话
行为定义:虚拟坐席可以适当地向脚本发出对话已完成的信号,而无需升级为真人坐席。
此行为适用于
下表描述了触发对话结束的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
不同。联系人表示他们已完成对话。 |
触发 |
不同。将您的虚拟坐席配置成识别对话已完成的迹象。在您的脚本中,对于结束对话和升级您应有不同的路径。 |
虚拟坐席响应 |
虚拟坐席将控制权返回给脚本。 预期结果分支:ReturnControlToScript |
StandardBot 测试
“结束对话”是 StandardBot 测试 11。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将虚拟坐席配置成将响应中发送的意图更改为“覆盖意图”并将下一个分支更改为 ReturnControlToScript,从而响应 debugStandardBotEndConversation 用户输入。 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput="debugStandardBotEndConversation" CustomPayload="" TestName="StandardBotEndConversation - Get end conversation result back from bot" |
输入手动运行测试 |
在 虚拟坐席中心 中虚拟坐席“属性”页面“测试”窗格中的输入一个信息字段中输入 debugStandardBotEndConversation。 |
虚拟坐席通过条件 |
虚拟坐席响应 ReturnControlToScript 以作为下一个分支。
|
报告中的默认测试标签 |
Test11 |
升级
行为定义:虚拟坐席可以在适当的时候通过向脚本发出信号,告知联系人需要与真人坐席通话,从而将交互升级。
此行为适用于
下表描述了触发升级的工作方式。
Event | 详细信息 |
---|---|
人工输入(聊天和语音) |
不同。该联系人表示他们希望被转接至真人坐席。 |
触发 |
不同。将您的虚拟坐席配置成识别需要将对话转接至真人坐席的迹象。在您的脚本中,对于结束对话和升级您应有不同的路径。 |
虚拟坐席响应 |
虚拟坐席将控制权返回给脚本。 预期结果分支:ReturnControlToScript |
StandardBot 测试
“升级”是 StandardBot 测试 12。
此测试针对语音和文本虚拟坐席。
Event | 详细信息 |
---|---|
配置虚拟坐席进行测试 |
将虚拟坐席配置成将响应中发送的意图更改为“覆盖意图”并将下一个分支更改为 ReturnControlToScript,从而响应 debugStandardBotEscalation 用户输入。 |
在脚本中运行测试的变量输入 |
在 Config test data 代码片段的 TestData 对象中: AutoIntent="" UserInput="debugStandardBotEscalation" CustomPayload="" TestName="StandardBotEscalation - Get escalation message back from the bot" |
输入手动运行测试 |
在 虚拟坐席中心 中虚拟坐席“属性”页面“测试”窗格中的输入一个信息字段中输入 debugStandardBotEscalation。 |
虚拟坐席通过条件 |
虚拟坐席将 escalat 作为意图进行响应,并将控制权返回给脚本。默认通过标准为: IF BotIntent.contains('escalt') && BotDiagnostics.contains('returncontroltoscript') 注意:将 escalat 作为通过标准可使脚本捕获以这些字符开头的任何意图名称。这样便无需检查是否有多个变体,例如 escalate、escalation 或 escalating。这可使测试脚本与任何虚拟坐席提供程序一起使用。 |
报告中的默认测试标签 |
Test12 |