Every December I get clutter body. I long for a clean Marketo database.
It’s so tempting to keep everything. Deleting data is nerve wracking! But the truth? There’s a lot of junk in our databases, and we have to pay for every competitor, solicitation, and junk email we’ve got.
So here’s the step-by-step process I follow to identify the junk, find where it’s coming from, and keep it out. For this post, the tech stack s Marketo and Salesforce. Adapt as needed to your MAP and CRM stack.
In this post:
1. Decide what fields are important
A “clean Marketo database” is a relative term. Some teams only need an email to start working a lead. Others need detailed demographics and contact information to really target their buyer.
So first off, decide which fields are important.
- Lead scoring is the first place to start to identify these fields. This includes both the demographic and behavioral attributes.
- The next place is Salesforce. What fields are required to save a new lead record or a new contact record?
I also recommend building a field dictionary with these columns (so you never have to do this exercise again):
- CRM Friendly Field Label
- MAP Friendly Label
- API Field Name
- Field Type
- Field Definition
2. Use smart lists to see the bad data and junk leads
Now that you know what fields you need, you can create smart lists to see how bad the problem is.
Records that have been inactive for the past 90 days
Create a list using these filters:
- Was delivered email (set to is ANY)
- Not clicked in email
- Not filled out form (and form doesn’t contain unsubscribe)
- Not visited key website page(s) (include key web page urls)
- Not had interesting moment
- Not was updated in the past before 90 days
- Not was created in the past 90 days
Include any other inactivity filter actions unique to your organization. And set the filter logic to “all.”
Records with incomplete data
I usually create a smart list that catches records missing data in each of my critical fields. (To visualize everything in one list, remember to set the filter logic “is any”. Beyond your critical fields, remember to check for:
- Lead Source is empty
- SFDC Type is empty (indicates it’s not syncing to a SF campaign)
- Email Address does not contain @
3. Where is the bad data coming from?
Now that we see all the bad data (and boy is that sobering), we want to turn off the valve. Create a customized view in your bad data smart lists that includes the critical fields identified in the previous step, plus these columns:
- Original Source Type
- Registration Source Type
- Registration Source detail
- Lead Source (Person Source)
- First Name
- Last Name
We’re looking for recurring source types. Drill down with additional smart lists (or by exporting into Excel and playing with a pivot table). You may even have to snoop through activity records and follow the step IDs on the date the crappy contacts were created.
- What common trends do you see in source type fields among the crappy records?
- Are they usually forms?
- Are the forms in question related to specific programs like webinars?
- A specific webinar or webinar provider?
- Do they share a form template?
- Do you see Salesforce as a type?
- Is it a SFDC user inputing incomplete data?
- Web API?
- Which integrations are active and are the fields mapped correctly?
Our goal here is to find the sources of bad data and fix them. For example:
- If a lot of leads are syncing from Salesforce without lead sources:
- Can we make this a required field when reps create a record?
- If not, can we create a normalization campaign to auto-fill the source as “Sales rep”?
- If the offender is an integrated tool like Zoom:
- Can we troubleshoot how the fields are mapped together?
- Again, if we can’t remedy this at the outset, can we normalize data coming in from “Zoom” with an ongoing batch smart campaign?
4. Normalize your data
A really common problem is not having normalized data that matches picklists between systems. Run batches to correct this each night.
Lets say you have a lead source picklist in Salesforce with these values:
- List import
But some Marketo records don’t match the picklist format. Here’s how to fix it:
- Create a batch campaign that includes a filter for Person source and an operator that says is not and then include all the correct values from the Salesforce pick list.
- Then in your flow step you will use a change data step.
- You will set the choices with logic like this: if Person Source is sales representative then set Person Source to Sales. Or if Person source is list upload then set Person Source to List import.
- Set this to run nightly. Voila, normalized data!
5. Set up scheduled cleanses of bad data and junk leads
Okay, here’s the fun part – time to actually clean the Marketo database. Follow the step-by-step instructions here >
Your best friend is the out-of-the-box system campaign that flags possible duplicates. Don’t change the settings! Just review it every month and tackle 50% of the dupes.
Depending on your permissions, you can de-dupe directly in Marketo. The benefit is you can just de-dupe as you see them, but it’s manual.
Otherwise you’re going to de-dupe in Salesforce with your Salesforce admin. I recommend tools like Ringlead, Demandbase, or Cloudingo.
And 🚨 if your Salesforce admin wrote a de-dupe rule, make sure it excludes the Marketo sync user. 🚨 Marketo needs to find and match records in Salesforce. A de-dupe rule could ironically create a massive amount of dupes.
7. Rinse and repeat every 6 months
Yep, as often as you get your teeth cleaned: review your bad data smart lists, ensure your important fields haven’t changed, and track down where the bad data is coming from.
But the good news is your maintenance automation will have been running all along, so each time the cleanup will be easier.
Image via Giphy.
Curious if you’re leveraging the full power of your marketing tech stack? Request a martech audit and we’ll benchmark your setup.