Migrate configurations for channels using solutions

Note

The feature availability information is as follows.

Dynamics 365 Contact Center—embedded Dynamics 365 Contact Center—standalone Dynamics 365 Customer Service
Yes Yes Yes

Use solutions and the Configuration Migration tool to migrate the configurations from the source environment to the target environment for channels.

For information on how to use solutions or the Configuration Migration tool, see Overview of tools and apps used for ALM in Power Platform.

Prerequisites

The following prerequisites must be met:

  • Make sure that the user who performs the channel configuration migration has the following privileges:
    • To export solutions from the source environment
    • To import solutions to the destination environment
    • Read permission on all tables migrated from the source environment using Configuration Migration tool.
    • Full permission on all tables migrated to the destination environment using Configuration Migration tool.
  • In the source environment, if any table or column refers to the following, then make sure that they exist in the target environment before you proceed with the migration:
    • Custom tables (entities)
    • Columns (attributes)
    • Relationships
    • Choices (option sets)
    • Lookup values

Important

The migration of the account, channel provider, bot configuration, and AI and analytics settings is not in scope.

Channel configuration migration steps

You must perform the steps in the order they're listed to migrate your configuration data successfully:

  1. Migrate configuration for session templates and notification templates
  2. Migrate configuration for skill-based routing rulesets
  3. Migrate configuration for new capacity profiles
  4. Migrate configuration for queues
  5. Migrate configuration for channel workstreams and channel settings
  6. Verify your migration

Migrate configuration for session templates and notification templates

If you use custom session templates and notifications in your channel routing setup, perform the steps outlined in Migrate configuration for session templates and notification templates.

Migrate configuration for skill-based routing rulesets

If skill-based routing rulesets are used in your channel routing setup, perform the steps outlined in Migrate configurations for skill-based routing rulesets. Make sure to adjust any filtering FetchXML appropriately for the channels you want to migrate.

Migrate configuration for new capacity profiles

If you have configured new capacity profiles in your channel routing setup, perform the steps outlined in Export and import data for capacity profiles. Make sure to adjust any filtering FetchXML appropriately for all channels.

Tip

After you migrate a new capacity profile using Configuration Migration tool, updates can be migrated using solutions.

Migrate configuration for queues

For migrating channel queues, perform the steps outlined in Migrate configuration for queues. Make sure to adjust any filtering FetchXML appropriately for all channels you want to migrate.

