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.

https://nishantrana.me/2022/10/17/how-to-set-up-omnichannel-voice-using-azure-communication-service-acs/

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.

additionaltab

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

We got the below error while creating the Azure Event Subscription https://nishantrana.me/2022/12/15/fixed-deployment-has-failed-with-the-following-error-codewebhookaadappaccesscheckcategorymessageaccess-check-failed-for-webhook-aad-app-with-error-subscribers-client-user/

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 – https://triciasinclair.com/2022/04/25/setting-up-omnichannel-voice-using-azure-communication-service/

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

https://triciasinclair.com/2021/01/27/d365-customer-service-voice-channel/

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

Hope it helps..

Advertisements

Fixed – Value must be a data entity record error in Power Apps


We got the below error while trying to use the Relate function – “Value must be a data entity record”

 

 

 

 

 

As the error message clearly states and also if we see the syntax, the Relate function expects a record

Below was our formula for OnSelect, which was throwing the error

Here instead of passing the record, we were passing the table in the Relationship which was the reason for the error.

We changed it to store the ThisItem

And also updated the OnSelect

This fixed the issue for us.

Hope this helps..

Advertisements

Fixed – Custom Page not opening or Page doesn’t exist in this app error in the model-driven app (PowerApps)


Recently we created a custom page to be opened from the Ribbon / Command bar, however, the page was not opening for us, even though the function was running properly.

https://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/navigate-to-custom-page-examples

Here we had created the custom page from within the solution area, so we need to add this custom page to our model-driven app. (The other option is to create the page from the Modern App Designer.)

https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/add-page-to-model-app#create-or-edit-a-custom-page

Open the app in the Modern App Designer and click on Add Page

Select Use an exiting custom page, select the page and uncheck the Show in navigation option as we are opening this page from the form.

Publish the app.

This time clicking on Open Custom page command/button on the form successfully opened the custom page for us.

Thanks to Andrew (https://butenko.pro/) for the solution.

Hope it helps..

 

Advertisements

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,

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

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 https://aka.ms/essecurewebhook. 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 –

Success

Hope it helps..

Advertisements

Binding Choice / OptionSet (multiselect) with Combo box in Canvas Apps / Power Apps (DataVerse)


Instead of hardcoding Combo box , we can bind it to the Choice / Option Set field of Dynamics 365 / Dataverse.

Format – Choices(DataSource[@columnname])

Check out the post that explains it – https://debajmecrm.com/how-to-bind-a-multiselect-choice-of-dataverse-to-a-combobox-in-canvas-apps/

Also check out – how to bind and do filter on multiselect combo box – https://youtu.be/5dSk5iOgT68?t=286

To learn about all the properties of Combo box refer – https://www.spguides.com/powerapps-combobox-control/

Hope it helps..

Advertisements

Fix- Multiple levels of many-to-one relationship expansion aren’t supported in PowerApps


We would get this error while trying to get the value of a related entity (lookup) through a related entity (lookup) in the current record using the incorrect formula.

For e.g. here Region is a lookup in the Village, which in turn is a lookup in the Product record (ThisItem).

The solution here is to use the LookUp function

Before

After

ThisItem.Village.Region.Name

LookUp(Villages, Village = ThisItem.Village.Village).Region.Name

 

Search the Villages table, using the GUID of the Village, and fetch the name of the region lookup field in it.

Hope it helps..

Advertisements