现如今,人们通过消息应用程序在社交网络上进行互动。这也促使企业开始重新思考他们与客户之间的沟通方式,尽量为客户提供最为便捷的互动方式。消息供应商已经注意到了这一点,他们使用机器人来改进和自动化企业与客户之间的互动体验。
这一切要从在网站上增加聊天部件开始。顾客在浏览网站时可以通过这些部件与客服中心的代理机器人展开互动,从而获得即时的协助。不管是现在,还是未来,我们与客服中心之间的互动将会从电话呼叫变成在线富文本聊天的形式。
过去的客服流程很简单,要么拿起电话直接打给他们,要么在他们的网站上提问题。后来开始使用短消息,再后来聊天机器人出现了。而现在,基于文本的沟通渠道似乎越来越多。最基本的就是使用短消息,企业与客户之间通过短消息进行互动(也叫作A2P,即Application to Person),这种互动是双向的,但仍然存在不足,因为短消息能够表达的信息量太有限。
然后是聊天部件,网站通过交互性的聊天部件跟踪用户在网站上的活动。
后来智能手机出现了,于是互动的焦点转移到了移动应用上。如果用户在应用上登录并留下浏览历史,那么应用就可以利用这些数据。这些应用有时候会直接与客服中心发起通信,类似网站上的聊天部件。
随着移动应用的流行,有很多消息应用提供了业务API,比如Facebook Messenger、LINE、微信、Skype、Telegram、Viber、Kik、Cisco Spark和Slack。
在面对这么多可选择的API时,企业需要问自己一个问题:“如何让客户与自己更好地进行互动?”
为了给客户提供最高效的互动体验,企业需要实现所有可能的互动渠道。
以下是几种可选择的全渠道解决方案:
我热爱开发工作,不过最近几年因为转向了产品管理,所以没有怎么做开发。不过这并不阻碍我继续做一些POC。对于一个喜欢在编程方面捣鼓小玩意的人来说,CPaaS最具吸引力,它在灵活性和时效性方面提供了最好的平衡。从长期来看,通过自开发服务来支持多渠道是一项很繁琐的工作,而集成已有服务缺乏可定制性和灵活性,因为它们提供的服务都是千篇一律的。
Twilio不久前刚刚发布了Twilio Studio,我觉得刚好可以用它来做POC。
我有自己的博客,叫作BlogGeek.me。我也有一个Facebook主页,但很少用。我会花很多时间创建邮件组,如果我能够在博客上加入全渠道功能,就可以让更多人看到我创建的内容。
为了实现这个功能,我决定采取如下方式:
我想先快速把原型构建起来,后面再进行优化调整,很多开发者也都会这样做。
首先,我们要进行账号配置。在获得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来接收消息。
接下来,我们要向消息发送者回复消息。我在Twilio Studio中创建了一个新的Send Message部件:
这里需要注意:
在收集了一些用户信息之后,你可能想要主动向这些用户发送消息。这个可以在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与用户进行全方位交互的应用。
完整的Flow是这样的:
这里缺少了错误检测和额外的功能,如消息过滤和自定义回复,不过这些都可以在后续进行改进。
下面是通过一个朋友的Facebook Messenger账号发送消息的示例:
在这篇文章里,我们示范了如何使用Twilio Studio创建一个简单的全方位消息机器人。开发人员可以基于这个示例创建出双向的交互应用。