Migrate configuration for channel workstreams and channel settings

  1. Create a solution to export configurations from the source environment for all workstreams and the channels that can be migrated via solution.

  2. Add the required records to the solution using the Add existing button in the command bar and selecting the starting table for each channel you need to export, as follows:

    Channel Starting table
    Live Chat Chat widget (msdyn_livechatconfig)
    Voice Voice channel setting (msdyn_ocvoicechannelsetting)
    SMS SMS number settings (msdyn_ocsmschannelsetting)
    WhatsApp WhatsApp number (msdyn_ocwhatsappchannelnumber)
    WeChat WeChat account (msdyn_ocwechatchannelconfig)
    Apple Messages for Business Apple messages for business account (msdyn_ocapplebusinessaccount)
    Facebook Work stream (msdyn_liveworkstream)
    Google Business Messages Work stream (msdyn_liveworkstream)
    LINE Work stream (msdyn_liveworkstream)
    Microsoft Teams Work stream (msdyn_liveworkstream)
    Custom channel Work stream (msdyn_liveworkstream)
  3. Select the records from channel definition table for each channel and add them to the solution. Related records from the following tables are automatically added to the solution:

    Channel Tables automatically added to solution
    All channels Work stream (msdyn_liveworkstream)
    Capacity profile (msdyn_capacityprofile) – new records must be migrated using Configuration Migration tool
    Work stream capacity profile (msdyn_liveworkstreamcapacityprofile)
    Context variable (msdyn_ocliveworkstreamcontextvariable)
    Decision contract (msdyn_decisioncontract)
    Decision rule set (msdyn_decisionruleset)
    Routing configuration (msdyn_routingconfiguration)
    Routing configuration step (msdyn_routingconfigurationstep)
    Language (msdyn_oclanguage) – except voice and custom channel
    Live chat Chat widget (msdyn_livechatconfig)
    Authentication settings (msdyn_authenticationsettings)
    Survey Answer Option (msdyn_chatansweroption)
    Survey Question (msdyn_surveyquestion)
    Survey Question Sequence (msdyn_questionsequence)
    Geo Location Provider (msdyn_oc_geolocationprovider)
    Operating Hour (msdyn_operatinghour)
    Voice Voice channel setting (msdyn_ocvoicechannelsetting)
    Authentication settings (msdyn_authenticationsettings)
    Voice (msdyn_ocvoice)
    Voice channel language setting (msdyn_ocvoicechannellanguagesetting)
    Phone Number (msdyn_ocphonenumber)
    Communication Provider Setting (msdyn_occommunicationprovidersetting)
    Carrier (msdyn_occarrier)
    Phone music (msdyn_ocphonemusic)
    Operating Hour (msdyn_operatinghour)
    SMS SMS number settings (msdyn_ocsmschannelsetting)
    Phone Number (msdyn_ocphonenumber)
    Communication Provider Setting (msdyn_occommunicationprovidersetting)
    Carrier (msdyn_occarrier)
    Operating Hour (msdyn_operatinghour)
    WhatsApp WhatsApp account (msdyn_ocwhatsappchannelaccount)
    WhatsApp number (msdyn_ocwhatsappchannelnumber)
    WeChat WeChat account (msdyn_ocwechatchannelconfig)
    Apple Messages for Business Apple messages for business account (msdyn_ocapplebusinessaccount)

    Important

    • Carefully review solution components before exporting a solution. Note the records that contain information regarding Azure Communication Services, third-party channels, or other Microsoft components like Copilot Studio copilots or Customer Voice surveys, so that you can make required configurations in the destination environment.
    • If one or more workstreams share the same capacity profile, when you add tables from one channel or workstream, records and tables from other channels or workstreams sharing the same capacity profile are also added to the solution.
  4. Use the Configuration Migration tool to create the schema and migrate the remaining configuration data from the source environment (organization) for workstreams and channels.

    • Entity display name: When you create the schema, select the tables (entities) from the list in the same sequence as mentioned in the following table.
    • Attribute display name: We recommend that you select the columns (attributes) defined in the table. You don't need to select the out-of-the-box system defined columns like Created By, Created On, Modified By, Modified On, and Owner. You can select custom columns, if necessary.
    • Use FetchXML to filter records: For each selected table, use the appropriate FetchXML query that's mentioned in the following table to get single, multiple, or all records based on your requirement. For single or multiple rows, you need to use source environment to get the correct name in uiname and GUID in value. If required, you can use the ADVANCED FIND menu item to construct the appropriate FetchXML query.
    • Configure import settings: For the workstream table, make sure that you add the key columns only and select the Do not update existing records checkbox to prevent updates to records in a table migrated through solutions.

    Important

    For Facebook Page, Google’s Business Messages agent account, LINE account, Custom messaging channel, and Microsoft Teams account tables, don't include Survey (msdyn_postconversationsurvey) and Survey (msdyn_postconversationsurveyseparatebotsurvey) columns because survey records are synced with Dynamics 365 Customer Voice in each environment, so they can’t be migrated across environments.

    Channels Entity display name (Logical name) Attribute display name (Logical name) Use FetchXML to filter records
    All channels Workstream (msdyn_liveworkstream)
    • Channel (msdyn_streamsource)
    • Mode (msdyn_mode)
    • Name (msdyn_name)
    • Work Stream (msdyn_liveworkstreamid)
    Sample 1: All workstreams of a channel

    Sample 2: Single workstream

    Sample 3: Multiple workstreams
    All messaging channels Quick Reply (msdyn_cannedmessage)
    • Locale (msdyn_locale_field)
    • Message (msdyn_message)
    • Quick reply (msdyn_cannedmessageid)
    • TagsControlField (msdyn_tagscontrolfield)
    • Title (msdyn_title)
    Sample 1: All workstreams of a channel

    Sample 2: Single workstream

    Sample 3: Multiple workstreams
    All messaging channels Tag (msdyn_octag)
    • Name (msdyn_name)
    • Tag (msdyn_octagid)
    Sample 1: All workstreams of a channel

    Sample 2: Single workstream

    Sample 3: Multiple workstreams
    All channels Message (msdyn_ocsystemmessage)
    • Channel (msdyn_streamsource)
    • Default language (msdyn_defaultlanguage)
    • Instance ID (msdyn_instanceid)
    • Message (msdyn_ocsystemmessageid)
    • Message description (msdyn_messagedescription)
    • Message recipient (msdyn_messagereceiver)
    • Message template trigger (msdyn_messagetemplatetrigger)
    • Message Text (msdyn_messagetext)
    • Message trigger (msdyn_systemmessageeventtype)
    • Message type (msdyn_messagetype)
    • Name (msdyn_name)
    • Widget (msdyn_widgetid)
    All channels Localization (msdyn_oclocalizationdata)
    • Automated message (msdyn_systemmessageid)
    • Default Localized Text (msdyn_defaultlocalizedtext)
    • Entity Column Name (msdyn_entitycolumnname)
    • Entity Name (msdyn_entityname)
    • Entity Record ID (msdyn_entityrecordid)
    • Is default (msdyn_isdefault)
    • Language code (msdyn_customerlanguageid)
    • Language Code (msdyn_languagecode)
    • Localization (msdyn_oclocalizationdataid)
    • Localized text (msdyn_localizedtext)
    FetchXML to filter records for channel localizations
    Facebook Facebook Application (msdyn_ocfbapplication)
    • Application Id (msdyn_fbapplicationid)
    • Application Secret (msdyn_fbapplicationsecret)
    • Callback Uri (msdyn_fbcallbackuri)
    • Facebook Application (msdyn_ocfbapplicationid)
    • Name (msdyn_name)
    • Verify Token (msdyn_fbverifytoken)
    FetchXML to filter records for Facebook applications
    Facebook Facebook Page (msdyn_ocfbpage)
    • Bot Survey (msdyn_postconversationsurveybotsurvey)
    • Enable (msdyn_postconversationsurveyenable)
    • Enable file attachments for agents (msdyn_enablefileattachmentforagents)
    • Enable file attachments for customers (msdyn_enablefileattachmentforcustomers)
    • Facebook Application (msdyn_ocfbapplicationid)
    • Facebook Page (msdyn_ocfbpageid)
    • Facebook page language (msdyn_ocwidgetlanguage)
    • Message (msdyn_postconversationsurveybotsurveymessagetext)
    • Message (msdyn_postconversationsurveymessagetext)
    • Name (msdyn_fbpagename)
    • Page Access Token (msdyn_fbpageaccesstoken)
    • Page Id (msdyn_fbpageid)
    • Survey Mode (msdyn_postconversationsurveybotsurveymode)
    • Survey Mode (msdyn_postconversationsurveymode)
    • Turn on your Facebook human agent message tag (msdyn_enablehumanagenttag)
    • Work stream (msdyn_liveworkstreamid)
    FetchXML to filter records for Facebook pages
    Google Business Messages Google's Business Messages partner account (msdyn_ocgooglebusinessmessagespartneraccount)
    • Base 64 credential file string (msdyn_base64credentialfilestring)
    • Base 64 credential file string - Continued (msdyn_base64credentialfilestringcontd)
    • Credential file name (msdyn_credentialfilename)
    • Google’s Business Messages callback URL (msdyn_googlebusinessmessagescallbackurl)
    • Google’s Business Messages partner account ID (msdyn_ocgooglebusinessmessagespartneraccountid)
    • Name (msdyn_name)
    • Partner account client token (msdyn_partneraccountclienttoken)
    • Partner account ID (msdyn_partneraccountid)
    FetchXML to filter records for Google's Business Messages partner accounts
    Google Business Messages Google's Business Messages agent account (msdyn_ocgooglebusinessmessagesagentaccount)
    • Agent account client token (msdyn_agentaccountclienttoken)
    • Agent ID (msdyn_agentid)
    • Bot Survey (msdyn_postconversationsurveybotsurvey)
    • Brand ID (msdyn_brandid)
    • Enable agent override (msdyn_enableagentoverride)
    • Enable file attachments for agents (msdyn_enablefileattachmentforagents)
    • Enable file attachments for customers (msdyn_enablefileattachmentforcustomers)
    • Google’s Business Messages agent account (msdyn_googlebusinessmessagesagentaccountid)
    • Google’s Business Messages callback URL (msdyn_googlebusinessmessagescallbackurl)
    • Google’s Business Messages partner account ID (msdyn_ocgbmpartneraccount)
    • Live workstream ID (msdyn_liveworkstreamid)
    • Message (msdyn_postconversationsurveybotsurveymessagetext)
    • Name (msdyn_name)
    • Post conversation survey enable (msdyn_postconversationsurveyenable)
    • Post conversation summary message text (msdyn_postconversationsurveymessagetext)
    • Post conversation survey mode (msdyn_postconversationsurveymode)
    • Survey Mode (msdyn_postconversationsurveybotsurveymode)
    • Widget language (msdyn_ocwidgetlanguage)
    FetchXML to filter records for Google's Business Messages agent accounts
    LINE LINE account (msdyn_oclinechannelconfig)
    • Bot Survey (msdyn_postconversationsurveybotsurvey)
    • Channel Access Token (msdyn_channelaccesstoken)
    • Channel ID (msdyn_channelid)
    • Channel Secret (msdyn_channelsecret)
    • Enable (msdyn_postconversationsurveyenable)
    • Enable file attachments for agents (msdyn_enablefileattachmentforagents)
    • Enable file attachments for customers (msdyn_enablefileattachmentforcustomers)
    • LINE account language (msdyn_ocwidgetlanguage)
    • LINE Channel identifies Line Channel (msdyn_oclinechannelconfigid)
    • Message (msdyn_postconversationsurveybotsurveymessagetext)
    • Message (msdyn_postconversationsurveymessagetext)
    • Name (msdyn_name)
    • Survey Mode (msdyn_postconversationsurveybotsurveymode)
    • Survey Mode (msdyn_postconversationsurveymode)
    • Webhook URL (msdyn_webhookurl)
    • Work stream (msdyn_liveworkstreamid)
    FetchXML to filter records for LINE accounts
    Custom channel Custom messaging channel (msdyn_occustommessagingchannel)
    • Bot Survey (msdyn_postconversationsurveybotsurvey)
    • Channel ID (msdyn_occustomchannelid)
    • Custom messaging account (msdyn_custombotchannelregistration)
    • Custom Messaging Channel (msdyn_occustommessagingchannelid)
    • Custom messaging channel language (msdyn_ocwidgetlanguage)
    • Enable (msdyn_postconversationsurveyenable)
    • Enable file attachments for agents (msdyn_enablefileattachmentforagents)
    • Enable file attachments for customers (msdyn_enablefileattachmentforcustomers)
    • Message (msdyn_postconversationsurveybotsurveymessagetext)
    • Message (msdyn_postconversationsurveymessagetext)
    • Name (msdyn_name)
    • Survey Mode (msdyn_postconversationsurveybotsurveymode)
    • Survey Mode (msdyn_postconversationsurveymode)
    • Work stream (msdyn_liveworkstreamid)
    FetchXML to filter records for custom messaging channels
    Microsoft Teams Microsoft Teams account (msdyn_octeamschannelconfig)
    • Bot ID (msdyn_botid)
    • Bot Survey (msdyn_postconversationsurveybotsurvey)
    • Calling options (msdyn_callingoptions)
    • Enable (msdyn_postconversationsurveyenable)
    • Enable file attachments for agents (msdyn_enablefileattachmentforagents)
    • Enable file attachments for customers (msdyn_enablefileattachmentforcustomers)
    • Message (msdyn_postconversationsurveybotsurveymessagetext)
    • Message (msdyn_postconversationsurveymessagetext)
    • Name (msdyn_name)
    • Survey Mode (msdyn_postconversationsurveybotsurveymode)
    • Survey Mode (msdyn_postconversationsurveymode)
    • Teams account language (msdyn_ocwidgetlanguage)
    • Teams App Name (msdyn_octeamsappname)
    • Teams Channel (msdyn_octeamschannelconfigid)
    • Work stream (msdyn_liveworkstreamid)
    FetchXML to filter records for Microsoft Teams accounts
    Facebook, Google Business Messages, LINE, Custom Channel, Microsoft Teams Custom messaging account (msdyn_ocbotchannelregistration)
    • Bot Channel Registration (msdyn_ocbotchannelregistrationid)
    • Client secret (msdyn_msappsecret)
    • Facebook Application (msdyn_ocfbapplicationid)
    • Google’s Business Messages agent account id (msdyn_ocgbmagentaccount)
    • Google’s Business Messages partner account id (msdyn_ocgbmpartneraccount)
    • Is Custom Messaging BCR (msdyn_iscustommessagingbcr)
    • Last validated (msdyn_lastvalidateddate)
    • LINE channel (msdyn_oclinechannelconfigid)
    • MS Application Id (msdyn_msappid)
    • Name (msdyn_name)
    • Secure Client secret (msdyn_securemsappsecret)
    • Teams Channel (msdyn_octeamschannelconfigid)
    • Validation status (msdyn_validationstatus)
    FetchXML to filter records for custom messaging accounts
  5. Generate the schema and save it.

  6. Export the data and generate the compressed (zip) file.

  7. Use the Configuration Migration tool, select the option to import data, and select the compressed file.

