How to – add Contact Insights / Account Insights to the form – Dynamics 365 Marketing


We can see the Account Insights / Contact Insights tab added along with LinkedIn Lead Info on the default lead form (as well as contact/account) after we install Dynamics 365 Marketing.

These tabs will be added if you try creating a new form (Main).

But if we have other existing forms (Main), these tabs won’t be added and won’t be available for us to add.

In that case, we need to edit the Form XML to add these sections.

Here we will be adding the Contact Insights tab to one of the existing forms to the Lead.

Using the Form XML Manager (XrmToolBox plugin – developed by my friend Rasheed), get the Form XML of the form where we have the contact insights tab added.

Copy the below details –

Tab – Contact Insights

And the below controlDescription

Going back to Form XML Manager, select the form where we want to add the contact insight tab, get its Form XML and add the above details and publish.

We can see the Contact Insights tab added

Similarly, we can Account Insights, and the LinkedIn Lead Info tab as well.

Hope it helps..

	<tab name="contactInsights" id="{AC28F8C9-4498-47C7-8D9B-2FE028CFBDAC}" IsUserDefined="0" locklevel="0" showlabel="true" expanded="true" labelid="{6905336d-985b-4137-a106-31b1dd4e1560}">
			<labels>
				<label description="Contact insights" languagecode="1033" />
			</labels>
			<columns>
				<column width="100%">
					<sections>
						<section name="insights_section" showlabel="false" showbar="false" locklevel="0" id="{2328D81F-CA70-4A20-8B62-DA36756DA7D8}" IsUserDefined="0" layout="varwidth" columns="1" labelwidth="115" celllabelalignment="Left" celllabelposition="Left" labelid="{29474d06-89ea-41ad-a999-9d96dd95c938}">
							<labels>
								<label description="Insights" languagecode="1033" />
							</labels>
							<rows>
								<row>
									<cell rowspan="1" id="{37367a00-f45e-4ae4-a4a4-5ba1023fdc11}" colspan="1" labelid="{e971ab6b-ea22-4543-bbd5-06e50f11f9f1}">
										<labels>
											<label description="" languagecode="1033" />
										</labels>
										<control id="msdynmkt-lead-insights-banner-control" classid="{F9A8A302-114E-466A-B582-6771B2AE0D92}" disabled="false" uniqueid="{B93040CC-F97E-48D8-8166-5179C8C942CE}" isunbound="true">
											<parameters />
										</control>
									</cell>
								</row>
								<row>
									<cell id="{58B703D6-BBA5-4078-9499-1D5A1FB35932}" showlabel="false" locklevel="0" labelid="{db0b8895-c098-45e5-b95f-f85df882f96d}">
										<labels>
											<label description="Insights" languagecode="1033" />
										</labels>
										<control id="LeadContactInsightsCtrl" classid="{F9A8A302-114E-466A-B582-6771B2AE0D92}" datafieldname="msdyncrm_insights_placeholder" disabled="false" uniqueid="{ADB58B3F-E8A8-432B-BF8C-08196D8F87ED}" />
									</cell>
								</row>
							</rows>
						</section>
					</sections>
				</column>
			</columns>
		</tab>
	<controlDescription forControl="{ADB58B3F-E8A8-432B-BF8C-08196D8F87ED}">
			<customControl formFactor="0" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadContactInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="1" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadContactInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="2" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadContactInsights</configuration>
				</parameters>
			</customControl>
		</controlDescription>
		<controlDescription forControl="{48D797ED-2F85-4D89-A329-69C2A1A0E1DD}">
			<customControl formFactor="0" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadAccountInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="1" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadAccountInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="2" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadAccountInsights</configuration>
				</parameters>
			</customControl>
		</controlDescription>
		<controlDescription forControl="{B93040CC-F97E-48D8-8166-5179C8C942CE}">
			<customControl formFactor="0" name="CxpOrchestrationAnalytics.InsightsBannerControl.InsightsBannerControl">
				<parameters />
			</customControl>
			<customControl formFactor="1" name="CxpOrchestrationAnalytics.InsightsBannerControl.InsightsBannerControl">
				<parameters />
			</customControl>
			<customControl formFactor="2" name="CxpOrchestrationAnalytics.InsightsBannerControl.InsightsBannerControl">
				<parameters />
			</customControl>
		</controlDescription>
	</controlDescriptions>
Advertisements

Key points – Copying environment in Dynamics 365 Marketing


Few key points for quick reference, if we plan to copy Dynamics 365 Marketing environment.

You could find all the details here –

https://learn.microsoft.com/en-us/dynamics365/marketing/manage-marketing-environments

