Transitioning from Unmanaged to Managed Solution (Dynamics 365 / Dataverse)


Microsoft has always recommended managed solution(s), apart from the some of benefits that managed solutions offer over unmanaged, Microsoft is also adding features to the managed solution, making it easy for teams to adopt and transition to Managed solutions, like focusing on making the solution import faster and adding ALM-specific features to it.

Let us take a simple example to see it working –

Suppose we have 2 environments, a Test and a Managed environment.

The test environment has 2 unmanaged solutions from different publisher that is already deployed to the target environment as unmanaged.

Source

Target

Ideally, we should be creating 2 copies of production environments, one for creating the new unmanaged solution (s) containing the components to be converted to managed and the other environment where the unmanaged solution (s) will be converted to managed and will be used for testing and validation.

Ref – Dynamics 365 FastTrack Architecture Insights – ALM Transitioning from Unmanaged to Managed Solutions

https://learn.microsoft.com/en-us/shows/dynamics-365-fasttrack-architecture-insights/alm-transitioning-from-unmanaged-to-managed-solutions

Now let us create a new unmanaged solution in the source environment that will combine the components we have in Pub 1 and Pub 2 unmanaged solutions.

Here we can use the wonderful XrmToolBox plugin – Solutions Components Mover.

https://prajapatiamit.medium.com/move-the-components-between-customization-solutions-in-d365-customer-engagement-crm-solution-8f17a1fafb2b

Select source solutions and the target solution (combined) in our case, and click on Copy Components.

Here we have selected all the component types.

Back in our TestEnv, we can see the components of the solution added from Pub 1 and Pub 2 solutions to the combined solution.

Let us export the combined solution as managed.

The other way to create the combined solution would be to “Include all objects” for unmanaged components like custom tables. For managed components, like out-of-the-box tables lead, contact, case, etc, we’d only select the components customized.

Run the below command, to connect to the destination (managedenv) environment.

https://learn.microsoft.com/en-us/power-platform/developer/cli/reference/auth#pac-auth-create

Run the below command, to convert the unmanaged solution to managed.

https://learn.microsoft.com/en-us/power-platform/developer/cli/reference/solution#–convert-to-managed–cm

We can see the managed solution imported successfully to our target environment.

For quick reference –

Unmanaged

Managed

Unmanaged solutions are intended to be used in the development environment.

Managed solutions are intended to be distributed and installed.

Unmanaged solutions can be exported either as managed or unmanaged.

Managed solutions cannot be exported

Components can be directly edited within an unmanaged solution.

Components inside the managed solutions cannot be edited directly. Editing can only be done in the corresponding unmanaged solution or an additional unmanaged solution in dev and then exported and imported as managed in the target environment.

The unmanaged solution can be seen as the source code

A managed solution can be seen as a compiled code.

Deleting an unmanaged solution only deletes the solution container, all unmanaged customizations remain in effect and are applied to the default solution of the environment

Deleting a managed solution removes the customizations from the environment.

   

Benefits

Benefits

Unmanaged solutions allow for real-time customization directly within the environment.

The managed solution secures the solution components in the environment, by restricting the user from making changes or removing components from it.

Developers can make changes on the fly without the need for importing/exporting solutions

Ability to uninstall/roll back. In case of issues or undesired changes, managed solutions make it easier to roll back to a previous version. This can be crucial for maintaining system stability and ensuring minimal disruption to ongoing operations

 

The managed solution supports layering allowing multiple solutions to be installed simultaneously without conflicts.

 

Clearly defined component ownership in the case of multiple publishers/solutions.

 

Improved solution import performance with reduced performance impact on the environment.

Check the below links for more details

https://learn.microsoft.com/en-us/shows/dynamics-365-fasttrack-architecture-insights/alm-transitioning-from-unmanaged-to-managed-solutions

https://learn.microsoft.com/en-us/power-platform/alm/move-from-unmanaged-managed-alm#convert-an-unmanaged-solution-to-managed

Hope it helps..

Advertisements

Enable Copilot in Customer Service and Custom Apps (Dynamics 365)


Copilot (preview) for Dynamics 365 Customer Service provides the following features –

  • Case Summary
  • Conversation Summary
  • Ask a question
  • Write an email
  • Draft a chat response.

To enable it, navgiate to Customer Service Admin Center >> Agent Experience >> Productivity >> Manage (Copilot help pane and Summaries)

Check the required Copilot help pane settings and save.

Similarly for Summaries

For geographies outside the United States, to enable the Copilot features for Customer Service, we need to send an email to d365_csaipreview@microsoft.com with the Organization ID to enable the preview.

We can get the Organization ID from the Power Platform admin center for the environment.

As our environment was in the Australia region, we followed the same and within the next day, we got a response from Microsoft that it had been enabled in our Environment.

https://learn.microsoft.com/en-us/dynamics365/customer-service/administer/configure-copilot-features?WT.mc_id=DX-MVP-5002876#enable-public-preview-for-geographies-outside-of-united-states

As per the email, the next step is to Enable copilots and generative AI features outside the US and Switzerland, for this again open the environment in the Power Platform admin center, and select Edit for Generative AI Features.

Check the Move data across regions option and enable it. (We need Global Admin or Power Platform admin role to enable it)

Once we have followed the above steps it adds the Copilot help pane in the Customer Service Hub app.

Similarly, for the Customer Service Workspace app, we can manage it in the corresponding Agent Experience profile.

Navigate to the Agent Experience >> Workspaces >> Manage (Agent Experience profiles)