FetchXML for workstreams

Sample 1: All workstreams of a channel

<fetch>
	<entity name="msdyn_liveworkstream">
		<filter type="and">
			<condition attribute="msdyn_mode" operator="eq" value="717210001" />
			<condition attribute="msdyn_streamsource" operator="eq" value="<CHANNEL_ID>" />
		</filter>
	</entity>
</fetch> 

Tip

To find <CHANNEL_ID> values for each channel that you want to migrate the workstreams for, go to Power Apps Maker Portal, select your source environment, go to Choices, then open the Stream Source (msdyn_streamsource) choice. For example, the value for voice channel is 192440000.

Sample 2: Single workstream

<fetch>
	<entity name="msdyn_liveworkstream">
		<filter type="and">
			<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="Test workstream 1" uitype="msdyn_liveworkstream" value="{759255C7-7AC8-98E0-7E3E-59A7F0312ABC}" />
		</filter>
	</entity>
</fetch> 

Sample 3: Multiple workstreams

<fetch>
	<entity name="msdyn_liveworkstream">
		<filter type="and">
			<condition attribute="msdyn_liveworkstreamid" operator="in">
				<value uiname="Test workstream 1" uitype="msdyn_liveworkstream">{759255C7-7AC8-98E0-7E3E-59A7F0312ABC}</value>
				<value uiname="Test workstream 2" uitype="msdyn_liveworkstream">{E6246229-33AC-5A9E-2FFE-51668AD44098}</value>
			</condition>
		</filter>
	</entity>
</fetch> 

FetchXML for quick replies

Sample 1: Quick replies for all workstreams of a channel

<fetch>
	<entity name="msdyn_cannedmessage">
		<link-entity name="msdyn_msdyn_cannedmessage_liveworkstream" from="msdyn_cannedmessageid" to="msdyn_cannedmessageid" visible="false" intersect="true">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="aa">
				<filter type="and">
					<condition attribute="msdyn_mode" operator="eq" value="717210001" />
					<condition attribute="msdyn_streamsource" operator="eq" value="<CHANNEL_ID>" />
				</filter>
			</link-entity>
		</link-entity>
	</entity>
</fetch> 

Sample 2: Quick replies for a single workstream

<fetch>
	<entity name="msdyn_cannedmessage">
		<link-entity name="msdyn_msdyn_cannedmessage_liveworkstream" from="msdyn_cannedmessageid" to="msdyn_cannedmessageid" visible="false" intersect="true">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="aa">
				<filter type="and">
					<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname=" workstream 1" uitype="msdyn_liveworkstream" value="{759255C7-7AC8-98E0-7E3E-59A7F0312ABC}" />
/>
				</filter>
			</link-entity>
		</link-entity>
	</entity>
</fetch> 

Sample 3: Quick replies for multiple workstreams

<fetch>
	<entity name="msdyn_cannedmessage">
		<link-entity name="msdyn_msdyn_cannedmessage_liveworkstream" from="msdyn_cannedmessageid" to="msdyn_cannedmessageid" visible="false" intersect="true">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="aa">
				<filter type="and">
					<condition attribute="msdyn_liveworkstreamid" operator="in">
						<value uiname="Test Workstream 1" uitype="msdyn_liveworkstream">{759255C7-7AC8-98E0-7E3E-59A7F0312ABC}</value>
						<value uiname="Test Workstream 2" uitype="msdyn_liveworkstream">{E6246229-33AC-5A9E-2FFE-51668AD44098}</value>
					</condition>
				</filter>
			</link-entity>
		</link-entity>
	</entity>
