Omnichannel for Customer Service – Voice IVR BOTS

I have been experimenting with using a Power Virtual Agent as an IVR within Microsoft’s Omnichannel for Customer Service. In this post I will explain my findings so far.


Obviously, you will need Omnichannel for Customer service installed and your voice channel configured!

But beyond that there are some extensions that need to be installed before you can make use of the full functionality with a Power Virtual Agent (PVA) and the voice channel.

You will need to install three extensions, “in the correct order” …

  1. Power Virtual Agent telephony extension
  2. Omnichannel Power Virtual Agent extension
  3. Omnichannel Voice Power Virtual Agent extension

The process essentially involves adding three extensions from AppSource. Below you can see that afterwards I can see all of these in my Power Platform admin center.

You can find links to download and install these extensions here. The process is very simple!

I have two tips …. Firstly, to be aware that the extensions must be installed in order. And secondly to wait for the install of each one to finish before starting the next. Be patient! (For example, in my instance the second extension took a surprisingly long time to install.)

Create your BOT

Next you will want to create your PVA IVR BOT and connect it to Omnichannel for Customer Service.

If you’ve created a PVA before you will have no issues with this! As the approach to creating a voice IVR BOT is pretty much the same as creating any other chat BOT. I guess you could even use one BOT for both chat and voice scenarios. Although (in my opinion) you might be unlikely to actually do that as there are some additional features that are specific to the voice channel.

Once you have created your BOT the first task will be to connect it to Omnichannel. You do this using the “Agent Transfers” option that you will find under the heading “Manage”. Once you have opened this option simply click “Omnichannel”.

Below you can see that my BOT has been connected to my Omnichannel instance already!

When you first connect a BOT you will need to select the option to enable voice and then pick your environment.

Now before continuing you will need to enter an application ID. For that click on the link that says “see how to register a new application ID”, then click on “App registration”.

Microsoft Azure will open, and you can use the “+New registration” button to create your app registration.

Now you can give your registration a name. (FYI: I think this is the name that will show for your BOT in Omnichannel, so name it wisely!)

Then just click the register button. I left all other fields unchanged.

Now just copy your application ID.

And paste it into the application ID field back in your Power Virtual Agent. Then click “Add your bot”.

You are now ready to build your IVR BOT. You can edit and add topics as required. (As you would with any chat BOT.)

The first topic you will probably want to edit will be your Greeting. As here you will introduce your company and maybe add other opening statements like “calls may be recorded to training and quality purposes” etc.

I mentioned in my opening that we have a few extensions that are specific to the voice channel! These include some useful context variables and actions.

Notice in my greeting above I added some variables as a test. In my example I have included the number the customer dialled in my opening message.

Below you can see a list of the variables available to me.

CustomerPhoneNumber is the number the customer called from.

OrganizationPhoneNumber is the number the customer called. If you have multiple inbound numbers, this might be useful to tailor the messages from the BOT based on the number the customer called.

Another useful action will be “Transfer To Agent”. This option is available ion the “End the conversation” area.

On selecting “Transfer to agent” you can optionally add a message to be given to the agents. (Tip: This is exactly the same process as we use we transferring a web chat conversation to an agent.)

You can also add several actions which might be useful for voice calls.

Examples include triggering the phone to hang up or transferring the call.

Or having a message that the customer cannot interrupt. With an IVR a customer can always (normally) interrupt what the BOT is saying. This is useful because if they know the IVR question they can skip ahead. But you may have some statements that you want to be read in full without interruption. (You might want to use this for important compliance phrases etc.)

In this post I won’t go into details of specific scenarios we might want to implement with these variables and actions. But I may in future posts! For example, I am currently experimenting with post call survey options, and I may detail these later!

One final tip on creating your BOT. Don’t forget to publish it! As you can not use it within Omnichannel until it has been published.

Omnichannel Settings

Now you have your BOT you will want to add it into your Omnichannel setup. There are two places you typically add your BOTs in Omnichannel.

The first is on the workstream as an IVR BOT. The second is on the language as a post-call survey BOT.

Below you can see that I have opened my inbound workstream and I have added a BOT that will be my IVR BOT. Whenever a phone call starts the customer will first be connected to this BOT. Who in turn will transfer to a human agent as and when required.

The other area you can define a BOT is as a post-call survey BOT. (As already mentioned, I might create a more detailed post specifically on the survey options later.) But I will detail how to define a BOT to be used for post-call surveys now.

Below you can see that I have opened my workstream, I have just one language defined. The survey BOT is connected to the language setting.

Having clicked edit I selected the language tab and edit the settings from there.

Usefully we can control several BOT related settings from the language tab. Including the voice, speed and pitch of the BOT’s voice.

Towards the bottom of these settings, you will find the ability to link to a BOT that can then be used to collect any post-call responses.

Hopefully in this post I have highlighted many of the IVR BOT related settings and explained some of the capabilities. I have found creating IVR BOTs to be a pretty simple process and one I really enjoy doing. As I experiment with particular use cases for IVR BOTs I may return to this subject again in the future. Enjoy!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s