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).

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-region-availability#azure-direct-routing

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

https://learn.microsoft.com/en-us/azure/communication-services/concepts/telephony/certified-session-border-controllers#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.

Get started option will only appear if we have trial has ended, or we have ended it manually or disconnected any existing ACS connection.

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-connect-existing-resource?tabs=customerserviceadmincenter#prerequisites

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-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 – https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-connect-existing-resource?tabs=customerserviceadmincenter#enable-call-recording-and-sms-services

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.

https://learn.microsoft.com/en-us/azure/communication-services/concepts/telephony/direct-routing-provisioning#voice-routing-considerations

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

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-bring-your-own-number?tabs=customerserviceadmincenter

bron

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 –

https://learn.microsoft.com/en-us/azure/communication-services/concepts/telephony/direct-routing-infrastructure

https://triciasinclair.com/2022/04/25/setting-up-omnichannel-voice-using-azure-communication-service/

https://neilparkhurst.com/2022/02/09/omnichannel-for-customer-service-voice-channel/

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-connect-existing-resource?tabs=customerserviceadmincenter#enable-call-recording-and-sms-services

Hope it helps..

Advertisements

Setting up Omnichannel Voice using Azure Communication Service


Tricia Sinclair's avatarEverything D365

In my previous blog, I detailed how an Omnichannel trial could be created and shared how we could initiate a trial of the native voice experience. The native voice trial provides 60 minutes of voice calling minutes which can be used to evaluate the voice experience. This blog will detail how to configure a number via Azure Communication Service.

Azure Communication Service

Before I provide the steps, I’ll detail what Azure Communication Service is and how this works with Omnichannel. Azure Communication Service is a set of web services which expose the feature set available within Microsoft Teams.

Many contact centers may use a PSTN via a carrier which allows calls to be initiated and routed via a contact center solution to an agent. Microsoft themselves act as a PSTN carrier or allow companies to use third party carriers via a Session Border Controller when setting up their Teams voice…

View original post 159 more words

Workstreams Overview – part 2 – Dynamics 365 Customer Service / Omnichannel


Continuing the previous post, let us now delve deeper into the different options inside each of the workstream types.

Let us first create a workstream of type MessagingChat (Persistent) with work distribution mode as Push, and check the various configuration to be done for it.

We are presented with 5 main sections –

  1. Live Chat (setup).
  2. Routing Rules – Work classification and Route to queues.
  3. Work Distribution.
  4. Bot.
  5. Advanced Settings

In the case of work distribution as Pick the only change is in the mode displayed, the rest of the settings remains the same.

The Advance settings section has the following sections –

  1. Sessions
  2. Agent Notifications
  3. Context Variables
  4. Smart Assist Bots
  5. Quick Replies

These sections remain the same for other Channels as well – Apple Message for Business, Chat, Custom, Facebook, Google’s Business Messages, LINE, Microsoft Teams, SMS, Twitter, WeChat, and WhatsApp.

Only in the case of Chat, if we uncheck
Make Chats Persistent, we do not get the option of Auto Close after Inactivity and Keep same agent for entire conversation as those options apply specifically to the persistent chat.

  • Now let us create a workstream of type Record and see the options there.

  • Here we can see the options to specify the Intake rules instead of setting up the channel.
  • The routing rules section remains the same.
  • Work distribution doesn’t have the option of Auto Close after Inactivity and Keep same agent for the entire conversation. This is because here we routing the record and do not have any conversation with the customer.
  • The bot is also not available for record-type workstreams.

For Advanced Settings, we only have the option of Sessions and Agent notifications.

The other sections Context Variables, Smart assist bots, and Quick replies are not available that we saw for messaging type workstream, considering we are not having any conversation here.

  • Now let us check for the Voice type of workstream.

  • Here we get the same options as we have for workstream type messaging except Auto Close after Inactivity and Keep same agent for entire conversation, as expected.

And in advanced settings, the only difference when compared to the messaging channel is that there is no section for quick replies.

In a nutshell,

Settings / Options  

Messaging 

Record 

Voice 

Description

Options

Setup up channel 

Intake Rules 

Setup Voice

Set up the corresponding channels or intake rules.

Routing Rules 

       

Work Classification

(optional) 

Y 

Y 

Y 

Work classification allows us to define conditions and add additional information as output attributes for optimum assignment of the work item.

It can be based on Logical rules or Machine Learning models.

https://learn.microsoft.com/en-us/dynamics365/customer-service/configure-work-classification


Route to queues 

Y 

Y 

Y 

In Routing Rules we can define conditions/rules which when matched, route the incoming work item to the queue. If no rules match fallback queue will be used.

https://learn.microsoft.com/en-us/dynamics365/customer-service/configure-route-to-queue-rules


Work distribution 

       

Auto-close after inactivity 

Y *

N 

