Currently, we use Subscriber key= Email Address = Contact Key; We are planning to use Salesforce Contact ID as Subscriber key/ContactKey. Is there a way to mass update Subscriber key value for all our current Subscribers (we have around 250k subscribers)? Also, will we lose all the tracking data about our subscribers? We are mostly concerned about Einstein Optimization data, but we are not sure if Einstein tracks and stores the data based on the Subscriber Key or email address?


1 Answer 1


What you are looking into is a so-called Subscriber Key migration. A task which can't be done within the UI, and requires a paid services engagement by Salesforce. It will basically update the database, replacing the old Subscriber Keys with new ones, based on a SubscriberKey Data Extension containing the following fields:

  • OldSubKey - Text Field
  • NewSubKey - Text Field
  • MigrationDate - Date Field

The data MUST be validated

  • No duplicate keys can exist in the OldSubKey column
  • No duplicate keys can exist in the NewSubKey column
  • OldSubKey and NewSubkey values cannot be the same for a subscriber across the entire data set.

So you will want to have your email addresses in the OldSubKey column and your Salesforce IDs in NewSubKey column.

All OldSubkey values should exist in the Subscriber table. If any OldSubkey is not in the Subscriber table, then those OldSubkey values will not be included in the migration.

If a subscriber is NOT included in the mapping DE, there will be no update applied to the subscriber. The process will migrate only what exists in the mapping DE.

This is relatively easy. What makes the task more complex is the fact that you CANNOT send during the migration process. Sending includes both Batch Sends and Triggered Sends. You must ensure your API calls are halted and that the Triggered Send queue is cleared and then paused on the Marketing Cloud side.

Once all of the above has been completed SFMC Services in the US will need to be engaged to carry out and oversee the actual migration.

To avoid having legacy Subscriber Keys appear in Marketing Cloud, it is essential to ensure the Sales Cloud becomes single source of consumer identity and other systems should no longer provide data which in any way reference the legacy Subscriber Key, being the email address.

Subscriber Key migration will indeed carry engagement over from the old Sub Key to the new ones, which applies to both clicks/opens, and Einstein engagement. Most of the clients I work with accept the fact of the engagement data being lost, as the impact of the Subscriber Key migration on their business continuity is seen as too significant - as downtime of approx 24 hours should be expected. They just create new subscribers with new Subscriber Key value, and perform contact deletion on the old records.

You can read more about Subscriber Key migration in my blog.

  • Really good insights on subscriber key migration, but I had a question how do we provide this mapping of oldSubKey to newSubKey to SF? Commented Oct 5, 2020 at 12:59
  • 1
    @SwatiMishra SubKey migration is a paid engagement, so you will need to reach out to SF, get a quote, and you will be asked to provide this mapping as part of the migration project. Commented Oct 5, 2020 at 13:41
  • Thank you for your reply, Lukas! So it's something that can be done only with the Salesforce support? Or some Solution Partners can do it as well? Commented Oct 5, 2020 at 14:09
  • Salesforce only, as it requires access not provided outside of Salesforce Commented Oct 5, 2020 at 14:12
  • Thank you, Lucas! Commented Oct 7, 2020 at 16:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .