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


Import from Excel / Import Wizard updates Record Created On (overriddencreatedon) – Dynamics 365

When we are creating new records and need the created on field to take the value provided instead of system generated, we can map it to the Record Created On field during Import from Excel option.

In fact in the Import Data Wizard also, although it doesn’t show the Record Created On field for mapping, we can map to Created On field and the behavior will be same. (and in the case of the Import from Excel in the Grid, we do not get the Created On field for mapping)

Below is the record we have created through Import Data Wizard, and we can see the values of Created on and Record Created On for it.

Read more –

Hope it helps..



Anonymous Visitor tracking behavior in Dynamics 365 Marketing

Suppose, we have the below page opened in the browser, which has an embedded marketing form in it.

Opening the marketing website record associated with the marketing form, we can see the anonymous visit being tracked.

Here the user had opened the page a couple of times.

Form Visits also have the corresponding details.

Form submission – No records right now as the form hasn’t been submitted by the visitor on the page.

Now let us submit the form

After the successful submission of the form which created the contact record, we can now see a new record added on the website visitors

as well as all the previous anonymous records also updated with the same contact.

Same for Form Visits

And as expected a new form submission record.

Now any future visit to the page gets tracked with the Contact created for that user.

In the contact record, also all the website visits get associated.

To read more about it –

To learn more about Dynamics 365 Marketing –

Hope it helps..

Fixed – change the owner of the Flow or Flow client error returned with the status code “Forbidden” and ConnectionAuthorizationFailed in Power Automate

Recently while trying to change the owner of the workflow we were getting the below error 

Flow client error returned with status code “Forbidden” and details “(“error”:X [“code”: “ConnectionAuthorizationFailed”, “message”: “The caller object id is ‘ffcdd1fc-2858-4019-9a96-19d73ae124c8″. Connection ‘providers/Microsoft.PowerApps/APIs/shared_commondataserviceforapps/connections/shared-commondataser-87229e07-1003-4e05-8172-fdaf112ceb98’ to ‘shared_commondataserviceforapps cannot be used to activate this flow, either because this is not a valid connection or because it is not a connection you have access permission for. Either replace the connection with a valid connection you can access or have the connection owner activate the flow, so the connection is shared with you in the context of this flow.”}}”.

Below are the steps we were following to change the owner of the cloud flow –

Select Edit for the flow, specify the owner and save.

In our case, the owner had left the organization and the user’s record was not available in the CRM. Finally, we managed to change the owner and fix the issue, by assigning the new owner to the corresponding modern flow record through the below steps – 

  • Open Advanced Find
  • Search for Process Type equals Modern Flow

  • Select the flow, click on the Assign Process button and specify the new owner.

This way we were able to change the owner without any error and got the flow working properly.

Hope it helps..


How to – Authenticate Domain in Dynamics 365 Marketing

Domain authentication is required for marketing email messages and for hosting the marketing form externally. Authentication of the email domain confirms that you have been approved by the organization to send messages on their behalf, this also increases the deliverability of the email. And in the case of an externally embedded form, domain authentication establishes that you own the domain, which is also required for the pre-filling of the form to work.

Best practices for email marketing

When Marketing is installed, we can see a default pre-authenticated domain (ending in – already added. We can use it for testing and demo purpose.

Here using Test send we are sending an email that uses the from address using the pre-authenticated default domain.

We can see the email received from marketing.

Now let us add a new domain record and authenticate/configure it for both External Form Hosting and Email Sending.

Navigate to Settings >> Email marketing >> Domains and create a new record.

Enter the domain name and check both the enable form hosting and email options.

If we uncheck Enable email sending, we will be only presented with the option of Verify ownership.

Click on Add will take us to the next screen having the TXT type DNS record/ownership key to be added to the DNS provider’s portal.

Clicking on Next will take us to the CNAME DNS records details, to be added to the DNS Zone

In the last step, we are again presented with all the DNS records to be placed in the DNS zone, along with the option to Verify or Save and Close the record for later verification.

Let us add these DNS records in our DNS Zone (here we are using Azure DNS Zone, the process would be similar in case of another DNS provider/ Site) and click on Verify.

Similarly, add the remaining DNS records.

With all the DNS records added, let us click on Verify-in Configure Domain wizard.

Here we can also Save and close the configure domain wizard and do the verification later by opening the record created.

On successful verification –

Here we have successfully configured the domain as shown by confirmed and verified status.

Read more about it here

Authenticate your domains

Real-time marketing domain authentication

And to learn more about Dynamics 365 Marketing  – 

Hope it helps..


How to – configure website tracking in Dynamics 365 Marketing

We can create a website record in Dynamics 365 Marketing to trace visitors to the website.

To setup Dynamics 365 Marketing (trial) –

Navigate to Outbound marketing >> Internet Marketing >> Marketing websites and create a new marketing website record.

Marketing will record closely grouped visits from a single browser as a single session. A new session will start after the timeout specified period of inactivity – 20 min is the default.

On saving the record, JavaScript Code and Form capture code is generated. The URL field and Description are for entering details for the website record for our use, it doesn’t affect the codes generated.

JavaScript code can be added to any page that we want to track. We can reuse the same code across multiple pages or can have different website records (code) for each page as per our requirements. JavaScript uses cookies for tracking, the users will remain anonymous till they register themselves through the landing page.

Form capture code is used when we want to integrate with a form created externally. We will look at it in later posts when we discuss marketing forms.

Below we have added the JavaScript code to one of the HTML pages inside Visual Studio.

Let us open the page in the browser.

Go to Insights >> Visits in the marketing website record, we can see the visits being tracked.

Now we have published the page in the Azure App Service, just to see what details are captured this time.

This time we can see it tracking the Page Address, unlike last time when we were running it locally.

If the user has registered through the landing page (through marketing form submission, which we’d cover in the next post), we will get more details about the visitor as shown below.

Within the overview section, we can get a few more details as shown below.

Hope it helps..

%d bloggers like this: