Virtual Agents with Webex Contact Center and Dialogflow

For a long time now the promise of contact center technology has been the ability to integrate buzz words like AI and Machine Learning into platforms with the goal of handling customer traffic so agents could be better prioritized. We’ve all had our bad experiences trying to say the word “operator” with just the right inflection and accent in order to get past them, but at the same time they have been learning and are getting much better. If you’ve talked with anyone at Amazon recently – spoiler alert – you probably didn’t, and you might have not even noticed. Each of the big cloud providers have built their own platforms of neural networks, intent services and language processing that you can leverage them to build your own super smart IVR. Webex Contact Center integrates with Google CCAI and Dialogflow to provide advanced functionality along with text-to-speech functionality within call flows.  Webex has great documentation on everything but the Google side and Google has great documentation on everything but the Webex side, and somehow the information needed to integrate the two gets lost between the worlds.  For that reason I wanted to write a blog on the basic setup if a Virtual Agent in Webex CC utilizing Google Dialogflow and showing both sides.

The Google Side:

First you will want to go into Dialogflow and setup your agent.  Open up and click the drop down on the top left to “Create New Agent”. Then give your agent a name and create a new project or associate it with an existing one.






Next click on the settings gear of the agent and we want to click on the “ProjectId” and under the project click “Go to Project Settings”.  This is the easiest way into where you want to be for setting up the Google Cloud Platform side.






We need to create a service account that Webex can use to invoke and interact with Dialogflow and the Text-top-Speech engine.  Click “Service Accounts” on the left and create a new user with the following permissions.

Next we need to create an authentication key for the service account which we’ll download in a JSON format and load into Webex Control Hub latter.

Now we want to enable the Text-to-Speech API on this project so we can use it in the IVR to provide a consistent voice to the caller. In the search bar, search for “text-to-speech” and you will see the Cloud Text-to-Speech API towards the bottom.  Click it and then the “Enable” button. You will need to attach billing to the project to enable this step. (If you are purchasing CCAI through Cisco you will need to add a credit card in order to create the project and then provide the Project ID to Cisco and they will cover any billing to the project per your agreement)


The Webex Side:

Once Billing is setup we can create a Connector in Webex Contact Center that will enable text-to-speech from within the IVR. From the Contact Center section in Control Hub go under “Connectors” and click either “Set Up” or “Add More” in the Google card.  Next give the Connector a name and upload the service account key (json file) you downloaded 2 steps back. (Without billing setup and the Text-to-Speech API enabled the key upload will fail on this step)


Next under the “Features” tab in Control Hub we will create our Virtual Agent that connects to Dialogflow.  Click “New” and follow the wizard through the setup.  During this wizard Webex will supply you with some template files that have some example intents that you can upload to Dialogflow.  You will need the project ID from Google and under “Region” just use the word “global” unless  you’ve specified during the project setup.

Once the agent is complete we can add the Virtual Agent to our Flow in Contact Center. When the call comes in we are using our new Text-to-Speech capabilities to play a welcome message and then handing the call off to dialogflow to manage the rest of the conversation. If we experience any errors or at any time during the call the call is escalated then we route that into a Queue to continue the conversation with a real person.  We can also map some variables out of the agent like “Last Intent” and provide that via a CAD variable which can help the agent get started.

Dialogflow is a very rich tool that requires thoughtful and thorough design and implementation to mold the Virtual Agent into a helpful tool, but this gets your contact center taking the calls and you can start expanding the Virtual Agent’s capabilities and training the interactions for better results for your users.