N 

We can define the period in minutes (days), after which the inactive conversation will be moved to the closed state.

Work distribution mode 

Y 

Y 

Y 

Push or Pick as defined while creating the workstream. Cannot be edited.

Capacity 

Y 

Y 

Y 

Can be either Unit or Profile based

https://learn.microsoft.com/en-us/dynamics365/customer-service/capacity-profiles

https://learn.microsoft.com/en-us/dynamics365/customer-service/capacity-profiles?tabs=customerservicehub#multiple-capacity-profiles-in-a-single-workstream

Block capacity for wrap up 

Y 

Y 

Y 

By default – Always Block. We can specify Don’t block or from 1 minute to 60 minutes, the duration for which agent capacity is blocked while the conversation is in Wrap Up state.


If we select Don’t block, the agent’s capacity will be immediately released when Conversation moves to Wrap State.

Doesn’t apply i.e. capacity won’t reset for End of day capacity profile.


Allowed presences 

Y 

Y 

Y 

The presence values, which agent can be assigned. Out of the box we have Available, Busy, Busy – DND, Away.

We can also define custom presence – https://learn.microsoft.com/en-us/dynamics365/customer-service/presence-custom-presence


Default skill matching algorithm 

Y 

Y 

Y 

None, Exact Match, Closet Match.

Keep same agent for entire conversation

Y*

N 

N 

If we want the conversation to be assigned to the originally assigned agent when re-initiated after some time

https://learn.microsoft.com/en-us/dynamics365/customer-service/create-workstreams?tabs=customerserviceadmincenter#agent-affinity


Only available for Push type work distribution.

Bot (optional)

Y 

N

Y 

This option allows adding a bot to the workstream.

All incoming work items will be routed to the bot first.


Only available for Push type work distribution.

Advanced Settings 

       

Sessions

Y 

Y

Y 

We can use out of the box template defined or create our own session template to be used.

Within the session template, we can define

  • The mode of the Communication Panel – Docked, Hidden, Minimized.
  • The application is to be opened in the Anchor tab.
  • Additional tabs to be opened.

https://learn.microsoft.com/en-us/dynamics365/app-profile-manager/session-templates?tabs=customerserviceadmincenter


Agent Notifications

Y 

Y 

Y

We can use the out-of-the-box notification templates defined or can create our notification template.

https://learn.microsoft.com/en-us/dynamics365/app-profile-manager/notification-templates?tabs=customerserviceadmincenter#out-of-the-box-notification-templates


Context Variables

Y 

N 

Y 

We can define context variables of type Text or Number, which can be used in macros and agent scripts and can also be used in routing rules.

https://learn.microsoft.com/en-us/dynamics365/customer-service/manage-context-variables?tabs=customerserviceadmincenter

Smart assit bots

Y 

N 

Y 

We can configure Bot to provide smart assist suggestions to the agents.

Quick Replies

Y 

N 

N 

These are predefined messages, that agents can use to quickly respond to the customers.

https://learn.microsoft.com/en-us/dynamics365/customer-service/create-quick-replies

*not available for non-persistent chat.

In the next posts, we’d delve deeper into each of the options.

Hope it helps..

Advertisements

Workstreams Overview – part 1 – Dynamics 365 Customer Service / Omnichannel


Workstreams can be defined as records or settings, where we can set up the channel, and define routing rules, work distribution, and bots to route work items to the appropriate queue/agents.

Workstream can be of 3 different types – Messaging, Record, and Voice.

For Messaging we can specify the below channels – Apple messages for business, Chat, Custom, Facebook, Google’s Business Messages, LINE, SMS, Twitter, WeChat, and WhatsApp.

  • For Messaging Type as Channel, we can specify Work Distribution Mode as either Push or Pick.

We also need to specify a Fallback Queue, this Queue will be used if no matching queues are found based on the routing rules.

In the case of the Chat channel, we have the option of making chats persistent, so any new messages from the customer will be routed to the same queue and same agent if available or the next best agent.

For all other channel types, we have the same Work Distribution mode and Fallback queue option.

  • For the workstream type as Record, we can select the entities with queues enabled. The remaining option of work distribution mode and fallback queue remains the same.

For the record routing to work, we need to make sure Unified Routing is switched on in the environment.

And the entity is enabled for record routing.

  • For the workstream type as Voice, we have the voice channel selected as default and disabled.

The only difference is in the distribution mode, where we do not have the option of Pick.

In a nutshell –

Workstream Type 

Channel 

Additional Information 

Messaging 

Apple Message for Business, Chat, Custom, Facebook, Google’s Business Messages, LINE, Microsoft Teams, SMS, Twitter, WeChat, WhatsApp 

For Chat, we have an additional option to make chats persistent.

https://learn.microsoft.com/en-us/dynamics365/customer-service/persistent-chat

