The core of this question is how do I join Marketing Cloud Contacts created by the Marketing Cloud MobilePush SDK with my Contacts in Sales Cloud within a Journey.

The MobilePush SDK is registering new Devices as a new Marketing Cloud Contact with the our App Login GUID as the Customer Key.

That GUID also exists on our Sales Cloud Contact records in a field called Contact_Key__c.

I created a Journey where the Entry Source is Salesforce Data. I have modified the Data Extension within the Audiance Builder so that under Data Extension the relationship is Contact_Key__c to Subscriber Key and under Data Designer so that the Marketing Cloud Contact Key is linked te Contact_Key__c.

However, when the Journey is running and I modify the Salesforce record to trigger the journey, the contact is always being injected into the journey with the Sales Cloud Contact ID as the Contact Key.

As a result, the Journy isn't correctly identifying the devices that belong to the Contact and isn't sending out Push Notifications. But if the Journey was correctly linking the Contact_Key__c field on the Sales Contact to the Marketing Cloud Contact Key then it would find the devices.

Is there a step I am missing in setting up my data? Is Marketing Cloud event capable of doing what I am asking?

2 Answers 2


Will be very interested in any other experiences on how to solve this issue. It does see a glaring issue with how the connector works as not every company has Salesforce as its single source with data often being fed from other systems using an externalID.

Currently we do the mapping between Salesforce ID and SFMC COntact key within SFMC using SQL jobs but this is not ideal as you cant get any data back in to CRM.


So the issue is how the Marketing Cloud Connector and Sales/Service Cloud interact.

By default, Marketing Cloud Connector automatically sets the Contact Key within Marketing Cloud as the Sales Cloud Contact Record ID.

Since we use a custom identifier to unify a multitude of disparate systems, this provides an impossible situation as the Contact injected into the Journey would never link to other Marketing Cloud data. The most important of which is the Device ID data needed for push notifications.

The solution is that when you create a Journey with a Salesforce Event it creates a Flow within the Sales/Service Cloud. That Flow actually creates the mapping of Sales Cloud data field to Marketing Cloud Contact Key.

By manually updating the Flow you can set the Contact Key to any data value you would like - either the value from an available field on the triggering record or a hard coded value.

This may also be configured within the Marketing Cloud Connector administration settings, but I am unable to confirm since I do not have access to the Integration User login credentials. I cannot find documentation to confirm or disprove this.

UPDATE 20190514 - Salesforce was kind enough to bring in a Marketing Cloud expert to discuss some of our technical issues. We discussed the issue and he explained that our solution was undocumented and the only way to implement this functionality. In the Sales/Servicing/Marketing Cloud Ecosystem the Record ID is intended to be the only Primary Key. In their model, our external systems should be getting the Record ID from SFDC and then create/update the Marketing Cloud Contacts based on that Record ID. However, this solution isn't viable for our systems and needs. As such, our hacky fix is the only feasible solution.

You must log in to answer this question.

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