有时,我们希望我们的机器人提供一些用户没有明确要求的额外信息,如特别优惠、促销等。在 Teneo 中,可以使用提示触发器来实现这一点。
在正常流执行之后,在给出响应之前,将测试提示触发器。如果提示触发器匹配,将执行包含此触发器的流,并将生成的输出添加到响应中。在下面的示例中,自动程序答案的第一部分来自”用户想要订购咖啡”流,而第二个突出显示的部分来自具有提示触发器的流:
用户:我能买个大马基亚托吗?
机器人:好的,一个大的macchiato将在5分钟内准备好取件。
现在是饼干小时!你会得到一个免费的饼干,以配合你的咖啡。
在此页面上,我们将创建一个简单的流程,并提示触发器,为客户购买的每杯咖啡推广免费 Cookie。我们将分两个步骤完成此工作:
- 我们将使用提示触发器创建流,该触发器将始终触发并对其进行测试。
- 然后,我们将进一步限制提示触发器,以便它每天只工作从 16:00 到 17:00,最后测试它。
这就是最终流的外观:
使用提示触发器创建流
继续创建新流并命名它: Cookie hour campaign
.
添加提示触发器
首先,我们将添加和设置提示触发器,然后我们将删除使用流创建的默认触发器:
- 单击在功能区中添加”提示触发器”。
- 命名提示触发器
Cookie hour
。 - 选择提示触发器并
true
添加到表达式字段。 - 确保提示触发器设置为可重复 – “每次会话一次”(默认情况下将选择它)
- 删除默认触发器。
请注意,提示触发器不会针对用户输入进行测试,而是针对编程条件进行测试。在本例中,我们将此条件设置为”true”,以便触发器始终触发为输出节点命名 It is cookie hour
,然后保存流。
测试流
继续尝试中测试提示触发器:
- 转到”试用”窗口
- 重新启动会话
Hello there!
在”试用”窗口中键入
答案文本来自两个不同的流。使用问候语的回答的第一部分由对话资源中的流给出。但是,在向用户返回响应之前,Teneo 始终评估是否有提示触发器,应考虑这些触发器,以便向响应添加其他信息。在这里,我们的”Cookiehour 活动”流的提示触发就是这种情况,该流的输出将附在答案中。
您可能已经注意到,如果您现在在 Hello there
“试用”窗口中再次键入,您会看到它这次不会将有关”Cookie 小时活动”的信息添加到响应中。这是因为我们在创建提示触发器时选择了”每个会话可重复一次”。
进一步限制提示触发器
目前,”Cookie 小时”触发器的表达式设置为”true”。这意味着”Cookie 小时”触发器将始终触发,每次会话一次。在下面,我们将确保”Cookie 一小时”仅在 16:00 到 17:00 之间触发。
为了确保流仅在 16:00 到 17:00 之间触发,我们必须执行以下操作:
- 在编辑模式下打开”Cookie 小时活动”流。
- 选择提示触发器
- 将 true 替换为:
// get the hour of the day def currentHour = java.time.LocalDateTime.now().getHour()
// is it cookie hour? (currentHour == 16)
提示触发器现在仅在 16:00 到 17:00 之间工作
与常规触发器一样,也会命令提示触发器。但是请注意,常规触发器和提示触发器的顺序在 Teneo 中单独管理。提示触发器始终在常规触发器后进行测试。
保存和测试您的流
就是这样!现在,您可以继续保存您的流并对其进行测试。请记住,如果时间是在16:00之前和17:00之后,它不应该提示你这是饼干小时现在!你会得到一个免费的饼干,以配合你的咖啡。
16:00前和17:00后:
用户:我能买个大马基亚托吗?
机器人:好的,一个大的macchiato将在5分钟内准备好取件
现在是饼干小时!你会得到一个免费的饼干,以配合你的咖啡。
在此示例中,我们使用服务器时间(即 UTC)(因此结果可能因您所在的位置而异)。