[SalesForce] Avoiding creating duplicate Contacts in Marketing Cloud when using Sales Cloud records

We are creating a journey in Marketing Cloud, where we are using a Salesforce Data Event and the Lead object to inject new Leads into the Journey as Contacts.

The objective of the Journey is to convert the Lead into an Opportunity, and ultimately an Account.

As I understand it, whenever a Lead is converted to a Contact in Sales Cloud, there are up to three records that are created; an Account, Contact and optionally, an Opportunity. At the time, the Lead Object is changed to a System record (effectively making it inaccessible).

When the person (a Sales Cloud Lead) is moving through the Journey and responds to the call-to-action and is converted to an Opportunity, then we can eject them from the Journey (using Exit criteria) and they can enter another Journey as an Opportunity record.

I understand that the Convert Lead Activity in Journey Builder converts a Lead to an Contact, Account, and/or Opportunity record while maintaining the Contact relationship back to the original Lead ID (which is the Contact Key). However, in our scenario, a subscriber in a Journey may change to an Opportunity or a Contact from Sales Cloud.

The issue is that a Contact Record has already been created against the original Lead record and there is effectively no way to delete this; Contact Records in Marketing Cloud are both persistent (you can't change the Contact Key) and perpetual (you can't delete them). As a result, we will now have two records against the same Contact Record (one for the Lead and the other for the Opportunity), then ultimately have 3 records once they convert into an Contact object.

Be aware that you are charged for Contacts in your Marketing Cloud Account, and each of these will use different Contact Keys (which correspond to the Salesforce Id), so this means you can have two or three duplicate Contacts for the same person, representing each stage of their Sales Cloud record lifecycle (Lead -> Opportunity -> Contact).

How are others overcoming this issue to ensure that only one Contact record exists against a person in Marketing Cloud, irrespective of their lifecycle stage in Sales Cloud?

Best Answer

Generally speaking, we create Automations that do a Query/Extract/Import to All Subscribers for any email address that's associated with an unsubscribed Subscriber Key. This obviously doesn't prevent the duplication, but it honors the unsubscribes.

Clients unknowingly create duplicate subscribers all the time, but this is an inherent duplication in the platform and is tied to billing.

Related Topic