全渠道客服中心聊天机器人实战

本文要点

  • 客服中心的渠道多种多样,而且数量一直在增长。
  • 企业需要支持所有这些渠道,可以自己开发服务,也可以向CPaaS供应商购买服务,或者集成已有的服务。
  • 自研发需要大量持续的投入,而集成已有服务灵活性不足,CPaaS供应商的服务则位于二者之间。
  • 借助Twilio Studio可以构建出全方位的客服体验。

现如今,人们通过消息应用程序在社交网络上进行互动。这也促使企业开始重新思考他们与客户之间的沟通方式,尽量为客户提供最为便捷的互动方式。消息供应商已经注意到了这一点,他们使用机器人来改进和自动化企业与客户之间的互动体验。

这一切要从在网站上增加聊天部件开始。顾客在浏览网站时可以通过这些部件与客服中心的代理机器人展开互动,从而获得即时的协助。不管是现在,还是未来,我们与客服中心之间的互动将会从电话呼叫变成在线富文本聊天的形式。

全渠道客服的崛起

过去的客服流程很简单,要么拿起电话直接打给他们,要么在他们的网站上提问题。后来开始使用短消息,再后来聊天机器人出现了。而现在,基于文本的沟通渠道似乎越来越多。最基本的就是使用短消息,企业与客户之间通过短消息进行互动(也叫作A2P,即Application to Person),这种互动是双向的,但仍然存在不足,因为短消息能够表达的信息量太有限。

然后是聊天部件,网站通过交互性的聊天部件跟踪用户在网站上的活动。

后来智能手机出现了,于是互动的焦点转移到了移动应用上。如果用户在应用上登录并留下浏览历史,那么应用就可以利用这些数据。这些应用有时候会直接与客服中心发起通信,类似网站上的聊天部件。

随着移动应用的流行,有很多消息应用提供了业务API,比如Facebook Messenger、LINE、微信、Skype、Telegram、Viber、Kik、Cisco Spark和Slack。

在面对这么多可选择的API时,企业需要问自己一个问题:“如何让客户与自己更好地进行互动?”

为了给客户提供最高效的互动体验,企业需要实现所有可能的互动渠道。

以下是几种可选择的全渠道解决方案:

  1. 自研发——自己开发和维护代码,如果某种新的渠道变得越来越流行,就要在消息平台中增入新的渠道。
  2. 使用CPaaS——CPaaS(Communication Platform as a Service)供应商已经在他们的消息平台上提供了全渠道服务,所以可以直接向他们购买,不需要自己开发。
  3. 集成已有的服务——如果使用了基于云服务的系统,那么你所使用的客户中心可能已经提供了这些功能。

使用Twilio Studio

我热爱开发工作,不过最近几年因为转向了产品管理,所以没有怎么做开发。不过这并不阻碍我继续做一些POC。对于一个喜欢在编程方面捣鼓小玩意的人来说,CPaaS最具吸引力,它在灵活性和时效性方面提供了最好的平衡。从长期来看,通过自开发服务来支持多渠道是一项很繁琐的工作,而集成已有服务缺乏可定制性和灵活性,因为它们提供的服务都是千篇一律的。

Twilio不久前刚刚发布了Twilio Studio,我觉得刚好可以用它来做POC。

场景

我有自己的博客,叫作BlogGeek.me。我也有一个Facebook主页,但很少用。我会花很多时间创建邮件组,如果我能够在博客上加入全渠道功能,就可以让更多人看到我创建的内容。

为了实现这个功能,我决定采取如下方式:

  1. 通过Facebook或短消息来回复别人发过来的消息。
  2. 通过用户之前使用过的通道给他们发送内容。

我想先快速把原型构建起来,后面再进行优化调整,很多开发者也都会这样做。

搭建服务

首先,我们要进行账号配置。在获得Twilio Studio账号并启动Studio之后,就可以开始创建Flow了。在Twilio Studio里,Flow就是指如何处理交互。在这里,我把我的Flow叫作BlogGeek.me。

空的Flow看起来是这样的:

Incoming Message表示输入消息,Incoming Call会关联我的电话号码,REST API用于处理其他操作。

我想接收短消息和Facebook消息,所以需要做出一些配置。我使用Twilio的应用市场Channels Catalog来安装Facebook Channel。在安装好之后,输入我的Facebook账号,就可以在Facebook上看到我的BlogGeek.me页面。

