I would like to get some best practice with Mobile Push SDK and Contact Keys and making sure we don't create duplicate contacts in MC.

The high level architecture looks like this:

enter image description here

The issue that we are face is how we can map the contacts coming from the SDK to the Contacts (synced from salesforce) in the Contact builder.

With using MC Connect, we need to use Laad ID / Contact ID in order to send back tracking information from MC back to Sales Cloud. Another reason is Alternate Key Store - because a Lead (with Lead ID) may be converted to a contact in Sales Cloud and then be synced to MC with the Contact ID, we need Alternate Key store to make sure that the change in subscriber ID is managed, tracked and not duplicated.

*Note Only customers (contacts) can login to the app.

Since the Mobile App only knows the customer ID, but not the Lead ID / contact ID, we cannot actually map this the contact model. Is there any workaround to this?

  • Have you opened an investigation with your support/account manager?
    – Bill Mote
    Feb 14, 2019 at 13:14

1 Answer 1


The way I've generally solved this is to retrieve your Lead ID/Contact ID at the time of login in your mobile app.

You could either

1) During authentication, if there is a successful login your authentication API could be modified to return the Salesforce Contact/Lead ID.

2) After successful authentication, make an API call to Salesforce CRM to lookup the Contact ID (External) and return the Salesforce Contact/Lead ID

Once you have retrieved the Salesforce ID, you can then use the setContactKey() in the SDK to register this device in the Contact Model with the correct Contact/Lead ID

SDK Documentation - setContactKey()

You must log in to answer this question.

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