How to Clean Up Your Marketo Database

October 8, 2014 | by

NOTE: This is a guest blog post. Josh Hill is the Marketo Practice Lead at Perkuto, a marketing automation agency. Josh works at the intersection of marketing, sales, and technology to deliver revenue generation systems. He writes about marketing automation and demand generation at

Keeping your Marketo database clean is an important part of administering this powerful system. If your Marketo data is dirty or your CRM data is dirty, then your job as a marketing manager becomes a whole lot harder as you explain why campaigns went to the wrong people or your reports are “directional.”

A 2011 Gartner study noted that poor data quality lowered labor productivity by 20%. That’s 20% of your time (8 hours/week or 1 day per week) that is wasted because you had to fix data. But this loss pales in comparison to the revenue lost because your targeting was wrong.

Here are the top five reasons to invest in keeping your data clean:

– Better segmentation of leads and clients can be done, allowing you to focus your message on the right people at the right time. That 20% off coupon should go only to new prospects, not your best clients, right?

– Avoid duplicate sending of emails. In spite of all the precautions, it is possible to send multiple emails to the same lead, usually because duplicate records are not merged.

– Accurate reporting to your boss. Because the CMO has a seat at the revenue table, you must have accurate, consistent, and repeatable reports…or you cannot be a revenue marketer anymore.

– Hurt pending deals if you email the wrong marketing material to key prospects during sales negotiations. If your database is not providing that detail on lifecycle stage, that could sink a deal or two.

– Remove bad or old leads to stay below pricing thresholds. Much has been written about the cost of bad data. Your most immediate concern is that too many bad, duplicate, or old leads are pushing you over your Marketo or Salesforce pricing tier, which can result in thousands of fees per year.

So how do you keep your database clean? You can follow these principles of data cleanliness, but how do you get there inside Marketo?

I will make a few assumptions about your system:

– You have a standard Marketo system.
– You have a typical Lead-Contact-Account Salesforce setup.
– You are syncing all records between systems.
– You are not using purposeful duplicates.

Step 1: Find the Right Leads to Fix

Let’s first find the leads that are potential problems. With each client, I will go through a series of smart lists to determine the health of their database. I suggest you do the same on a monthly basis. Once the smart lists are working, this will take you no more than 15 minutes per month. This is a great way to demonstrate the ROI of your work and Marketo.

Create a table to understand the total impact on your database. The example below includes the criteria I look for, so be sure to include other fields important to your business. Breakdown each group by Marketo Only, SFDC Leads, and SFDC Contacts.

Screen Shot 2014-10-08 at 3.31.18 PM

Step 2: Use Automation to Correct Data Values

The use of automation rules to correct common misspellings or missing data goes back several decades. In the 1960s, poor data quality when sending direct mail could result in thousands of dollars being wasted. Today, data quality mistakes ruin reputations faster than a misdirected mail piece. Email reputation, choice of language, and customer experience matter and they matter more because mistakes can go publicly viral in minutes. Save your firm’s reputation with automated data cleansing.

These data management flows are one of the first things I setup in Marketo. Most firms setup similar flows:

– Country Corrector (although you should have followed Principle 1 to not need this)
– State Corrector or Mapper – often helpful if you have Country and Inferred State.
– Count of Employees to Employee Range.
– Bad Lead Source to Good Lead Source
– Email Invalid to Email is Good if the Email changed.
– Translate old field values to a new field (Full to Empty).

For example, this flow adjusts Employee Range based on Employee Number.


Step 3: Data Appending Tools
Filling in empty fields is critical to segmenting your database better. Leads do not always fill in the right Industry or Function or even Title on a form. Sometimes you have legacy data from an older system. This lack of data means you have to either send that email to fewer people, or possibly the wrong people. To fix this, you need data appending tools.

– Option 1: Fill it in yourself.

You may be able to interpolate data to backfill empty fields. Perhaps you have a SIC code instead of Industry name or Annual Revenue vs. Annual Revenue Range. Marketo can easily automate these fixes.

– Option 2: Find a data appending/enrichment vendor via LaunchPoint

There are several vendors in Launchpoint, such as NetProspex and ReachForce that can help you enrich your lead data. Some ask you for a sheet of your data, which they then clean and send back. The better option is an automated tool in Marketo or Salesforce, which checks the fields you, want, and then pushes back the right data. Most vendors use the Marketo API or Webhooks to accomplish this.

– Option 3: Use Marketo APIs to update leads

You can use the Marketo APIs to identify leads that need to be cleansed, and then update them via the API. The Get Multiple Leads by Filter Type REST API is good starting place for pulling out data from Marketo that match certain criteria. To update leads, please look at the Create/Update Leads REST API.

Alternatively, you can set up a Marketo Webhook to notify an external system that a certain event has happened, such as a form fill out. You can then respond back with values to update the lead with.

Step 4: What Should You Automate?

I provided some suggestions in Step 2. But if we want to clean up more of the database, we need to go beyond fixing data values.

– Competitor Blacklisting: make sure you are automating the collection and blacklisting of your competitors. If you have competitor-partners, it is still good to mark them properly and place them in a list to possibly suppress.


– Multiple Hard Bounces: definitely automate this flow. If a lead hard bounces more than twice in a 30 day period, set them to Suspended or Invalid. Then go in once a month to review if the issue was a typo or something else.


– Multiple Soft Bounces in 30 Days: set these to marketing suspended=TRUE for 30 days.


– Spam Trap suspension/deletion: be careful if your product means people use possible spam trap addresses. See a list of spam traps.

The Smart List


The Smart Campaign


What Not to Automate

Never automate the deletion of leads, because there is too much risk in accidentally mass deletion of the wrong records. Instead, review once a month leads marked as Trash. But if you want to delete trashed leads, run a flow like this with a 30-day wait.


Step 5: Caveats

Using automation is a great way to save time and keep your database clean. Automation is a double-edged sword because if you set it up wrong, it can cause havoc in a few minutes. Be careful as you go through these processes and keep everyone informed.

Generally I advise against deleting any SFDC Contacts because they are more likely to be active Opportunities, Clients, or ex-Clients. You may be required by Finance or Legal to retain certain records and Contacts are attached to those records. Instead, focus on Contacts that Hard Bounce, become Invalid, or become No Longer There.

Now you know a few of the techniques to keep your Marketo database clean. Let us know if you came up with other ways to automate these processes using the API or Webhooks!