最后,在Twilio Studio的FLOW URL中设置Facebook Channel的CALLBACK URL。

保存用户首选项

Twilio Studio目前不支持保存用户首选项,所以我们需要把这些信息保存在其他地方。我决定把输入消息和原始消息保存在Google Sheet上。我把联系过我的人保存在Google Sheet中,这样在以后就可以给他们发送通知。要在Twilio Studio中获取Google Sheet的内容,可以使用Zapier。Zapier是一个非常好的服务集成工具。

我们创建了一个Zap:

接下来,我们基于Zapier的Webhooks创建一个触发器App。选择“Catch Hook”:

下一步要在Twilio Studio中创建一个HTTP REQUEST部件,一旦Twilio Studio接收到一个输入请求消息,它就可以用这个部件向Zapier Webhook发送消息。

我们可以在Zapier中看到这个Webhook:

在Twilio Studio中,我们会创建一个新的HTTP REQUEST部件,并将其连接到Incoming Message,这样它就可以向Webhook的URL发送POST消息。

下面是我的配置信息,我把这个部件叫做“Zap it”。

我把Webhook的URL黏贴到HTTP REQUEST部件的REQUEST URL输入框中。

现在,我要计算这个Webhook的字段值。我在面板底部的HTTP PARAMETERS中添加了两个字段“body”和“from”:

用户的地址(短消息或Facebook)和他们发送的消息就会被转发给Zapier。

在“body”字段中,我填的是{{trigger.message.Body}},“from”字段填的是{{trigger.message.From}}。

在进入下一步之前,需要对当前的App进行测试,也就是说,我要在我的Facebook主页发送一条消息。

接下来,我们要把从Zapier收到的消息放进Google Sheet里。我创建了一个Google Sheet,头部包含Date、From和Message三个字段。这个是示例文件。在Zapier里,选择Create Spreadsheet Row:

在连接到Google Docs账号之后,可以对其进行配置:

在选择Spreadsheet和Worksheet后,Zapier会自动添加Google Sheet中的三个字段(Date、From和Message)。

在Date一栏输入“Zap Meta Human Now”就会得到当前的日期和时间。

在From一栏选择“From”字段。

在Message一栏选择“Body”字段。

这样一来,如果有人在你的Facebook主页上发消息,就会在Google Sheet中看到这些消息。

我在这里没有做消息除重,如果有必要可以在后面再添加除重过滤器。目前我只想把所有消息都保存在Google Sheet中。如果在以后想要让这个聊天机器人变得更智能,或许可以用到这些数据。

回复消息

到目前为止,我们创建了一个工作流,可以通过短消息或Facebook来接收消息。

  1. 我们创建了一个Twilio Studio Flow。
  2. 对创建的Flow进行了配置,让它从Facebook接收消息。
  3. 在Zapier中创建了一个Zap,用于连接Twilio Studio Flow和Google Sheet。

接下来,我们要向消息发送者回复消息。我在Twilio Studio中创建了一个新的Send Message部件:

这里需要注意:

  • 我在MESSAGE BODY中设置了一条非常简单的消息:非常感谢,如果有什么有趣的事情,我会让您知道的。
  • 我没有把另一个用于处理失败流程的Flow列在这里,因为没有必要。不过这也是我喜欢Twilio Studio的地方,因为它让我们有机会纠正Flow中可能出现的错误。
  • 差不多了,至少可以回复用户的消息了。

主动发消息

在收集了一些用户信息之后,你可能想要主动向这些用户发送消息。这个可以在Twilio Studio中通过调用REST来实现。

我把REST API连接到一个新的Send Message部件:

在配置消息时,我将{{flow.data.body}}作为消息的内容,可以在以后添加其他内容。这是新部件的配置信息:

现在用于发送消息的Flow也设置好了,我打算使用curl来测试它:

curl -X POST \
 https://preview.twilio.com/Studio/Flows/<MY-FLOW>/Engagements \
 -u '<MY-SID>:<MY-AUTH-TOKEN>' \
 -H 'cache-control: no-cache' \
 -H 'content-type: application/x-www-form-urlencoded' \
 -d ‘From=<FROM-ID>&To=<TO-ID>&Parameters={"body":"<MY-MESSAGE>"}'

