How do we move current xDB data (contacts, traffic etc) to the Sitecore CDP. I know there is no straightforward tool but are there APIs I can use to accomplish it and keep all or most of the data from xDB?


2 Answers 2


I recently created a guide here: https://community.sitecore.com/community?id=community_blog&sys_id=f1cc98af1b541590e55241dde54bcb0d that talks a little bit about the options that are available when migrating from XP to an XM+CDP/Personalize scenarios. It focuses on the products that would make sense depending on your scenario, which seems irrelevant to this discussion, but does have impact, since if you are moving to Personalize only, than the Batch API's mentioned here are not available for this product and honestly you'll need to look into if there is really data that's needed for your scenario.

If however you are moving to Sitecore CDP (or a Smart Hub CDP solution with both Sitecore CDP and Sitecore Personalize) there are a couple of options available to migrate data. However none of these options are perfect, because each of these have limitations:

  • Using the Batch APIs
    • Limited Data: Currently Batch APIs only support importing Guests and their data. Sessions or Interactions are not supported in Batch API's, however there could be options to roll some of this data into a guest data extension if you proceed with this option. Also it's important to call out that the procedure of moving this data is an extensive process. It may be wise to consider what data makes the most sense to move into the product. Example, instead of all anonymous and known users that have ever visited your web properties, maybe instead zero-in on Known contacts only.
    • Documentation about the Batch APIs: https://doc.sitecore.com/cdp/en/developers/sitecore-customer-data-platform--data-model-2-1/using-the-sitecore-cdp-batch-api.html
  • Import Using Stream APIs
    • Probably the least useful option in this set, just because stream APIs can only ingest real time data, so even though you can import interactions/sessions for Stream data, it'll all appear as if it came in, when you run the requests.
  • Pull in data directly into your Decision Model via a Connection
    • I proposed in the article that you could use xConnect here, but as I'm writing this, I'm realizing that you could export this data into a Data Lake or Data Warehouse and built a mechanism to query the data from the Decision Model. All of this being theoretical of course :-). When using connections in a Decision Model, it's vital that this data runs in less than 250 ms, so if this option is used, you'll want to make sure that whatever you are pulling in, keeps this in mind. Also if you go with a direct xConnect option here, you may also run into licensing challenges with the need to run xConnect and therefore XP simultaneously with Sitecore CDP.

In a lot of use cases, it may actually make more sense to utilize the power of CDP/Personalize and purchase the product before you start to transition from Sitecore XP, and start tracking events and other actions simultaneously as you begin your migration to a Composable model. So that, once you begin to turn off XP (xDb) and migrate to XM, you have your Experiences/Experiments created within the product and all of the data available within the product to begin taking action on the data collected in your CDP product.


Sitecore has introduced the xDB to CDP Migration Tool using which you can migrate visitor contact data from the Sitecore XDB to the Sitecore CDP.

Prerequisites of using this tool:

  • Sitecore XP license (Version 9.x or above) with existing contacts.
  • xConnect client certificate PFX file.
  • Active Sitecore CDP subscription.
  • Access to Sitecore Connect instance.

Data You Can Migrate:

  • Contacts: Only known contacts.
  • Facets: Built-in and custom facets.
  • Lists: Contact lists and segmented lists.

Data You Cannot Migrate:

  • Anonymous contacts.
  • Interactions.
  • Reporting and analytics.

How to Use the XDB to CDP Migration Tool?

  • Go to the download section of the Sitecore Developer Portal and search for the xDB to CDP Migration Tool.

  • Download the package specific to your Sitecore Connect instance region (e.g., EU region set of recipes for a Sitecore Connect instance hosted in Australia).

  • Navigate to the Sitecore Connect portal. Go to Tools > Recipe lifecycle management.

  • Click the Import tab, and then click Import package to a new folder. Select the zip package you downloaded in step 1 and create a new project folder in the Target folder selection. Click next.

  • On successful import, the following recipes and lookup tables are displayed. You will also see the Sitecore XP Connection and Sitecore CDP Connection connections. To connect to your instances, first, you need to update their configurations. enter image description here

  • After successfully importing the migration package into your Sitecore Connect account, Establish a connection to your XP instance through Sitecore Connect.

  • Establish connection to CDP through Sitecore Connect.

  • Once you are successfully connected, Run the migration tool.

  • To migrate contacts with the option of using filters, you need to run the first three recipes in the sequence stated below.

    • In Sitecore Connect, open the [XCM] REC002 | Load and Transform Contacts From xDB recipe and click Start Recipe.
    • Open the [XCM] REC003 | Upload Contacts to CDP recipe and click Start Recipe.
    • Open the [XCM] REC001 | Processing Recipe Trigger and click Test Recipe.

You have successfully migrated contacts and contact information from your XP instance to your CDP instance.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.