Imagine being able to serve your customers and employees immediately in their native language, without waiting in Contact Center Queues, 24/7, with your new self-service voice bot factory. And for complex issues, there's always a human agent as an escalation target.
Table of Contents
Prerequisites
Architecture
Create the first level of the cascade
Test Implementation
Next Steps
The basic idea behind our concierge is to have a cascade of bots living in separate queues. Please keep in mind to always create an escalation to a human path.
We start with a selector for the language and forward the outcome to a queue for that specific language. You could create another bot for that queue or bring human agents to that queue.
This mechanism can be used for a cascade of bots with different skills in several languages and can be your foundation of a bot factor in front of your human agents.
Create your "concierge" bot with English (US) language in your Omnichannel-enabled environment.
Create a new topic with Bot Framework Composer.
select the Add (+) node, and then select Send a response.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-AriaNeural"><lang xml:lang="en-US">Hello! Welcome to customer support.</lang></voice></speak>
The variable ${virtualagent.msdyn_CustomerName} is available for authenticated customers.
Select Add (+) node, point to Ask a question, and then choose Multi-choice.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-JennyMultilingualNeural"><lang xml:lang="en-US">Press or say 1 for English.</lang><break strength="medium"/><lang xml:lang="fr-FR">Appuyez ou dites 2 pour le français.</lang><break strength="medium"/><lang xml:lang="de-DE">Sagen oder drücken Sie 3 für Deutsch</lang></voice></speak>
Select the User input box
Property:
conversation.language_choice
Array of choices
1, 2, 3, one, two, three, un, deux, trois, eins, zwei, drei
Select the Add (+) node, select Create a condition, and then select Branch Switch (multiple options)
Condition:
conversation.language_choice
Value:
Value: 1, 2, 3, One, Two, Three, Un, deux, trois, eins, zwei, drei
Here, enter one choice per value. Select the Add (+) node and then select Manage properties > Set a property
And enter the following details:
Condition:
virtualagent.va_CustomerLocale
Value:
en-US
Repeat the steps to Set a property for fr-FR, de-DE.
The value for the virtualagent.va_CustomerLocale
variable will be updated with the language selected by the caller.
set the va_CustomerLocale context variable with the locale codes for the languages that you want to support. see: Supported locations and locale codes
Select the Add (+) node, and then select Begin a Power Virtual Agent topic.]
Select "Escale" in the Dialog name.
Publish the bot in Bot Framework composer, go back to PVA editing canvas, refresh, find the topic, and publish in PVA.
Open the Greeting topic in the authoring canvas and delete everything except the trigger phrases.
Select Add node (+), and then select Redirect to another topic. Choose the topic you created above.
open the Escalate topic in the authoring canvas, and delete all the default messages except the trigger phrases.
Select Add node (+), select End the conversation, and then select transfer to agent.
Save and publish.
Check your application registration on AAD Portal and remember the Application ID.(See prerequisite)
Go to Settings, Agent transfer, select Omnichannel, enable it and configure the transfer with the Application ID.
In Dynamics 365 Customer Service Admin Center configure a voice workstream, a voice queue, and their routing rules.
You can use my articles on the topic as a reference:
Use the configured bot as the bot in the workstream settings as an escalation target for the bot; we need to configure three additional queues - one each for English, French, and German and add the required agents, or if you want to use a bot, add the bot.
Configure a voice workstream with English as the primary language and French and German as additional languages.
In the route to queues rule set of the workstream, use Conversation.CustomerLanguage
as the criteria to route the incoming call to different language queues based on the option selected by the customer.
As a customer, call the number registered with the voice workstream with a phone with a registered caller ID and one without. Hear the greeting and make your choice.
You can use this mechanism to cascade; please feel free to add additional bots and escalations to give your customer a choice of targets to consult. Do not forget it is better to have a bot doing the job immediately instead of waiting for an agent.
Also published here.