I am implementing Marketing Cloud MobilePush for one of my clients and I need some clarification regarding the data model of Mobile Push system tables and their relation with the populations.

  1. The MDM will be Service Cloud that will push Contacts to Marketing Cloud as a Population (ContactKey = Salesforce ID).
  2. The mobile app uses a ClientID (Foreign key) to identify the customer. The J4Apps SDK will only have the CliendID and will use it in the ContactKey registration call (Documentation :http://salesforce-marketingcloud.github.io/JB4A-SDK-Android/features/subscriber-key.html).
  3. Service Cloud will also have the ClientID in the Contact record so It can be retrieved in Marketing Cloud via the Data Stream.
  4. Marketing Coud will have a ClientID/SalesforceID reference table as an attribute set linked to the population in Contact Builder.

My concern is that the ContactKey in Marketing Cloud is the Salesforce ID and in the mobile Apps is the ClientID.

Is mobile push able to match ClientID with ContactKey? Or should I call Service Cloud APIs within the mobile app to retrieve the Salesforce ID before registration ?

1 Answer 1


MobilePush SDK needs to set the correct ContactKey in order to match the Device with the Contact in Contact Builder.

Thus, in the context of this question, the mobile App has to know the Salesforce ID of the Contact prior to setting the ContactKey during the device registration.

In my use case, the mobile App performs an API call to Salesforce Core APIs to retrieve the Salesforce ID from the Client Id (which is known in the app context).

You must log in to answer this question.

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