Solved – Disabled Turn on unified routing option in Dynamics 365 Customer Service Hub

Recently while trying to provision Unified Routing from Dynamics 365 Customer Service Hub in one of our trial environments (Service Management >> Service Configuration >> Unified Routing – Turn on unified routing.),

even after providing the consent multiple times (by clicking on Provide consent, with Global Admin role)

it kept coming as disabled and kept asking for providing the consent.

Opening in in-private browsing or a different browser didn’t fix it.

Clearing the cache also didn’t help – Empty Cache and Hard Reload

The trick that worked here was creating a workstream record

which also triggered the provision of Unified Routing 

And after our workstream record got created,

we could see the unified routing enabled successfully.

Hope it helps..


How to – Free up File Usage – Dataverse Storage Capacity (Dynamics 365 / CRM)

Recently we saw File usage for one of the environments reaching around 68 GB.

We managed to bring it down to around 10 GB or so by (Microsoft Support quickly helped us by sharing the required details here)

  • Deleting the System Job of Type Workflow with Status as Successful.
  • We ran Bulk Deletion Job to delete successful and suspended System Jobs.

     Settings >> Data Management >> Bulk Record Deletion

  • We can also delete attachments or emails or notes having attachments either through Advanced Find or Bulk Deletion job if not using them.
  • Uninstalled the Analytics Solution for Sales to delete the analytics data.

  • Disabled the Analytics / Insights for Customer Service Hub.

Customer Service Hub >> Service Management >> Insights (Settings)

Nicely explained here ––analytics-tables

Also, check

Hope it helps..


How to – Use SetAutoNumberSeed Action to reset/update the seed for the Autonumber attribute – DataVerse (Dynamics 365 / CRM)

Suppose we have the following Autonumber field created with

Seed value1000 and Format{SEQNUM:4}

Now based on a certain requirement, we want to dynamically / programmatically update / reset the seed value.

For this, we can make use SetAutoNumberSeed Action

Below we can see the auto number set as 1007 on creating a new contact record.

Now to set it back to 1000 we can run the following code –

On executing the action, we can see the next contact record having autonumber field set as 1000.

Another example –

On updating the value to 888, and creating a new contact record

Sample code –

                OrganizationRequest customActionRequest =
                    new OrganizationRequest("SetAutoNumberSeed");

                // name of the entity
                customActionRequest["EntityName"] = "contact";

                // attribute's schema name
                customActionRequest["AttributeName"] = "cr59f_myautonumber";

                // the value we want to set
                customActionRequest["Value"] = Convert.ToInt64(888);

                OrganizationResponse customActionResponse = 

Check other posts –

Hope it helps..


How to – Delete Audit data by entity / table, date, user access, and specify retention duration – updates in Dataverse (Dynamics 365 / CRM)

Recently we saw a new update in our sandbox environments with regards to Audits.

Login to Power Platform Admin Center, select an environment.

We can see a new section Auditing added.

Click on Delete logs allows us to –

  • Delete logs by Table

We can select the tables there.

  • Delete only access logs data.
  • Delete logs up to the selected date.

And now we can also manage or specify the retention duration for the audit log.

These are very useful updates to the Audit feature in the platform which more or less have been similar since CRM 3.0 days.

Check other posts on Audit –

How to – Use RetrieveAttributeChangeHistoryRequest to get audit data for an attribute (Dataverse/ Dynamics 365/ CRM) – Nishant Rana’s Weblog

Hope it helps..


How to – Set up Dynamics 365 Customer Insights Trial set up the trial of Customer Insights, open the Dynamics 365 Free Trial Page and scroll down to Dynamics 365 Customer Data Platform section

Click on Try for free

Sign in with your work account or the Dynamics 365 trial account created and click on Get Started

As a first step, it asks for specifying the region for the communication preferences.

For the trial, let us choose the Audience Insights option.

It opens the Demo environment having the sample data. We can explore and understand the features with the sample data or we can start a trial.

Let us select the option Start trial in the tool bar to connect it to an existing CRM / Dataverse Environment.

Enter the basic information requested. Make sure you have selected the correct region else you might get unable to create an environment error later.

The data storage option comes as disabled.

Specify the Dataverse / CRM environment’s URL. (here I am logged in with System Administrator user who is also the Global Admin)

Finally, review the information and click on Create.

This will configure a 30 day trial against the CRM / Dataverse environment.

Now we are ready to explore it further.

How to – Import Data from Dataverse / CRM to Dynamics 365 Customer Insights

How to – Import Data from local data files to Dynamics 365 Customer Insights

How to – Unify (Map, Match and Merge) Entities in Dynamics 365 Customer Insights

Hope it helps..


Using Custom Process Action with Code for integration – Dynamics 365 / Microsoft Dataverse

There are 2 ways to create a custom message in Dataverse, one is through action, and the other is through Custom API.

Check the post on Custom API

Custom Process Action vs Custom API –

With custom process action we can define business logic using a workflow, and we can extend it using either custom workflow activities or registering the plugin.

If we are just defining action just for the custom message and then using plugin/custom workflow activity for defining all the logic (and not using workflow), it is recommended to use the Custom API feature instead.

Here however we will have a look at the way we had implemented global custom action for integration with the external system for any inbound call to CRM.

Below is our sample custom global action with one input and output parameter.

For the output parameter, we are setting the value in the step.

Next, we have 2 plugin steps registered one on the pre-validation stage and the other on post-operation.

Pre-validation because we want to run the logic outside the transaction, perform validation, log exceptions, etc.

Pre-validation example –

Post-operation because action’s output parameter would only be available in the post-operation and used Shared Variable to pass the custom response from pre-validation plugin to post-operation.

On executing the action

We get the following plugin trace logs as expected.

One for pre-validation


Hope it helps..

%d bloggers like this: