twilio contact center演示
现代联络中心的精髓是在多个频道(语音,网络聊天,视频,电子邮件,社交媒体等)上为客户提供服务,允许他们在跨渠道中无缝移动,最重要的是维护对话的上下文。
twilio contact center演示是用于建造现代联络中心的参考体系结构。该演示的重点是展示如何构建基于Twilio平台的联络中心以及所需的各种后端和前端组件。
注意:我们从UX的角度完成了基本工作,还有很多机会可以改善它。它是为了演示目的而设计的,尚未单独检查安全性。
此应用程序提供为IS。 Twilio不正式支持它。
特征
- Twilio电话号码
- Twilio可编程语音(PSTN,Twilio WebRTC客户端)
- Twilio可编程聊天
- Twilio可编程SMS和Facebook Messenger
- Twilio可编程视频
- Twilio TaskRouter
- Twilio Rest Apis
客户旅程流量:
回调语音调用(PSTN):
客户填写在线呼叫请求 – >提交给服务器的表单 – >在创建任务的任务 – >找到可用的和匹配的代理 – >代理接受预订并拨出客户(PSTN) – >将客户连接到代理(WEBRTC)
入站语音通话(PSTN):
客户调用Twilio电话号码 – > Twilio请求Webhook->服务器生成IVR->呼叫者选择IVR选项 – > TaskRouter上创建的任务 – >找到可用的代理 – > Agent Accests -contects-> connect convents -worters-将客户连接到代理(WEBRTC)
网络聊天:
客户填写在线Web聊天请求表格 – >提交给服务器的表单 – >“创建任务”上的任务 – >查找可用和匹配代理 – >代理接受预订 – >开始客户和代理之间的聊天
视频电话:
客户填写视频通话请求表格 – >提交给服务器的表单 – > TaskRouter上的任务和创建的视频室 – >查找可用和匹配代理 – >代理接受预订 – >代理商加入视频室
实时任务事件仪表板:
实时显示操作联络中心指标(例如:平均呼叫手柄时间,代理生产率,呼叫指标,TaskRouter统计信息等)。请查看以下仓库:https://github.com/ameerbadri/twilio-taskrouter-realtime-dashboard
先决条件:
- Twilio平台的基本知识 – TwilioQuest,这是一种交互式,自定进度的游戏,您可以在其中学习如何进行Twilio。
- Twilio TaskRouter
- Twilio客户
- Twilio可编程聊天
- Twilio可编程视频
- Angular.js,Bootstrap和Node.js的工作知识
安装
如果您以前从未使用过Twilio,请欢迎!您需要注册一个Twilio帐户。
我们建议您在Twilio中创建一个单独的项目,并使用该项目安装此应用程序。
注意:建议您有一个升级的Twilio帐户以充分体验此演示。
配置变量
在开始安装之前,您需要从Twilio帐户门户收集以下变量。
-
TWILIO_ACCOUNT_SID -
TWILIO_AUTH_TOKEN -
TWILIO_WORKSPACE_SID
-
有关帐户SID和Auth令牌,请单击此处:https://www.twilio.com/console
-
购买电话号码或使用现有电话(该应用程序将稍后为您配置该号码)
-
创建一个新的Twilio TaskRouter工作区,然后选择自定义模板。
-
有关Twilio API密钥SID和Twilio API密钥秘密,请单击此处:https://www.twilio.com/console/dev-tools/api-keys
-
TWILIO_API_KEY_SID -
TWILIO_API_KEY_SECRET
对于Web聊天,您需要设置Twilio可编程聊天环境变量:
-
TWILIO_CHAT_SERVICE_SID
- 要创建新的聊天服务或重新使用现有服务,请单击此处:https://www.twilio.com/console/chat/services
代理UI不支持同时处理多个任务,因此所有任务均在同一任务通道上以一个同时任务的容量进行路由。有关更多详细信息,请检查TaskRouter多任务处理
- 有关出站呼叫启用代理会议设置,请单击此处:https://www.twilio.com/console/voice/conferences/settings/settings
Terraform安装 – Heroku
您可以将此项目用Heroku上的所有驱动器部署,Terraform是一种开源基础架构作为代码软件工具。
为Heroku创建API密钥,请查看Heroku平台API指南以获取帮助。
将Heroku API密钥和您的电子邮件地址添加到terraform.tfvars 。
初始化Terraform配置文件并运行
terraform init
如果您尚未安装Terraform,请关注Terraform入门。
将截面配置变量中列出的Twilio变量添加到terraform.tfvars变量文件中。
在基础架构中设置您的heroku应用程序名称文件file terraform_heroku.tf
创建执行计划
terraform plan
通过执行在Heroku上安装项目
terraform apply
安装完成后,请打开https://<your-application-name>.her*ok**uapp.com/setup并配置应用程序。演示概述将在https://<your-application-name>.he*rok*ua*pp.com上访问。
一键安装 – Heroku
这将为您安装应用程序和Heroku(要求登录)的所有依赖项。作为安装的一部分,Heroku应用程序将引导您完成环境变量的配置。请单击以下按钮部署应用程序。
安装完成后,请打开https://<your-application-name>.her*ok**uapp.com/setup并配置应用程序。演示概述将在https://<your-application-name>.he*rok*ua*pp.com上访问。
Google App引擎安装
下载并安装Google Cloud SDK。
创建一个新项目
gcloud projects create <your-project-id> --set-as-default
使用您的项目初始化应用程序引擎应用程序,然后选择其区域:
gcloud app create --project=<your-project-id>
将截面配置变量中列出的twilio变量添加到app.yaml变量文件中。
通过运行以下命令将应用程序部署在应用引擎上。
gcloud app deploy
查看您的应用程序运行
gcloud app browse
安装完成后,请打开https://<your-project-id>.a*pp*s*pot.com/setup并配置应用程序。演示概述将在https://<your-project-id>.**apps*pot.com上访问。
手动安装 – 在您自己的服务器上
叉和克隆存储库。然后,安装依赖项
npm install
如果要从文件加载环境变量,请安装Dotenv软件包以处理本地环境变量。
npm install dotenv
在根目录中创建一个名为“ .env”的文件,然后将以下内容添加到app.js的顶部
require(\'dotenv\').config()
为了运行演示,您需要在配置变量中设置环境变量列表](#configuration-variables)
启动应用程序
npm start
在使用演示之前,请打开http://<you**r-*application-name>/setup并配置应用程序。演示概述将在http://&*lt;yo*ur*-application-name>上访问。请注意,如果未设置process.env.port,则在端口5000上运行应用程序。
如果您在本地运行演示,请记住,Twilio需要一个可公开访问的Webhooks地址,并且设置过程将其注册为Twilio。因此,您需要运行诸如NGrok之类的东西,而不仅仅是击中http:// localhost:5000/。当您从Ngrok获得新地址时,您还需要重新运行设置过程,以在Twilio中注册更新的地址。
NGROK设置
-
系统宽安装
-
从Ngrok下载并安装
-
使用NPM
npm install ngrok -g -
运行NGrok(如果相应地在.env更新中定义端口)
./ngrok http 5000
-
-
只需安装项目
-
安装NGrok软件包
npm install ngrok --dev -
将以下内容添加到app.js的顶部
const ngrok = require(\'ngrok\') const ngrokUrl = async function () { const url = await ngrok.connect((process.env.PORT || 5000)) console.log(\'ngrok url ->\', url) } -
在app.js中调用app.listen中的ngrokurl以记录服务器上的ngrok url
ngrokUrl()
-
注意:在Google Chrome上,需要安全的HTTPS连接才能通过WEBRTC进行电话。使用支持HTTPS(例如NGrok)的隧道,该隧道可以将流量转发到您的网络服务器。
贡献
欢迎捐款并普遍接受。对于不琐碎的修正案,最好提交一个问题,解释PR之前提出的更改。这使维护者可以提供指导并避免您从事重复的工作。
您的更改必须遵守通用的项目代码样式。
# please run this before \"git commit\"
npm run lint
# try automatic fix
./node_modules/.bin/eslint controllers --fix
./node_modules/.bin/eslint public --fix
为了使其他贡献者和审稿人的生活更轻松
git rebase -i HEAD^^^^^^
# then squash or fixup your shards
# and force push into your fork
git push origin [YOUR BRANCH] -f
有问题吗?
您可以在Twitter上关注我 – @mdamm_de
执照
麻省理工学院