Copy procedure will –

  • Delete the target environment
  • Uninstall the Dynamics 365 Marketing on the target environment (if the target environment already has the marketing license it will take over the same license).
  • Delete all the interactions records – email clicks, website visits, etc. and images used in Email and Marketing Pages (they need to be backed up in separate storage, the marketing environment backup will not have that data as it is managed separately / differently by Marketing Service including Marketing Insight Service).

After Copy

  • We need to re-run the Marketing Setup as the email sending and insights services will not work.
  • The marketing setup will create a new set of marketing services, therefore new interaction data will be created.
  • We need to again Authenticate Domain and update the DNS records.
  • Images used in Email and Marketing pages in Source Environment will have to be uploaded again in the Target Environment, else they will keep referring to the images hosted in the source environment.
  • All the emails, customer journeys, lead-score records, and more will be in the draft stage after copy, they need to be updated to the go-live status in the target environment.
  • All real-time journeys will be in the stopped stage, to restart them the journey must be duplicated before it can be executed.
  • In case Power App portals are being used, they need to reset first in the target environment to release the license and need to be configured again after copy

Also,

We can use the Configuration Migration Utility to move data between environments – marketing pages, journeys, emails, etc.

Interaction data cannot be to transferred to the target environment.

Solution export and import procedure can be used to move the customizations between different environments.

For extracting marketing interactions – https://community.dynamics.com/365/dynamics-365-fasttrack/b/dynamics-365-fasttrack-blog/posts/extracting-marketing-interactions-in-dynamics-365-marketing

Below is our marketing app showing configured before copy –

and after copying the environment, as expected, shows Not configured.

On trying to re-run the marketing setup we got the below error –

Click on Retry starts the uninstall process

We had to raise the Microsoft Support which eventually fixed the issue at their end with the help of Product Group team.

Hope it helps..

Advertisements

Fixed – The reference assemblies for. NETFramework,Version=v4.6.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application


Recently while trying to use the Power Platform Toolshttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/tools/devtools-install , got the below error in Visual Studio 2019. (not supported for VS 2022)


To fix it either you can, open Visual Studio Installer and select Modify and select the appropriate developer pack.



Or as specified in the error message, open https://aka.ms/msbuild/developerpacks, and download the appropriate Developer pack from there.


This fixed the issue –


Hope it helps..

Advertisements

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

How to – use Associate Entities and Disassociate Entities Event in Audit to check Security Roles changes in Dynamics 365


Let us assign the System Customizer role to the user John Denver save it and then remove the same.

Let us check the Audit records generated for it.

We can see 2 records with event Associate Entities and Disassociate Entities with security role name – System Customizer created in the Audit Summary View as shown below.

Here the entity will be Security Role.

Let us assign 2 more roles to the user.

As expected we can see 2 records, with event Associate Entities.

Now let us see what happens when we update the Business Unit of the user. If you remember, assigning a new business unit removes all the existing security roles of the user.

Well this can be controlled now through DoNotRemoveRolesOnChangeBusinessUnit
setting – https://nishantrana.me/2022/01/05/how-to-change-users-business-unit-without-removing-the-security-roles-in-dynamics-365-powerapps-enableownershipacrossbusinessunits-setting/

Here we have changed the business unit of user 2, he had salesperson, system administrator, and system customizer roles assigned.

We can see the business unit change is recorded.

From Audit History of the user record – we can check all the Associate Entities and Disassociate Entities record that will give us the details of the previous Security Roles user was having before the Business Unit change.

sr

 

Other related Audit articles –

Hope it helps..

Advertisements

How to – Add users to the Queue – using Manage NN relationships XrmToolBox Plugin and AddPrincipalToQueueRequest (Dynamics 365)


Recently we implemented Unified Routing for one of our projects, and as part of testing we were supposed to add multiple users to different queues (advanced queues in case of unified routing).

So we were looking for a way to do this either through any existing tool or programmatically.

Well, using the Manage NN relationships XrmToolBox plugin we can add users to the queue.  (Thanks to Prashant for suggesting this)

Just as an example, we want to add the below users

to the following Queue named Test, which currently has only one user added to it.

Below is the sample CSV file we have created having the name of the Queue and the email id of the users to be added.

Now let us open the Manage NN relationships tool and specify the appropriate values there.

Here we have specified the First Entity as Queue and the Second Entity as System User.

For Queue we have selected Name and for System User, we have specified Primary Email as the attribute to be considered while importing the data.

Click on Browse and load the file, followed by a click on the Import button to start the process.

As we have received the Success result, let us refresh our Queue to see if the users were added to the Queue or not.

As expected we can see the users added to the Test Queue.

We can also add users programmatically by using the AddPrincipalToQueue Request class.

We need to populate the Principal and QueueId property as shown below.

More on AddPrincipalToQueueRequest.

Hope it helps..

Advertisements