热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Twilio与聊天机器人的对话

我想知道如何将 twilio 对话 api 与自动驾驶仪聊天机器人一起使用。所以用户开始和bot聊天,在回答了bot的一些问题后,用户就交给真正的agent继续和他们聊天。我已经使用 twilio 对

我想知道如何将 twilio 对话 api 与自动驾驶仪聊天机器人一起使用。所以用户开始和bot聊天,在回答了bot的一些问题后,用户就交给真正的agent继续和他们聊天。我已经使用 twilio 对话 api 和使用自动驾驶仪的聊天机器人进行了对话。现在我想知道如何整合它们。

回答

Twilio 开发人员布道者在这里。

Twilio Autopilot 没有对话作为支持的频道,只有可编程的聊天。对于大多数这些用例,我建议使用 Autopilot + Studio + Flex——然后你可以构建任何东西!

以下解决方法来自 Twilio 支持工程师 Adam Taylor:


  1. 要在 Autopilot 会话结束后创建 Autopilot Studio Flow(即在没有 的情况下命中任务listen),您可以handoff转到另一个小部件。您可以在 Autopilot 的内存中添加“sendToAgent”指示器,然后使用“基于拆分”小部件来检查该指示器,仅在适当时进行移交。

    那么一个示例 Autopilot Goodbye Task 可能看起来像

{
"actions": [
{
"say": "Great. Please reach out again if you have any questions. I'm sending you to an agent to finish up."
},
{
"remember": {
"sendToAgent": true
}
}
]
}


  1. 在Studio 控制台中查找您的 Studio 流程 SID

  2. 要使用对话,请确保您拥有适用于您的函数的更新版本的 Twilio!

  3. 那么你的函数的 JS 代码可能看起来像

exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const cOnversationSid= event.ConversationSid;
client.conversations
.conversations(conversationSid)
.webhooks.create({
"configuration.flowSid": "FWxxxxxxxxxxxxxxxx", //update your flow sid here
"configuration.replayAfter": 0,
target: "studio"
})
.then(webhook => {
let respOnseObject= { "conversationSid": conversationSid, "webhookSid": webhook.sid };
callback(null, responseObject);
})
.catch(err => {
callback(error);
});
};


  1. 将该函数 URL 粘贴到此处以将 Conversations Webhook 配置为 Conversations的 Post-Event URL。选择“onConversationAdded”作为此 url 将接收的 Post-Webhook。


  2. 通过确保在此处为您的帐户启用“使用对话处理入站消息”消息传递功能来配置 SMS对话。


  3. 在此处为您的 Autopilot Studio Flow 创建消息服务,以将您的 Autopilot 机器人的电话号码与此消息服务相关联。


  4. 更新集成设置,以便在消息到达此电话号码时创建新对话


  5. 创建一个函数以从对话中删除 Studio。创建一个包含如下代码的函数:


exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const cOnversationSid= event.ConversationSid;
const webhookSid = event.WebhookSid;
client.conversations
.conversations(conversationSid)
.webhooks(webhookSid)
.remove()
.then(()=> {
let respOnseObject= { "conversationSid": conversationSid, "webhookSid": webhookSid };
callback(null, responseObject);
})
.catch(err => {
callback(error);
});
};

和另一个将参与者添加到对话的功能

exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const cOnversationSid= event.ConversationSid;
const handoffTo = event.HandoffTo;
client.conversations
.conversations(conversationSid)
.participants
.create({
'messagingBinding.address': handoffTo, // the phone number or whatsapp address you want to handoff messaging conversation to
'messagingBinding.proxyAddress': '+14156632326' // the phone number attached to your messaging service
})
.then(participant => {
let respOnseObject= { "participantSid": participant.sid, "conversationSid": conversationSid };
callback(null, responseObject);
})
.catch(err => {
callback(error);
});
};

最后,添加 Studio Widgets 来运行这些函数并完成 Handoff。

第一个小部件是 RunFunction - removeStudioWebhook

函数参数包括ConversationSid: {{trigger.message.ConversationSid}}WebhookSid: {{trigger.message.WebhookSid}}

第二个小部件是 RunFunction - addToConversation

函数参数包括ConversationSid:{{trigger.message.ConversationSid}}WebhookSid: +15555551212 (the number you want to handoff to)

第三个发送消息

小部件配置:

MessageBody: Customer {{contact.channel.address}} is connected with Agent Adam. (replace with your Agent Name)

Send Message To: +15555551213 (replace with the number you want to handoff to).

Conversations API 描述说“基本自动响应和聊天机器人功能”作为一些自动化功能“这意味着您可以在 Conversations API 的帮助下构建自己的聊天机器人。

让我知道这是否有帮助!






推荐阅读
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • React项目中运用React技巧解决实际问题的总结
    本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
author-avatar
懒羊羊2502880053
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有