</fetch> 

FetchXML for tags

Sample 1: Tags of quick replies for all workstreams of a channel

<fetch>
	<entity name="msdyn_octag">
		<link-entity name="msdyn_msdyn_cannedmessage_msdyn_octag" from="msdyn_octagid" to="msdyn_octagid" visible="false" intersect="true">
			<link-entity name="msdyn_msdyn_cannedmessage_liveworkstream" from="msdyn_cannedmessageid" to="msdyn_cannedmessageid" visible="false" intersect="true">
				<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="aa">
					<filter type="and">
						<condition attribute="msdyn_mode" operator="eq" value="717210001" />
						<condition attribute="msdyn_streamsource" operator="eq" value="<CHANNEL_ID>" />
					</filter>
				</link-entity>
			</link-entity>
		</link-entity>
	</entity>
</fetch> 

Sample 2: Tags of quick replies for a single workstream

<fetch>
	<entity name="msdyn_octag">
		<link-entity name="msdyn_msdyn_cannedmessage_msdyn_octag" from="msdyn_octagid" to="msdyn_octagid" visible="false" intersect="true">
			<link-entity name="msdyn_msdyn_cannedmessage_liveworkstream" from="msdyn_cannedmessageid" to="msdyn_cannedmessageid" visible="false" intersect="true">
				<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="aa">
					<filter type="and">
						<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname=" workstream 1" uitype="msdyn_liveworkstream" value="{759255C7-7AC8-98E0-7E3E-59A7F0312ABC}" />
					</filter>
				</link-entity>
			</link-entity>
		</link-entity>
	</entity>