We can see the Copilot AI features section (below is the out-the-box Customer Service workspace – default profile), we can accordingly update the corresponding agent experience profile(s) records configured/used for the agents.

Below we can see the Copilot help pane in the Customer Service workspace app.

Similarly to enable Copliot for custom model-driven app.

Add the Settings >> Customer Service Copilot Enabled

Set the value as Yes for the corresponding App and save the changes.

Below we can see copilot enabled for our custom Test model-driven app app

Get all the details here

Hope it helps.

Advertisements

How to- Enable Microsoft Team chats in Dynamics 365 Apps


Enabling Microsoft Team chats inside Dynamics 365 allows the agents/sellers to start a new chat from a record or connect an existing chat to a record from within the application itself.

We can enable it from the Power Platform Admin Center or the corresponding Sales, Customer Service, Marketing, and Field Service applications.

Inside Power Platform Admin Center – Navigate to Environment >> Setting >> Team Integration Settings

We can either enable it for all the Dynamics 365 Apps or specify the apps.

Here we have specified the Customer Service Hub and Sales Hub.


We also have the option to specify the record types for Teams chats.

Let us open a contact record inside Sales Hub to see it in action.

We can see 2 sections on the Team chats pane, Chats connected to the record and Other chats.

As we have not connected chat currently, we see the option New connected chat to connect the record to the team chat.

The Other chats section lists the top 200 chat conversations on the Team, from where we can select any conversation to connect it to the record.

Clicking on the New connected chat allows us to search the Participants whom we want to chat with, update the chat name (suggested), and include a note as well.

It also suggests the participant (as the record is owned by a user, it will suggest the name of the record’s owner)

More on the record suggestions.

We can also select a user from the Other chat section, and select the Start a connected chat option, which populates the participant.

We can also have multiple participants added.

Add the required details and click on the Start chat

We can see the chat window opening with the participant selected and details / message added.

We can also connect other chats to that record using the Connect to this record option.

We can also disconnect the chat using the Disconnect form this record option.

Similarly, we can also start a regular chat (not associated with any record) using the compose icon in the Teams Chat panel.

This opens the New chat window as shown below.

As we saw earlier, we can use the + Add record types option to add more record types to connect to Teams Chats. (including custom table)

For each record type added, we get the following settings.

Here we can specify who can join and disconnect the chat.

We can also specify if the record’s title can be used for the Chat name, should the note be included or not, and which view fields to be considered for the Message.

Get all the details here.

Hope it helps..

Advertisements

Use tag parameter to add a shared variable to the plugin – Dataverse / Dynamics 365


We can use the tag parameter in the request to pass any additional information to the plugin. This is added as a shared variable to the plugin execution context.

Below we are creating a lead record and passing the tag parameter in the CreateRequest

And below is our plugin, that gets the tag parameter passed from the shared variable collection.

We can see the value of the tag parameter in the trace log.

Below is an example of where we are passing it in UpdateRequest

The trace log –

Also, the tag parameter is immutable, once set from the API, its value cannot be changed.

Below we had the same plugin registered in pre and post-operation, and we were getting the same value for the tag passed during the create request.

As per the Microsoft documentation, we can use this field to pass any additional details from the client application, that we can use to apply specific logic in the plugin.

Get more details here

Refer to for more details

Hope it helps..

Advertisements

Preferred Solution (preview) in Dataverse / Dynamics 365


With the preferred solution (preview), now we can specify a solution to which all our changes, that are made outside of the context of the unmanaged solution, should get automatically added.

To enable it, navigate to Settings >> Features >> Preferred solution (Preview)

Inside the Maker Portal, now we can see a new section added, asking us to specify the preferred solution, and we can see Common Data Services Default solution set as the preferred solution as default.

We can click on Manage to specify any of the existing unmanaged solutions as the preferred solution or to create a new solution.

Here we have set one of the solutions as the preferred solution.

Now let us add an update existing table outside the context of the solution. Here we are updating its form by rearranging some of the fields in it.

We have moved the Fax field to be the last field in that General Information section and have published the changes.

Back in our preferred solution, we can see the form we updated, automatically added.

Similarly, any other changes, i.e. any solution components added or updated, outside the context of the unmanaged solution, will be added to the preferred solution. (apart from changing the Default Solution where all the solution components reside).

Also, other users/makers can specify their preferred solution.

To add the cloud flows or canvas apps, created outside the context of the solution, in the preferred solution, we can enable the below features.

Here we have created this sample flow from outside the solution and also a canvas app.

We can see them added to our preferred solution.

Get all the details here

Hope it helps..

Advertisements

How to – Connect Dynamics 365 records and views to Microsoft Team channels – Dynamics 365


To enable the feature that allows linking existing Dynamics 365 records and views to a Team channel,

we need select the environment and navigate to Settings >> Team Integration Settings

Select Yes for the “Turn on the linking of Dynamics 365 records to Microsoft Teams channels” and save it.

Now back in Microsoft Teams, from a team channel, select the Add (+) option

Select Dynamics 365

Specify the environment, and the corresponding Dynamcis 365 Apps in it.

Check Rememer this preference and click on Select.

Next, we get the option to search and filter for a record to link to.

Here we have selected the contact Nancy Anderson record, click on Save.

We can see the selected contact record pinned.

We also get the below options for the record tab added.


Similarly, if we want to link to a view, we can select the table and then its corresponding view to select and click on Save.

We can see the selected view added.

Also for both records and views pinned, we get the option of starting the conversation.

Clicking in Start conversation adds the below message with the link to the tab where the view or the record has been added or linked.

Get all the details here

Hope it helps..

Advertisements