paint-brush
Optimize Your Customer Service with Personalized Voice Bots on Dynamics 365by@thecognitiveservicesninja

Optimize Your Customer Service with Personalized Voice Bots on Dynamics 365

by Holger ImberyApril 24th, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

All you need, besides you already have Dynamics 365 Customer Service & Power Virtual Agents and the Voice Channel via Azure communication services installed, is installing three extensions to Power Virtual Agent. You can use the caller ID (the caller's phone number) to identify the user. Consider using a second factor (voice fingerprinting or a question to verify the customer number, etc.) for authentication.
featured image - Optimize Your Customer Service with Personalized Voice Bots on Dynamics 365
Holger Imbery HackerNoon profile picture

Do not ask things you already know.

Motivation

Imagine calling a company you have a contract- and are doing regular business with. From the beginning, their automated self-service platform knows anything related to your last transaction. There’s no need to say your name, customer number, or anything else more than once to verify your identity.


It sounds like a dream, right? No, it’s just reality, if the company would combine Dynamics 365 Customer Service and Power Virtual Agents with the phone channel and use some 1st party extensions and variables in your voice bot.

Prerequisites

With Dynamics 365 Customer Service and Power Virtual Agents already installed, adding three extensions to Power Virtual Agent is all that's needed to enable the Voice Channel via Azure Communication Services:


  • Power Virtual Agents telephony extension
  • Omnichannel Power Virtual Agent extension
  • Omnichannel Voice Power Virtual Agent extension

Solution

After installing the three extensions, you can use variables and actions to retrieve information about the caller stored in Dynamics 365.

Use of variables

With the Power Virtual Agents telephony extension**,** you can use the caller ID (the caller's phone number) to identify the user. Consider using a second factor (voice fingerprinting or a question to verify the customer number, etc.) for authentication if required.


With the other extension, you will get bot.msdyn_ variables with all information about the caller. You can find them in your PVA variables.


Available variables after installing the extensions


Example 1: Personalized greeting based on caller id


Right after sending the first greeting, you can check to see if the bot.CustomerPhoneNumber is empty or not. If it's empty, the caller is not sending one, or we are not in the phone channel if you use the same bot for text and voice.


personalized greeting


If there is a phone number, and the caller is a returning contact (number in your database), you can use bot.msdyn_CustomerName to greet the caller by name.


Please consider handling exceptions like:

  • no caller ID, but we are in the phone channel,
  • caller ID is present, but a new caller is calling,
  • etc.


Example 2: callback without asking for the phone number

If you want to offer a callback, a phone number is stored in the variable bot.CustomerPhoneNumber, as the caller transmitted the caller id. Just ask for confirmation that the caller wants to have the callback on the number currently used for dialing in.



Confirmation of user for callback




Message to the user with phone number




Available variables

You can use a whole list of variables, which are well-documented in Microsoft documentation. If your agents filled the data in their customer CRM data, the preferred language (to create a language routing) and the survey consent (to avoid bothering the caller) are available.

Conclusion

It is easy to provide personalized customer service with data you have already collected, making your customer feel more welcome without a tailored response.



Also published here.