How duplicate phone numbers for customers (contact/account) are handled in Voice Channel (Dynamics 365 Omnichannel for Customer Service)

Before we delve into different scenarios, few key points, we need to be aware of about Phone Numbers in Voice Channels.

  • Voice Channel considers Contact’s Mobile Phone (mobilephone) and Account’s Phone (telephone1) fields.

  • The phone number should be in E.164 format inside Dynamics 365.

  • If no matching customer (contact or account) is found, the conversation record will not have any customer prepopulated.

  • If 2 contacts are having the same Phone Number (E.164) format, i.e. multiple matches found

In that case, also, no customer is tagged in the conversation record, the agent would have to search for the customer.

  • If 2 contacts and 1 account have the same Phone Number

The Conversation records get associated with the Account record.

  • If 1 contact and 1 account have the same Phone Number

The conversation record gets tagged against the Contact

  • If there is only 1 account record with that phone number and no contact records

The conversation record has an Account tagged to it.

  • In case multiple accounts are found with the same phone number and no matching contact

No customer is tagged in the conversation record

  • If there are multiple contacts and multiple accounts with the same phone number

No customer is tagged in the conversation record.

In short –

Matching Contact

Matching Account


























Hope it helps..



Fixed – Omnichannel authentication failed. Contact your administrator in Omnichannel Ongoing Conversations Dashboard

Recently we were getting the below error on the Omnichannel Ongoing Conversations Dashboard.

As the user was having an Omnichannel Administrator role, we expected it to work for the user. We raised a support ticket for the same and got to know that we need to assign the Omnichannel supervisor role for it to work for the user.

After assigning the Omnichannel supervisor role, the report started working for the user. Try it in incognito mode or clear the cache after assigning the role.

Get more details –  Omnichannel Ongoing Conversations dashboard

Hope it helps..



How to – Configure Azure Event Grid System Topic and Subscription to enable Call recording and SMS in Dynamics 365 Omnichannel Voice

Azure Communication Services uses Azure Event Grid to send real-time event notifications for chat, telephony, video, SMS, and voice calling events.

Azure Event Grid will then route the event messages to the subscribers, one of them being the Azure Application we registered while configuring the Voice channel.

We had specified the Azure App id and tenant id while connecting to ACS from Dynamics 365 as the Event grid app id and Event grid app tenant id.

  • So first we need to register Azure Event Grid System Topic for our app to listen to Azure Communication Service Events.
  • Next, we need to subscribe to specific events for call recording, sms, etc by creating Azure Event Grid Subscriptions.

Login to Azure Portal, create a new Event Grid System
Topic as shown below

Specify Azure Communication Services as Topic Types and for Resource select the Azure Communication Service resource created earlier.

Create the Event System Grid Topic.

Navigate to the topic created, and next create an Event Subscription there.

Provide the below details

File to Event Types = Recording File Status Updated

The other event types available are –

For the webhook’s endpoint, navigate back to the Omnichannel Admin Center,

From the Phone Number >> Advanced Settings copy the WebHook Endpoint URL.

Paste it there and navigate to the Additional features tab.

Check AAD Authentication and specify Tenant ID and AAD Application ID or URI, the same details that were specified while connecting ACS from Dynamics 365 as event grid app id and event grid app tenant id.

Click on Create and we are now done with the required setup.

We got the below error while creating the Azure Event Subscription

Back inside Dynamics 365 Customer Service Workspace, we can see both the inbound and the outbound call getting recorded.

Thanks to this wonderful post that helped us in configuring it –

Also, check –

Hope it helps..


