We are upgrading a custom Sitecore analytics reporting solution from Sitecore 7.2 to 9.0.2. It has the functionality of listing all the email campaign events generated by a specific registered user.

In Sitecore 7.2 (rev. 150408) when a user clicks on a link in an email sent by Sitecore email campaign, we can retrieve campaign ID associated with that specific contact by parsing the query string with parameters like "ec_as" in the tracked URL for that visit in Analytic DB.

Now in Sitecore 9.0.2, the interactions are created in XConnect DB and then transferred as visits to Reporting DB. As the database structures changed dramatically between Sitecore versions, we can't get the same information in Sitecore 9.

Anyone get this issue , please help


1 Answer 1


Unfortunately you are not going to be able to retain analytics from Email Campaign Manager (ECM) used in 7.x solutions and EXM used in 9 solutions.

The biggest issue is the introduction of xDB that was a result of Sitecore 8 and the manifestation of what is now called Email Experience Manager.

Even if you did go through the incredibly painful upgrade path from ECM to EXM 3.0... due to major breaking changes with how EXM stored analytics in EXM 3.2, the analytics are lost and not available in reporting.

Other breaking changes is that the Click Tracking and query string parameters have changed significantly. I believe that backwards compatibility for ec_as ended in EXM 3.5 and not carried through to Sitecore 9.

Whats Changed from 7 to 9

Users are now Contacts

Sitecore 8 and xDB introduces the Contact concept. As EXM behaves, Users and User Profiles are no longer used and the Contact object is used. That being said, Users and User Profiles still exist, but they are two different things now.

Query String Changes

There are a number of query string changes. However, all of the handling on those varibles are handled through the <redirectUrl> pipeline on the CD's. Backwards compatibility was removed. The Campaign Code is still in the query but is now ec_camp. It is also automatically added an interaction and triggered in xConnect/xDB. So there's no need to look for it specifically.

QueryStringKey.AnalyticsContactId: ec_contact_id Used by the module to build query strings for generating messages.

QueryStringKey.EcmId: ec_id

QueryStringKey.Recipient: ec_recipient

QueryStringKey.Subscription: ec_subscr

QueryStringKey.MessageId: ec_message_id

QueryStringKey.Campaign: ec_camp Specify the key for identifying the email campaign on the query string.

QueryStringKey.ContactIdentifierSource: ex_id_s Specify the key for the contact identifier source on the query string.

QueryStringKey.ContactIdentifierIdentifier: ex_id_i Specify the key for the contact identifier identifier on the query string.

QueryStringKey.EmailHistoryEntryId: ec_emailid Specify the key for identifying the email history entry ID in the query string.

QueryStringKey.ec_lang: ec_lang Specify the key for identifying the target language in the query string.

QueryStringKey.ec_tvi: ec_tvi Specify the key for identifying the test value index in the query string.

QueryStringKey.ExmEncryptedQuery: ec_eq Is the encrypted query string, when decrypted exposes the real query string parameters in messages.

Automation States were removed

Automation States are removed and Silverlight Engagement Plans no longer exist. They were completely removed in 3.5, and in Sitecore 9.0.1+, replaced with Marketing Automation, which is much better. But there is no upgrade path or migration for these at all.


Almost the entirety of how ECM was structured from a database perspective was completely rebuilt from the ground up. Nothing carries over.

Message States Changed

Message States and the structure of the Message Item is different.

Analytics Changed (Twice)

Constant change was the theme during the Sitecore 8 era when it came to analytics. And then again, in Sitecore 9.


Removed and no longer used.

Client API

The EXM Client API changed significantly. I am not even recalling if ECM had a Client API.

Admin UI's

The old SPEAK pages in ECM are incompatible with EXM. Meaning if you made any changes to those UI's, those changes do not carry over to EXM.

Honest Advice

The version of your solution is too old and the limited and extremely difficult migration path that will ultimately mean nothing is not recommended.

Recommemdation is to completely forgo ECM and all your old analytics, and simply start fresh on Sitecore 9.0.2 or higher.

If upgrading is a requirement, prepare for an multi-month (dare I even say year long) upgrade experience, knowing that you'll still lose the analytics that you're trying to save.

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.