</fetch> 

Sample 3: Tags of quick replies for multiple workstreams

<fetch>
	<entity name="msdyn_octag">
		<link-entity name="msdyn_msdyn_cannedmessage_msdyn_octag" from="msdyn_octagid" to="msdyn_octagid" visible="false" intersect="true">
			<link-entity name="msdyn_msdyn_cannedmessage_liveworkstream" from="msdyn_cannedmessageid" to="msdyn_cannedmessageid" visible="false" intersect="true">
				<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="aa">
					<filter type="and">
						<condition attribute="msdyn_liveworkstreamid" operator="in">
							<value uiname="Test Workstream 1" uitype="msdyn_liveworkstream">{759255C7-7AC8-98E0-7E3E-59A7F0312ABC}</value>
							<value uiname="Test Workstream 2" uitype="msdyn_liveworkstream">{E6246229-33AC-5A9E-2FFE-51668AD44098}</value>
						</condition>
					</filter>
				</link-entity>
			</link-entity>
		</link-entity>
	</entity>
</fetch> 

FetchXML for channel localizations

<fetch>
	<entity name="msdyn_oclocalizationdata">
		<link-entity name="msdyn_ocsystemmessage" from="msdyn_ocsystemmessageid" to="msdyn_systemmessageid" link-type="inner" alias="ab">
			<filter type="and">
				<condition attribute="msdyn_streamsource" operator="eq" value="<CHANNEL_ID>" />
			</filter>
		</link-entity>
	</entity>
</fetch>		

FetchXML for Facebook applications

<fetch>
	<entity name="msdyn_ocfbapplication">
		<link-entity name="msdyn_ocfbpage" from="msdyn_ocfbapplicationid" to="msdyn_ocfbapplicationid" link-type="inner" alias="ab">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ac">
				<filter type="and">
					<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM Facebook Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
				</filter>
			</link-entity>
		</link-entity>
	</entity>
</fetch>

FetchXML for Facebook pages

<fetch>
	<entity name="msdyn_ocfbpage">
		<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ab">
			<filter type="and">
				<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM Facebook Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			</filter>
		</link-entity>
	</entity>
</fetch>

FetchXML for Google’s Business Messages partner accounts

<fetch>
	<entity name="msdyn_ocgooglebusinessmessagespartneraccount">
		<link-entity name="msdyn_ocgooglebusinessmessagesagentaccount" from=" msdyn_ocgooglebusinessmessagespartneraccountid" to="msdyn_ocgbmpartneraccount" link-type="inner" alias="ab">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ac">
				<filter type="and">
					<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM Google Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
				</filter>
			</link-entity>
		</link-entity>
	</entity>
</fetch>

FetchXML for Google’s Business Messages agent accounts

<fetch>
	<entity name="msdyn_ocgooglebusinessmessagesagentaccount">
		<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ab">
			<filter type="and">
				<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM Google Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			</filter>
		</link-entity>
	</entity>
</fetch>

FetchXML for LINE accounts

<fetch>
	<entity name="msdyn_oclinechannelconfig">
		<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ab">
			<filter type="and">
				<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM LINE Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			</filter>
		</link-entity>
	</entity>
</fetch>

FetchXML for custom messaging channels

<fetch>
	<entity name="msdyn_occustommessagingchannel">
		<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ab">
			<filter type="and">
				<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM Custom Channel Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			</filter>
		</link-entity>
	</entity>
</fetch>

FetchXML for Microsoft Teams accounts

<fetch>
	<entity name="msdyn_octeamschannelconfig">
		<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="inner" alias="ab">
			<filter type="and">
				<condition attribute="msdyn_liveworkstreamid" operator="eq" uiname="ALM Teams Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			</filter>
		</link-entity>
	</entity>
</fetch>

FetchXML for custom messaging accounts

<fetch>
	<entity name="msdyn_ocbotchannelregistration">
		<filter type="or">
			<condition attribute="msdyn_liveworkstreamid" entityname="ac" operator="eq" uiname="ALM Custom Channel Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			<condition attribute="msdyn_liveworkstreamid" entityname="bd" operator="eq" uiname="ALM Facebook Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			<condition attribute="msdyn_liveworkstreamid" entityname="cc" operator="eq" uiname="ALM Google Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			<condition attribute="msdyn_liveworkstreamid" entityname="dc" operator="eq" uiname="ALM LINE Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
			<condition attribute="msdyn_liveworkstreamid" entityname="ec" operator="eq" uiname="ALM Teams Test Workstream" uitype="msdyn_liveworkstream" value="{87bf4384-a02f-4802-8be7-1d6884a7e73f}" />
		</filter>
		<link-entity name="msdyn_occustommessagingchannel" from="msdyn_custombotchannelregistration" to="msdyn_ocbotchannelregistrationid" link-type="outer" alias="ab">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="outer" alias="ac">
			</link-entity>
		</link-entity>
		<link-entity name="msdyn_ocfbapplication" from="msdyn_ocfbapplicationid" to="msdyn_ocfbapplicationid" link-type="outer" alias="bb">
			<link-entity name="msdyn_ocfbpage" from="msdyn_ocfbapplicationid" to="msdyn_ocfbapplicationid" link-type="outer" alias="bc">
				<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="outer" alias="bd">
				</link-entity>
			</link-entity>
		</link-entity>
		<link-entity name="msdyn_ocgooglebusinessmessagesagentaccount" from="msdyn_ocgbmagentaccount" to="msdyn_ocgooglebusinessmessagesagentaccountid" link-type="outer" alias="cb">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="outer" alias="cc">
			</link-entity>
		</link-entity>
		<link-entity name="msdyn_oclinechannelconfig" from="msdyn_oclinechannelconfigid" to="msdyn_oclinechannelconfigid" link-type="outer" alias="db">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="outer" alias="dc">
			</link-entity>
		</link-entity>
		<link-entity name="msdyn_octeamschannelconfig" from="msdyn_octeamschannelconfigid" to="msdyn_octeamschannelconfigid" link-type="outer" alias="eb">
			<link-entity name="msdyn_liveworkstream" from="msdyn_liveworkstreamid" to="msdyn_liveworkstreamid" link-type="outer" alias="ec">
			</link-entity>
		</link-entity>
	</entity>
</fetch>

Verify your migration

After you import the unified routing-related configuration data successfully from the source to target environment, perform the following steps in the target environment:

  1. In the UI, make sure that the unified routing configuration and rulesets are rendered properly and don't display errors.

  2. If skills and rating values are used in unified routing rulesets, then you need to manually link, associate, or create the users, bookable resources, and bookable resources characteristics records.

  3. If capacity profiles are used in rulesets and workstreams for unified routing, then you need to manually link, associate, or create the users, bookable resources, and bookable resources capacity profile records.

Considerations for export and import of data

To troubleshoot any issues that you might face during migration, check the log files as follows:

  • When you import data into the target organization, if you see yellow warning symbols, then check the following logs in the Configuration Migration tool:

    • Login_ErrorLog.log: Provides information about any issues you had when you signed in to the organization using the Configuration Management tool.
    • DataMigrationUtility.log: Provides information about the tasks performed using the tool during the last migration.
    • ImportDataDetail.log: Provides information about the data imported by the tool in the last data import.

    More information: Troubleshoot configuration data migration issues using log files

    Yellow warnings that indicate errors during data import.

  • If the logs contain network errors, then repeat the import process.

    Here's an example:

    Time: 11:46:09 PM
    Error: There was no endpoint listening at `https://www.contoso.com/XRMServices/2011/Organization.svc/web?SDKClientVersion=9.2.46.5279` that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
    Stack Trace: Service stack trace:
    

See also

Migrate configurations for record routing using solutions
Microsoft Power Platform Build Tools for Azure DevOps