Fixed – Deployment has failed with the following error: {“code”:”WebhookAadAppAccessCheckCategory”,”message”:”Access check failed for Webhook AAD App with error ‘Subscriber’s client ‘user’… while configuring the Azure Grid Event Subscription – Dynamics 365 Omnichannel Voice

While configuring Azure Grid Event Subscription for enabling Call Recording in Dynamics 365 Omnichannel Voice,

we got the below error –

Deployment has failed with the following error: {“code”:”WebhookAadAppAccessCheckCategory”,”message”:”Access check failed for Webhook AAD App with error ‘Subscriber’s client ‘user’ with object id ‘1fc23e2e-cf5b-49c1-b942-9f2036e8c9cf’ is neither owner of this AAD application 585b1e3f-6685-4e69-a1b7-a880074f12f0 nor have this role AzureEventGridSecureWebhookSubscriber. In addition the role has to be assigned to client ‘user’ with object id ‘1fc23e2e-cf5b-49c1-b942-9f2036e8c9cf’. One of these two conditions has to be met.’. For troublehooting, visit Activity id:b179f7d4-115b-4d4d-aeee-6046f4181846, timestamp: 12/14/2022 9:52:19 AM (UTC).”}

As the error message suggests, the user who is setting up the Azure Event Grid Subscription has to be added as the owner of the Azure AD Application, with AAD Authentication as shown below.

So we added the user as the owner of that Azure AD app, which fixed the issue for us.

The result –


Hope it helps..


How to – configure Outbound Calling – Dynamics 365 Omnichannel for Customer Service

For setting up Outbound calling we need to first set up a phone number that will be used for outbound calling.

This would help –

In a nutshell below are the steps we are going to perform –

  1. Configure Phone Number for outbound calling.
  2. Define a queue of type voice for outbound calling or use an existing queue.
  3. Configure outbound capacity profile and add users.
  4. Create an outbound profile using the phone number, queue, and outbound capacity profile.

Next click on Edit for the phone number added.

Select Make calls for the phone number and save the changes (if not already done) for enabling outbound calling.

Next select Setup for the phone number.

Select Create a profile to create an outbound profile. For agents to make an outbound call they must be assigned or added to an outbound capacity profile.

For each phone number, we need to define an outbound profile.

Clicking on Create profile will take us to the page for creating the new outbound profile. We can also navigate there directly through – Advanced Settings >> Agent Experience >> Outbound and Inbound Profile >> Manage

Before we can create a
new outbound profile, we need to have Queue and Capacity Profile in place.

Here we have a Queue named Default Voice Queue of type Voice created and a user added to it.

For creating a Capacity profile, navigate to User Attributes >> Capacity Profile >> Manage

Here we have a capacity profile named – Default voice outbound with the users added to it.

With the Phone Number, Voice Type – Queue, and Capacity Profile defined, let us now create the new outbound profile.

Navigate to – Advanced Settings >> Agent Experience >> Outbound and Inbound Profile >> Manage

Select + New profile

Specify the Profile name and Profile type as Outbound.

Add the phone number and specify the Outbound
info required.

Specify Outbound behaviours

Click on Next and check the details in the summary and Save and close to create the outbound profile record.

Now with the configuration done, agents can make calls by clicking the Launch

Or from the Mobile Phone field, they can click on the Phone icon.

It launches the Dialer, with the phone number populated.

Lastly, we can also assign a Phone Number to a user, which allows him to make calls using that number. (toll-free numbers cannot be assigned)

With all the proper configurations in place, we were able to make an outbound call using the phone number configured as shown below.

Please check –

Hope it helps..


How to – Set up Omnichannel Voice using Azure Communication Service (ACS)

To add Voice Calling (PSTN – Public Switched Telephone Network) connectivity to an app or service, we can buy a number from Microsoft, which acts as a PSTN carrier (based on availability in the region).

This is the easiest way to connect ACS (Azure Communication Services) to PSTN, managed by Microsoft. Here Microsoft will provide the numbers, and there is no deployment or maintenance of the on-premises deployment required for PSTN (Voice Calling).

If Voice Calling (PSTN) is not available in the region or if we want to use a different PSTN carrier we can opt for Azure direct routing. The advantage of Azure direct routing is that we can use a telephony carrier of our choice, by connecting Azure Communication Services to the supported SBC – Session Border Controller.

A session border controller (SBC) is a dedicated hardware device or software application that governs how phone calls are initiated, conducted, and terminated on a voice-over-Internet Protocol (VoIP) network.

For Direct Routing to work, we could configure products from the certified SBC Vendors, one such example is AudioCodesMediant VE Session Border Controller (SBC) from Azure Marketplace.

List of certified SBC Vendors

SIP stands for Session Initiation Protocol, and is essentially a way to make end connections for data and voice transfers over the internet, similar to HTTP functions for pages on the internet, provides a way to convert voice signals into data that can be decoded by devices used by the caller. The trunk is used to refer to a bundle of phone lines shared between users.

To configure the Omnichannel’s voice configuration using the ACS, navigate to Phone Numbers in the Omnichannel admin center and click on Get started.

The Get started option gives us the option to create and deploy a new ACS resource or select an existing ACS resource.

With Create new resource option, we can create a new Azure
Subscription, Azure
Resource Group, provide a Resource Name, and can select Deploy to create and deploy the required resource.

For the Use existing resource option, we need to specify the following details.

Note – To enable call recording and SMS service using Azure Event Grid –

To create ACS Resource, login to Azure Portal and search for Communication Services.

Once the ACS resource is created, we have the option to configure the Phone Numbers (if we are using the numbers provided by Microsoft) or Direct Routing (for other carriers) as specified earlier.

We’d get the following options while adding Phone numbers –

  • Country or Region
  • Use Case – application or person.
  • Number Type – local or toll free.
  • Calling and SMS.

In the Numbers tab, we can find and purchase the number.

For Direct Routing

In the Session Border Controllers tab, will be specifying the FQDN
Fully Qualified Domain Name of the SBC along with the signal port number.

In the Voice Routes tab, we’d specify the number pattern and the corresponding session border controller that allows a call to be sent to a specific SBC based on the called or dialed number pattern.

On saving the details, it will validate the information entered.

Once we have set up the ACS, next we’d register an application in Azure, these are required details inside Omnichannel Administration App while configuring the ACS in the Event grid app id and Event grid app tenant id.

The remaining ACS details required, we’d get from the ACS resource created earlier.

Enter the details and click on Connect.

Once the connection is successful, select Advanced.acsad

For Direct Routing, select Add number for Bring your own number via Azure Direct Routing (preview)

Note – SMS is not supported with Azure direct routing


Specify details of the required details –

This adds the number to the phone number list and is ready for setup.

Next click on Setup

Select the Setup workstream option there.

Specify other required details like phone number, language, behaviors, etc.

After we have configured the workstream successfully, we can call the number configured to see the Voice Channel in action.

So, for Omnichannel voice to work, we can either use Voice Calling (PSTN) provided by Microsoft or if it is not available or we want a different carrier, we can do it via Azure Direct Routing, which requires appropriate infrastructure in place along with certified Session Border Controller (SBC) and a working connection between SBC to Azure Communication Services.

Helpful links –

Hope it helps..

%d bloggers like this: