收集后,根据多个Twilio类型和自定义字段类型检查Twilio自动驾驶仪用户输入
我希望你身体健康。我试图检查Twilio函数中的用户输入,以查看autopilot针对多个字段类型的特定“collect”,其中一些字段类型是自定义的 例如,我首先询问用户的姓名,然后询问他们的电话号码。这些收集问题的集合类型为Twilio.FIRST_NAME和Twilio.PHONE_NUMBER。但是,用户可能会对这两个问题中的任何一个说“将我连接到某人”,这将导致失败,因为“将我连接到某人”不是姓名或电话号码。我希望能够以某种方式处理这样的情况,让我能够控制对话的流程,但也能够检测特定的短语并正确处理。在本例中,请将其连接到某人 以下是我的Twilio函数,它在启动任务后执行:收集后,根据多个Twilio类型和自定义字段类型检查Twilio自动驾驶仪用户输入,twilio,twilio-api,twilio-programmable-chat,twilio-functions,Twilio,Twilio Api,Twilio Programmable Chat,Twilio Functions,我希望你身体健康。我试图检查Twilio函数中的用户输入,以查看autopilot针对多个字段类型的特定“collect”,其中一些字段类型是自定义的 例如,我首先询问用户的姓名,然后询问他们的电话号码。这些收集问题的集合类型为Twilio.FIRST_NAME和Twilio.PHONE_NUMBER。但是,用户可能会对这两个问题中的任何一个说“将我连接到某人”,这将导致失败,因为“将我连接到某人”不是姓名或电话号码。我希望能够以某种方式处理这样的情况,让我能够控制对话的流程,但也能够检测特定的
exports.handler = function (context, event, callback) {
var responseObject;
responseObject ={
"actions": [
{
"collect": {
"name": "details",
"questions": [
{
"question": "May I get your first name?",
"name": "name",
"type": "Twilio.FIRST_NAME",
"validate": {
"on_failure": {
"messages": [
{
"say": "Sorry, that doesn't seem to be right, can you please try again?"
}
],
"repeat_question": true
},
"max_attempts": {
"redirect":{
"method": "POST",
"uri": "https://quartz-salamander-1024.twil.io/call-forwarding"
},
"num_attempts": 2
}
}
},
{
"question": "Can I get your contact number?",
"name": "phoneNumber",
"type": "Twilio.PHONE_NUMBER",
"validate": {
"on_failure": {
"messages": [
{
"say": "Sorry, that doesn't seem to be right, can you please try again?"
}
],
"repeat_question": true
},
"max_attempts": {
"redirect":{
"method": "POST",
"uri": "https://quartz-salamander-1024.twil.io/call-forwarding"
},
"num_attempts": 2
}
}
},
],
"on_complete": {
"redirect": {
"method": "POST",
"uri": "https://quartz-salamander-1024.twil.io/confirmation"
}
}
}
}
]
}
callback(null, responseObject);
}
我想为每个问题创建多个任务,但是我打算添加更多的问题,我必须收集他们的答案并以某种方式验证,通过引入多个任务,我失去了对对话流程的控制
谢谢我也遇到了类似的问题,我需要同时倾听是/否值和公司员工的姓名。我提出了一种解决方案,希望也能解决您的问题:
Get\u First\u name
(或任何您喜欢的名称)First\u Name
和Connect\u To\u Someone
First_Name
value字段中,添加一些与内置的Twilio.First_Name字段类型类似的同义词(例如,“John”、“Dave”、“我的名字是Bob”、“我是Joe”等)Connect_To_Someone
值字段,添加您希望触发事件的同义词(例如,“我想与某人通话”、“您能将我连接到人吗”等)Twilio.FIRST\u NAME
,请改用Get\u FIRST\u NAME
。您的Get\u First\u Name
字段现在将返回两个有效值之一:First\u Name
或Connect\u To\u Someone
我也有一个类似的问题,我需要同时倾听是/否值和我们公司员工的姓名。我提出了一种解决方案,希望也能解决您的问题:
Get\u First\u name
(或任何您喜欢的名称)First\u Name
和Connect\u To\u Someone
First_Name
value字段中,添加一些与内置的Twilio.First_Name字段类型类似的同义词(例如,“John”、“Dave”、“我的名字是Bob”、“我是Joe”等)Connect_To_Someone
值字段,添加您希望触发事件的同义词(例如,“我想与某人通话”、“您能将我连接到人吗”等)Twilio.FIRST\u NAME
,请改用Get\u FIRST\u NAME
。您的Get\u First\u Name
字段现在将返回两个有效值之一:First\u Name
或Connect\u To\u Someone
谢谢你的回复!这是一个有趣的解决方法,我不确定您是否打算在字段类型中包含第一个\u名称的短语并将\u连接到\u某人,因为我知道您是否在另一个字段类型中内置了其他字段类型?另一个问题是,你如何确定答案的类型是名字还是与某人的联系?您是否正在检查是否捕获了一个值?因此,同义词/短语就是在这里起作用的。当您在for中输入这些示例短语时,比如说Connect_To_Someone,而某人说了一个与该字段值相关的短语,那么您的Twilio内存将包含答案Connect_To_Someone。看看如何从记忆中得到答案。谢谢你的回复!这是一个有趣的解决方法,我不确定您是否打算在字段类型中包含第一个\u名称的短语并将\u连接到\u某人,因为我知道您是否在另一个字段类型中内置了其他字段类型?另一个问题是,你如何确定答案的类型是名字还是与某人的联系?您是否正在检查是否捕获了一个值?因此,同义词/短语就是在这里起作用的。当您输入这些示例短语时,我