Converting to a Contact-Only Model in Salesforce Using LeanData

Working both in house and at an agency has provided me the opportunity to interact with many different RevOps setups, in particular as it pertains to Salesforce Leads and Contacts.

The name of the game is simple: get your sales process set up in a manner that promotes a quick and efficient follow-up by the Sales team at just the right moment. Traditionally, this has been done using both Lead and Contact objects, but unfortunately this comes with its own set of limitations.

I’ve begun to see a trend in the industry to overcome those shortfalls. And, while it’s not perfect (nothing ever will be), I’ve found a promising solution when done correctly.

The solution? Ditching the Lead object and turning to a Contact-only model using LeanData.

Converting to a Contact-only model in Salesforce with LeanData
Converting a Lead to a Contact through LeanData Revenue Orchestration

Why converting to a Contact-only model works

#1 Easier reporting

This is arguably the biggest reason why the Contact-only model works. It’s critical for B2B organizations to be able to report on where each prospect and customer is within the customer journey. 

This is often captured through a Lead Lifecycle process done in tandem with a marketing automation platform and then reported on in a CRM like Salesforce. 

However, things get hairy when you have to be able to report on both Leads and Contacts: 

  • Do you constantly monitor two reports?
  • Do you create a brand new object to combine the two?
  • Do you create a report in an external tool with some wild data manipulation to get a combined view? 

What a mess!

But it doesn’t have to be that hard. By converting to a Contact-only model, all of your records are located on one object that’s already created within your instance. There’s no need to create a brand new object with brand new processes. Plus, you only need to reference the single Contact object report type. 

Your team still may want to do some wacky data manipulation in an external reporting tool, but it’s no longer a bare minimum requirement.

#2 More efficient internal sales process

I once worked for an organization that essentially disregarded all Contact records, from a sales perspective, in their Salesforce instance. I didn’t understand the full consequences of that decision back then, but now that I’m well in my marketing operations career the horror this brings me is…well…horrifying. 

These Contacts are often the ones that have engaged most with your brand and possibly even converted to an Opportunity at one point. Don’t we want these individuals to be able to be resurfaced to the Sales team when they’re ready? That’s why a Contact-only model works.

By using a Contact-only model, there’s a single process to follow for your Sales team since there’s only one object being used, versus two if Leads are still being leveraged. 

Additionally, it’s an easier experience for your Sales team to navigate through Salesforce because they know to only look for Contact records.

#3 Less ongoing maintenance

Apex, Flows, Process Builders, Page Layouts, Field Dependencies, Visibility Rules – the list is never-ending! Now double that because you’re still using both Leads and Contacts, and boy, do I need another cup of coffee or what? 

Your Salesforce admin team’s time is precious, and for teams wanting to be able to iterate fast, any opportunity for increased efficiency should be sought out.

By operating with a Contact-only model, your team only needs to push out updates for a single object (I know there’s plenty of other objects in Salesforce, but you get what I’m saying). Requirements get muddy when both Lead and Contact object records exist, as each object has its own respective processes. 

By converting to a Contact-only model, requirements can be simplified, your team doesn’t have to build as much, and the testing and deployment process is rapidly increased. That’s a win for everyone.

What I’ve learned along the way

Be mindful of sync times

This was something I ran into specifically when working with a client who used HubSpot. The contact record (HubSpot identifies person records as “contacts”) was created in HubSpot and initially synced to Salesforce as a Lead record. 

We then had LeanData do its thing: match the record to the appropriate Salesforce account and convert the Lead to a Contact. However, in that same timeframe, HubSpot tried to make updates on the record, like adding it to a Salesforce campaign. 

The only problem was that HubSpot had not yet picked up that the record was now a Contact and no longer a Lead. This caused the HubSpot workflow to error out.

How did we fix this?

Wait steps. We needed to wait until HubSpot picked up that record as a Contact record (Contact ID is not empty) and then make the appropriate updates to the record. And while the record was able to be converted and assigned out to a sales member in rapid fashion, it was immediately missing some information on the Contact record. 

This was fine with the Sales team as long as they knew records were being assigned out. However, this also involved some workarounds.

For what it’s worth, I have only run into this situation with HubSpot. Marketo and Account Engagement have been fine with this issue, but just something to be mindful of if you are a HubSpot user.

Watch your Contact triggers in LeanData

LeanData hits on this topic multiple times in their training videos, and it especially comes into play with this model. 

When Contacts are initially created via the Lead Conversion process in LeanData, this will prompt the New Contact trigger to fire. This is expected behavior. However, if you have other processes running in the same timeframe that update the corresponding Contact object, the Updated Contact trigger will fire. This may cause unintended updates like causing the record to be re-routed to a new sales rep.

The simple fix for this is to make sure you add some filter criteria around when you want that Updated Contact trigger to fire. I accomplished this by excluding Contact records that were created within the past 15 minutes, and it did the trick just fine. It might seem like a simple issue to fix, but I want to help you get ahead of it.

Ensure your Lead Conversion process is tightened up

As mentioned above, how this process will work is that upon creation in Salesforce, the record will be created as a Lead and then converted to a Contact. 

In order for all the data to be retained on the Contact object, you need to make sure your Lead Conversion mappings are set up appropriately. When working with clients I often find that many fields are not being mapped from the Lead to Contact object, which means they are losing data in the process. 

For the Contact-only model to work it is critical to review and configure these mappings before you go live with the update.

Have a good process for free-mail addresses

While you can do everything in your power to prevent free-mail addresses from coming into your system, this will inevitably happen. And when it does happen, you’ll need to make sure a process is in place for how to match these to an Account or create a new Account if needed. 

LeanData’s matching mechanisms come in super handy here, as you can build rules to identify when a record should be matched with an account, even when it’s not outwardly apparent the record should be matched to that account. 

However, if LeanData cannot match to or create an account due to insufficient data on the record, what do you do with that Contact record? The organizations I have worked with have just created a generic account to capture and store those records. You can then introduce that generic account into your routing rules so that new records coming in will match to that Account. 

Later on, then, these records are easy to identify as candidates for deletion if they truly should not be routed to your sSales team. Is the process perfect? No. But does it work? Absolutely.


The team and I at Etumos are always on the lookout for how to get the most out of your LeanData subscription, and when it’s all said and done, converting to a Contact-only model can provide a lot of value to your organization as a whole. 

First, your Sales team will have a cleaner process. Next, your Salesforce team will be more efficient. And last, your Marketing team will be able to report on performance much quicker. 

However, all of that can be achieved when the implementation and ongoing management of this process is done correctly. So, learn from my experience and go forth and conquer!

  • automation
  • lead matching
  • Lead Routing
  • Salesforce CRM
  • speed to contact
  • speed to lead
About the Author
Kyle Sosa, Marketing Operations Consultant, at Etumos
Kyle Sosa
Marketing Operations Consultant at Etumos

Kyle Sosa is a Marketing Operations Consultant for Etumos where he advises clients on their marketing technology strategy across a variety of platforms, including Marketo, HubSpot, and Account Engagement. He won best dancer in his high school mock awards and brings that same energy in his day-to-day as a consultant. In his spare time, Kyle is a basketball referee and enjoys listening to lo-fi beats.Connect with Kyle on LinkedIn.