A comprehensive and consistently applied data quality process can prevent bad data from ever getting into your database and impairing sales and marketing effectiveness. This series of articles discusses specific steps you can take to improve your process. However, even with the best of practices, bad data can find its way into your database. That’s where data quality tools like RingLead DMS are invaluable in preventing and resolving bad data.

Previous articles in this series outlined how to prevent major sources of bad data.

Most of these causes are easy to find and correct, but there are insidious gremlins that can be wreaking havoc on your data quality without your knowledge.

Third party data integrations

Frequently, companies provide online apps that provide useful information or insight into a company’s product offerings and there can often be some form of online registration, especially for freemium software.  

One company I know had over 3,000 freemium registrations per day with only the email address required in the form. These records were synced to Marketo in real time via an API call. Unfortunately, the registration app wasn’t first making an API call to query for an existing record and as a result, there were tens of thousands of duplicate records created. Remember: Marketo only prevents duplicate records being created if they are created via a Marketo form submission or list import into Marketo, and then only if the records have the same email address. A duplicate prevention solution, such as RingLead DMS, would prevent the exact email duplicates from being created.

Sales Emails

For some time, organizations have been leveraging the ability of marketing automation systems to allow sales to send personalized template-based or customized one-off emails at the most opportune times that can be tracked. An example being Marketo Insights that allow emails to be sent from the CRM or directly from Outlook / Gmail.  

These Outlook plugins or Chrome browser extensions can result in records being created in Marketo whose Last Name and Company Name are ‘mktUnknown’ and First Name is the first part of their email address (e.g. elowe777). Be sure to add filters to your smart lists that prevent these records being selected to send emails that use tokens for those fields.  

To help prevent these, train your sales team to ensure that they only send emails to persons with a record in Marketo / CRM and when they inevitably do send one, have a smart campaign that will send them a sales alert email to remind them to update the newly created ‘mktUnknown’ record with the correct values in the name fields.

Increasingly, sales orchestration platforms like Sales Loft, Outreach and ToutApp (recently acquired by Marketo) are being used to coordinate the cadence of personalized or customized emails with sales calls. These can have a separate database of email addresses and unsubscribes from Marketo / CRM that can lead to undesired consequences. I’ve seen a person who unsubscribes from a Marketo sent email and whose CRM record’s Email Opt Out field is set to ‘true’ have the value set back to ‘false’ by the sales orchestration platform.  If you have one of these platforms, work closely with your sales operations person to ensure they are playing friendly with your Marketo and CRM systems.


Webhooks are a great way to send and receive information to third party services. An example is services that validate and append data, perform calculations, send messages and more. However, webhook execution time can be quite slow.  

According to Marketo’s developer documentation, “Webhook execution time is at the mercy of the response time of the service being used and can result in long campaign execution delays.  Even if a service only takes 50ms to execute, that is 1.5 hours when executed 100,000 times.”  That is why Marketo has made the Call Webhook flow step available only in triggered smart campaigns. But if your trigger is ‘Person is Created’ and you import hundreds of records or ‘Data Value Changed’ and hundreds of leads qualify at the same time, webhook responses can be significantly delayed. Also, when a webhook request is made, Marketo will timeout after 30 seconds if a response is not received.

To ensure your webhook completes its action, especially before a subsequent flow step executes that relies on that action (e.g. location for owner assignment), do the following:

  • Use webhooks as a triggering mechanism for a web service, but the web service should send its response back via an API call. This will ensure that its response will update the record if it takes longer than 30 seconds.  
  • Don’t submit hundreds of records to your webhook at the same time.
  • Add Wait steps between the Call Webhook flow action and a subsequent flow action, requiring that the webhook has completed its action. You can add up to a 5 minute Wait step without lowering the execution priority of a smart campaign.
  • Better yet, move the flow action that is dependent on the completion of the webhook to a separate smart campaign with a Data Value Changes trigger whose Attribute is the field updated by the webhook when it has completed its action.