要在你们自己的网站中运行这个示例,需要修改一些参数,下面的图片显示了每个需要修改的地方。

MY-FLOW:使用Twilio Studio编辑页面的URL。

MY-SID和MY-AUTH-TOKEN:API LIVE秘钥,可以在这个链接中找到:

FROM-ID:消息的来源。对于我来说,它就是Facebook主页的ID。这个可以通过打开Marketplace的Channels菜单来获得,选择已经安装好的Facebook Messenger,把主页ID拷贝出来。

我的FROM-ID就是“messenger:99XXXXXXXXXXX36”。

TO-ID:我使用了之前创建的Google Sheet地址。

MY-MESSAGE:这个就是你想发送给用户的消息内容。

把全部连起来

我们使用Twilio Studio创建了一个通过短消息和Facebook与用户进行全方位交互的应用。

  1. 我们创建了一个Flow,可以接收短消息和Facebook消息。
  2. 我们将这些消息保存到Google Sheet里,并使用Zapier来处理这些消息。
  3. 回复每一条消息。
  4. 主动发送消息给Google Sheet里保存的那些用户,后续或许可以通过curl命令来进行自动化。

完整的Flow是这样的:

这里缺少了错误检测和额外的功能,如消息过滤和自定义回复,不过这些都可以在后续进行改进。

下面是通过一个朋友的Facebook Messenger账号发送消息的示例:

结论

在这篇文章里,我们示范了如何使用Twilio Studio创建一个简单的全方位消息机器人。开发人员可以基于这个示例创建出双向的交互应用。

原文发布于微信公众号 - IT技术精选文摘(ITHK01)

原文发表时间:2018-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

荔枝FM架构师刘耀华:异地多活IDC机房架构

声明:本文首发于CSDN,禁止未经许可的任何形式转载,可咨询文末的责编。 多机房架构存在的原因 ? 单机房一旦死机,断电、维护根本无法挽回整个数据,想离线读取等...

4256
来自专栏大数据文摘

爬虫还在用Python?我与Node.js不得不说的故事

3.2K4
来自专栏数据和云

静默错误:为什么看了那么多灾难,还是过不好备份这一关?

可是毕竟广告好不好,还要看疗效,9个9的可靠性,你也永远无法论证你不是那 0.00000001%。

2641
来自专栏开源项目

【码云周刊第 9 期】前方高能,Discuz 官方携神秘干货归来!

每周为您推送最有价值的开源技术内参! 一周热门资讯回顾 1、GitLab 8.17 发布,社区版也支持 GitLab Pages 了 ? GitLab 8.17...

3306
来自专栏ytkah

微信 5.3 for iPhone已放出 微信iphone版更新下载

  就在几个小时前,微信发布了更新,本次只放出微信 5.3 for iPhone,距离发布微信5.3内测版也就几天时间。和往常一样微信iphone版先发布,微信...

5946
来自专栏机器人网

收藏:自动化工程师教你如何完整做好一个项目

我们学PLC有时候是为了做项目,做项目需要做些什么步骤呢,学习什么知识点,看看老工程师怎么告诉你…… 一.做一个PLC项目的大体流程如下 ❶、熟悉好现场环境和...

2796
来自专栏养码场

平庸开发者的生存指南

我个人认识一些非常有才华的开发人员,他们可以一帆风顺地创建极好的软件。正是这些天赋人士,使得外行人对我们这个行业充满了很高的期望。但我要说的一个可悲的事实是:并...

1022
来自专栏魏艾斯博客www.vpsss.net

DNS 解析和 CDN 加速的区别与联系

9904
来自专栏FreeBuf

揭秘:充电宝是如何盗取你的个人隐私的?

中午吃完饭,看到一个微博中别人转的央视新闻《别被改装充电宝盗取隐私》觉得又是啥高大上的东西上了央视,看完后才知道是数字公司的某研究员做的伪装充电宝盗取隐私的玩意...

2287
来自专栏工作随笔

改VB.NET“偷懒”技巧

【开篇胡侃】虽然搞软件开发很多年了,但似乎从没有动手写过什么(很丢脸的感觉),因为,我的精力都献给了我的其他爱好,比如健身、美食、旅游等等,反而把自己最该专注的...

31013

扫码关注云+社区

领取腾讯云代金券