Push and Pick – Work distribution mode. 

Record 

Entities With Queue and Record Routing enabled

Push and Pick – Work distribution mode 

Voice 

Voice Call (default / disabled) 

Only Push distribution mode. 

In coming blog posts we’d delve deep into the workstreams configuration.

Hope it helps..

Advertisements

How to – Provision / Setup Omnichannel for Customer Service trial – Dynamics 365


In this post, we’d start by creating a trial of Dynamics 365 Customer
Service.

Navigate to – https://dynamics.microsoft.com/en-us/customer-service/overview/

And select Try for free

Enter your email details and follow the steps.

In a few mins, the trial will be ready.

Clicking on Launch Trial opens the Customer Service Workspace app.

Below are the other apps we can see installed as part of the Customer Service Trial, including the Omnichannel Admin Center and Omnichannel for Customer Service along with the Customer Service admin center app.


Opening the Omnichannel Admin Center app allows us to configure the Chat Demo.

In a few seconds, the demo will be configured.

Clicking on the Open agent app opens the Omnichannel  for Customer Service App.

Click on Let’s Chat! widget to start the chat.

Opening the Let’s Chat widget sends the notification to the agent as shown below.

Clicking on Accept in the notification starts a new session.

It also starts the conversation.

The agent can click on End or the customer can close the Chat Widget to end the conversation

The End button is grayed out and the customer gets the message as Agent has ended the conversation.

As we can see, we have the working Omnichannel trial environment ready for us to try out different channels/features, etc.

In Power Platform Admin Center, if we check inside Resources >> Dynamics 365 Apps for the Customer Service Trial we can see the Omnichannel Apps installed.

Interestingly if we navigate to Resources >> Dynamics 365 apps and check the Omnichannel for Customer Service app we see the status Not configured.

Clicking on the Manage option, opens the dialog box, informing us that it will navigate us to Dynamics 365 apps admin page.

In our case it kept us asking to sign in, instead of taking us to the admin page.

So next we tried Providing the data access consent as mentioned in the MS Docs.

https://learn.microsoft.com/en-us/dynamics365/customer-service/omnichannel-provision-license#provide-data-access-consent

For which we got the below error.

As it failed, we tried the same after assigning the Power BI (free) license to the admin user. (The user should also have Microsoft 365 Global Admin roles along with System Administrator in the env.)

https://learn.microsoft.com/en-us/dynamics365/customer-service/try-channels

https://learn.microsoft.com/en-us/dynamics365/customer-service/omnichannel-provision-license#prerequisites

And it worked this time.

This time clicking on Manage for the Omnichannel for Customer Service, took us to the Dynamics 365 Admin page.

Inside Dynamics 365 Administration Center we can manage the environments in which we want to install or remove the Omnichannel as well as different channels inside it.

From the Admin Center, we managed to upgrade the Omnichannel in the Customer Service Trial environment and also configure it in another sandbox environment.

Interestingly even after the update/setup was completed

the status of Omnichannel for Customer Service on the Dynamics 365 Page was “Not configured”, which could be some bug or something as mentioned in the MS Docs.

https://learn.microsoft.com/en-us/dynamics365/customer-service/omnichannel-provision-license#set-up-omnichannel-for-customer-service-

“You can safely ignore the status”

So in our case, when we had configured the Customer Service Trial, the Omnichannel was already configured in that environment as we saw earlier. We were mainly facing issues to access the Dynamics 365 Administration Center, which got resolved after assigning the Power BI License to the admin user followed by giving the required consent.

Kindly refer to the below links to learn about Omnichannel in in-depth

https://neilparkhurst.com/2022/08/11/omnichannel-for-customer-service-collection-2/

https://thecrm.ninja/omnichannel-for-dynamics-365/

https://www.youtube.com/watch?v=WM2JLGNPzT8

Hope this helps..

Advertisements

How to – Connect to Exchange Online to get mailbox details (PowerShell)


Recently we were trying to figure out a few details about the user’s mailbox.

To get the details –

Open Windows PowerShell with the “Run as Administrator” option.

  • Install the Exchange Online Module – Install-Module -Name ExchangeOnlineManagement
  • Import the Exchange Online Module cmdlets – Import-Module ExchangeOnlineManagement
  • Connect to Exchange Online using the administrator account – Connect-ExchangeOnline

  • To get a summary of the all mailboxes in the organization – Get-Mailbox -ResultSize unlimited

  • To get specific mailbox details – Get-Mailbox -Identity “user1@2022rw1.onmicrosoft.com”

  • To get the complete detail of a mailbox – Get-Mailbox -Identity user1@2022RW1.onmicrosoft.com | Format-List

Get all the details here – https://learn.microsoft.com/en-us/powershell/module/exchange/get-mailbox?view=exchange-ps

Hope it helps..

Advertisements