CRM Sync Delays

Marketo automatically syncs with your CRM every five minutes, but the amount of time required to sync the data can exceed that and in extreme cases, take hours or days. Obviously if your syncs take hours to complete, there can be discrepancies in the data in Marketo and in your CRM that can cause duplicate leads, inaccurate segmentations, incorrect communications, erroneous performance reports and more. Duplicate leads can result when someone submits a Marketo form and a new record is created, but that record’s sync to the CRM is delayed and during that time period, the person calls a salesperson who manually creates a new record for them. A daily deduplication task in a solution like RingLead DMS will detect these and resolve them.

You can quickly tell if your syncs are backlogged by navigating to the Salesforce section in Marketo Admin. In the upper right corner, the sync status is displayed. If the Last Synced date/time is in the last 5 minutes, all is well. But if the date/time is 20 minutes or more, and if that continues frequently, your data quality may be compromised.

The following are some of the major causes of significant sync delays and what you can do to prevent them:

  • Fields that are updated on thousands of records every day– Some of these fields may not need to be synced between Marketo and your CRM. For example, a Days Since Created counter. Marketo tech support can provide a list of your top syncing fields. You can make these fields not visible to the Marketo Sync user profile and potentially improve your sync delays.
  • Unnecessary explicit and implicit CRM sync flow actions in Marketo– Smart campaigns that change data values don’t need to have a Sync Person to SFDC flow action to ensure that the change gets to Salesforce. All changes your smart campaigns make will be synced automatically every 5 minutes and the mechanism for syncing bulk changes to your CRM uses fewer API calls. This can help avoid running out of API calls during a 24-hour period, which will cause all syncs to fail until the start of the next 24-hour period. Also, if your smart campaign has an implicit sync flow action, such as Add to SFDC Campaign, Create Task, or Change Owner, you don’t necessarily need to include the explicit Sync Person to SFDC flow action in the same smart campaign.
  • Change Owner flow action run on hundreds of leads in a short period– Make the owner change in your CRM instead, which will reduce the number of API calls and reduce the time required to sync the new owners back to Marketo.

Final tip – Bad data can be worse than no data. Research by SiriusDecisions shows that 25 to 33 percent of the contact database goes stale every 12 months. Most salespersons and marketers intuitively know this, but they don’t know which are good or bad without calling and sending emails until they get a recording or an email bounce. There are several downsides to this approach:

  • Your salesperson’s time is wasted calling persons no longer at their company.
  • Your email sender reputation is negatively affected by numerous emails bounces.
  • Email addresses can turn into spam traps over time as companies repurpose unused email addresses.

One method is to delete records that have been inactive for a certain period or time, but you can be throwing out a perfectly good contact who is not in a buying cycle and the longer you wait to delete the record, the greater the chance that one of the previously mentioned downsides of keeping this data will occur.  

A smarter method is to frequently validate email addresses using a provider like RingLead DMS.  Those records with invalid or dangerous email addresses should have their Email Invalid and No Longer at Company field values immediately set to ‘true.’  You can keep these records as long as needed for historical performance reporting. For those email addresses that are valid, you may want to enrich the contact data to ensure you have the latest titles, direct dial phone numbers and other info to ensure your sales and marketing efforts perform optimally.

Once you’ve implemented the process improvements suggested in this bad data prevention series, the growth of bad data in your system should be reduced dramatically. The next step is to find and clean up the bad data you already have, which we’ll discuss in a future article.


Elliott Lowe has led teams that built solid sales and marketing systems and successful programs at rapidly growing startup and public companies. At CA Technologies (NASDAQ: CA) as an ITSMA charter member, Elliott led its initial Account Based Marketing programs. Elliott’s an experienced Eloqua and Salesforce power user as well as a Marketo Certified Expert, 3x Marketo Champion and speaker at Marketo Summits.

Leave a Reply