Twilio Flex, Call Center Integrations / Streaming - twilio

DISCLAIMER: This question mentions Google Contact Center AI, which is currently in
alpha. DO NOT PROVIDE any references to CCAI api. The solution soley relies on Twilio Flex code & config.
Looking to use Flex as a call-center solution with Google Contact Center AI as a backing integration for "AI" capabilities. In order to do that, I need to understand the integration between the two products better... more specifically, the same integration in this demo: https://youtu.be/n5vMhntiReg?t=2332
Al Cook describes it as a simple integration and a matter of "looping the call to Google", but it does not seem so trivial.
A user and an operator utilize Flex for the phone call. Flex then seems to stream the call to CCAI as a separate process to which the transcription/NLP processing and knowledge base information is returned to Flex.
How exactly do we setup this type of integration in Flex?

Related

Is there an API for asking the Google Assistant general questions via plaintext?

I'm looking for a way to integrate the Google Assistant into my chatbot and be able to get answers to general questions like "whats the weather?", "how tall is X?", "what does X mean?" etc. (just how Google Home works). Ideally this would be over a REST API and I'd get the response back inside of a JSON payload.
I looked through the Google Assistant SDK docs but it wasn't clear on how I could host/build an API that does this. Any ideas on if something like this already exists?
Yes, you use the Google Assistant SDK.
There isn't a REST API, since other requirements for the SDK are poorly suited for REST. Instead it uses gRPC, which lets them publish a standard interface and lets you compile this interface to local language bindings.
IF you are using Python, C++, or Node.js, there are already libraries available which allow you to skip the gRPC setup yourself.

Can twilio quick start sdk be used for a full fledged application or it is just for learning purpose?

I'm trying to develop a web application where users will be able to schedule a video call between them. I want to use twilio. I would like to know if the quickstart app of twilio can be used for it or it is just for learning purpose? If quickstart app can be used for this. How many group of (group of 2 users) can it support?
The Twilio Quickstart applications (in this case Programmable Video Quickstart) are a great way for developers to familiarize themselves with Twilio's SDK's and the various methods and properties. It helps with the understanding and creation of common capabilities.
Additionally, the Programmable Video Quickstart has an /examples route, which provides code snippets on further extending out functionality based on your particular use case.
Programmable Video has 3 different room types and their capabilities are best explained at the link below. The scaling is handled by Twilio, so that should not be an issue. If using Peer-to-Peer rooms, Twilio only handles the signaling and the media goes directly between the two Video end-points.
For your use case, Peer-to-Peer or Small Group Rooms could be viable based on the feature set you are looking for.
Understanding Video Rooms

When will Twilio Flex support outbound calling?

Im wondering when the engineering team at Twilio expects to release the outbound dialing functionality, which was indicated is being actively worked on here
https://support.twilio.com/hc/en-us/articles/360010789173-How-do-I-Make-Outbound-Calls-with-Twilio-Flex-
I'd imagine a lot of people leveraging twilio flex would like this as its a common case.
I realize that we can add this type of functionality on our own by programming against the apis, and even use the plugin such as
https://github.com/lehel-twilio/plugin-dialpad
My only concern with using the above plugin is that it
May be deprecated if twilio engineers add this natively to flex UI
Since only 1 plugin can be used at a time, if customizations were made to a plugin already (call it plugin B), I would have to merge the plugin code contained in the plugin-dialpad github repo above (call this plugin A) into the code base of Plugin B.
It would be great if twilio supported adding mutiple plugins?
Any feedback twilio team/evangelists on this? Id imagine its a common use case.
The team has kindly responded and said that they are targeting the end of year for releasing this natively into twilio flex
it's already available but experimental
https://www.twilio.com/changelog/outbound-calling-experimental-feature
here is a guide on setup
https://www.twilio.com/docs/flex/dialpad-end-user-guide
there is a confusing part with workflow thing so I'm going to explain in more details:
1) go to https://www.twilio.com/console/taskrouter/workspaces
2) select your workspace
3) go to Workflows
4) click on Assign to Anyone or whatever workflow you want to use for outbound calls
5) Click Add filter
6) If you have other filters it's better to place this one on top because if other filter matches this task it won't work
7) set MATCHING TASKS to flexOutboundDialerTargetWorker != null
8) set EXPRESSION to task.flexOutboundDialerTargetWorker == worker.contact_uri
9) click save
that's it. hope it saves someone time
Flex supports outbound dialing in form of the following two features
Native Dialpad available in Flex UI
Programmability construct viz. startOutboundCall to build use cases like click-to-dial.
starting today.
Check out the blog post.
Disclaimer : I work at Twilio.

Is it possible to connect flows in Twilio Studio?

I'm trying to link multiple twilio flows together, to make it more manageable and to be able to reuse some specific flow elements just as a payment flow within multiple base flows.
Is it possible to trigger a flow using its webhook url from another flow?
Twilio developer evangelist here.
While technically it is possible to link flows together, in practice it is not ideal right now. You can do so by making a call to another Twilio number that is set to respond with your new flow. As you can imagine, this would confuse your logs and is not straightforward to implement, especially if you want to return link back to the original flow later.
For now, the recommended thing to do is to copy the elements to each flow as you need them.
I've registered that I would like to see us implement subflows that you can reuse like this properly, but for now, copying is likely your best method.

Google assistant SDK custom commands

Currently following hot word example, I create custom commands like turn screen on/off, how do I disable voice response "sorry I can't help you"
there are multiple ways do it.follow this link and details google assistant
1 - if your using this method/project creation and run it. then you can parse the request/query in event.args['text'] based on which you can perform activity local without sending it to google assistant. problems: google will response with some voice message parallel.
2 - use IFTTT, pretty simple to work with. basic use with webhooks takes little time though. this link is useful and use ngrok for local webhook url
3 - use API.AI this is for advanced projects where you depend on google to assist with questions recognization and response with your answers from webhooks. it's not straight forward to work with, the details and tutorials that are given are with google cloud functions which works only with node.js as of now. if your python programmer or any other languages google has examples in github which are again not stright forward, I guess.

Resources