Ensuring CRM Data Quality with DemandTools
One of the biggest problems plaguing CRM systems and their use is data quality. Once users start entering data into the system, quality degrades with duplicates, and incomplete and innacurate data. Cleansing relational data can range from the easy (modifying simple fields on record) to the very difficult (deduplicating records while making sure all related data is maintained.) Doing it well takes some pretty high-level logical thinking and expertise in whatever programming language your CRM is written in.
No longer. Incredibly complex deduplication and data cleaning is now within the reach of nonprofits using Salesforce.com thanks to today’s announcement by CRMfusion that they are donating their Salesforce.com data manipulation software DemandTools to small nonprofits.
After spending some time with DemandTools, I am amazed at the combination of power and simplicity. I will now be training all my customers in data deduplication using DemandTools, and I’m really excited to see how the improvement in CRM data quality will positively affect them.
The DemandTools Toolkit
DemandTools is a .NET application that you install on your Windows desktop and point at your Salesforce.com instance. Much like the Salesforce.com Dataloader, DemandTools will interact with your Salesforce.com data, allowing you to select what data you want to query and modify.
But DemandTools is much more than an import/export/update utility (it does do that very well, though.) Consider the Dataloader a really fast way to get large quantities of data in, out, and modified in Salesfore.com. Consider DemandTools to be a powerful tool that helps you solve the specific problems of data cleanliness–one of the big challenges of successful CRM. Data cleanliness can be broken into a couple separate problems.
Promblem 1: Duplicate Records
Duplicate records are the bane of all CRM systems. People and organizations are in the database more than once, so you don’t have a clear picture of your relationship with them. Often it’s really hard to find duplicates. And when you can find them, it’s often even harder to get rid of them.
The main problem with getting rid of duplicates is how to deal with related records. If there are duplicate Contacts, you have to migrate all the other records in the database that are related to the Contact to be deleted to the Contact to be saved. All gifts, memberships, notes, tasks, and events have to be reconnected to the Contact we’re keeping. This is a daunting job. Salesforce.com has it’s Account and Contact merge functionality to do just this set of tasks.
DemandTools has blown the doors off of Account and Contact merge. The new version has a generic Single-Table Dedupe tool. It
allows you to dedupe any Salesforce.com objects. Accounts, Campaigns, OpportunityContactRole, Households–ones that are created by Salesforce.com and ones that you create. They’ve extended the
functionality to match the flexibility of Salesforce.com. Brilliant.
They basically work like this:
- You pick the object you want to dedupe
- Youset criteria for the set of objects you want to check for dupes (all, owned by you, or build your own criteria)
- You pick the fields you want to see on the duplication comparison
- You set the criteria for determining if the objects are duplicates (exact, fuzzy, partial match on name, and any other fields you want. Plus crazy matches that don’t care about word order, ignore phrases like “the”, “and” or “-”.)
- You are presented with a list of possible dupes
- You identify which of the possible dupes you want to deduplicate
- Merging is controled in a number of ways. You can specify which fields you want to keep on the merged record, just like the Salesforce.com Account and Contact merge. Or you can set up rules that pick the fields to keep for you. You can create really complex rule sets that can be saved to XML and shared with other DemandTools users. You can also schedule deduplication to run on a schedule.
- You merge, and the non-master record is either deleted or renamed with a prefix you determine for easy deletion later
But don’t take my word for it, watch the screencast of DemandTools single-table Deduplication in action.
The interface is intuitive, and the results look to be right on. I like that the object to be deleted can be renamed, rather than deleted straight away–letting a program modify your CRM data is a bit scary, so it’s nice to have an extra verification step in there. Once I come to trust DemandTools more, I’m sure I let it delete for me.
Problem 2: Inconsistent Data
We spend a lot of time at the begining of a CRM project firguring out what data we need in the system to allow the nonprofit to get its work done. We set up the right fields, with the right picklists and options, and it’s a thing of beauty. Then it starts to get used and the data in those fields ends up looking like junk.
With picklists and multiselect lists we can control what people put in fields. You can make fields required so that the user has to enter something. But in the end, data entry is imperfect and data will be left out, misspelled, or otherwise incorrect. The MassChange tool lets you build simple update queries for any object. Change all Account billing country fields that are “US” to “USA”, for example. And you can build much more complex queries than that. I’ve been doing this with the Salesforce.com Dataloader–it simplifies this greatly.
Problem 3: Bad Addresses
Another big problem of CRM data is that addresses are bad–they’re either incomlete or the zip and address don’t match.The Zip Fix tool will look at the zip code and suggest changes to the city and state where appropriate. I ran this against my Salesforce.com and found 1047 Contacts where changes were suggested. Most of these were fixes to annoying capitalization errors I introduced a while back. Now they are all fixed, making my Individual Giving Manager happy!
The address change suggestions are made to a CSV file, which you can then point the MassEffect tool towards, doing a big update call. Here’s a nice feature: an Undo file is created, so if you realize after the fact you didn’t want to change those addresses, you can back out the changes.
Things get really interesting with ther Address Verification tool that connects to a the web service vendor Strike Iron. It uses the pay service at Strike Iron to check addresses and recommend changes in spelling, corrected zip codes, etc. It also will supply latitude and longitude, US Congressional district, and County. DemandTools comes with 2000 free lookups to the paid service that retails at about $0.03/lookup or $300/year for 10,000 lookups. I used those free lookups to fix addresses and add US congressional district to 1300 Contacts in our database. Very nice, and definitely worth paying for in the future. If they add State Legislatve District lookups we’d be the happiest folks on the planet…
Pricing
DemandTools is free to any nonprofit who has 10 licenses with Salesforce.com. Nonprofits with more than 10 licenses can purchase DemandTools for $25 x the number of licenses. A 20 user nonprofit would pay $500/year, well worth it in my eyes.
Conclusion
DemandTools is a wonderful complement to Salesforce.com CRM. I am hooked. I’ll be using it in my consulting, and I’ll be recommending this to everyone I know. If you’re a nonprofit using Salesforce.com DemandTools could really change the quality of your data for the better, and allow you to spend less time worrying about your data and more time using it in service of your mission.
I’m always happy to see the Salesforce.com business partners infected
by the corporate philanthropy of Marc Benioff. My hat comes off to DemandTools for making their enterprise-grade tools available to nonprofitshanks for the donation
CRMfusion!

July 7th, 2006 at 3:57 pm
[...] Steve wrote a good review of DemandTools on his blog the other day, so I won’t go into detail about the product here. However, I did want to echo some of his opinions. [...]
July 8th, 2006 at 7:07 pm
Wow, it’s really great of them to offer it for free, or at reduced prices for orgs with more than 10 Salesforce.com users.
However, their tool, like Salesforce’s, doesn’t handle a critical issue when it comes to de-duping: capturing any data lost, either through overwriting or through not overwriting (so the new data’s lost). The only two tools I’ve seen that can do this are RingLead and Market2Lead (they capture “lost” data either in tasks or in the Description field, respectively) - while those two companies don’t match some of DemandTools’ other offerings, I would recommend to anyone that they really look at what de-duping features they deem most important…
July 9th, 2006 at 11:18 am
Hi Chris,
Since neither of these two other tools are dedupers it is kind off a apples vs. oranges comparision. Neither of these products has the capability of finding a properly merging duplicate records that are already in the Salesforce.com database.
RingLead and Web2Lead (our business partner) are incoming filters (and good ones too). The act of pre-filtering in DemandTools is not done with the deduper that Scott / Steve reviewed, it is done with our Discovery modules (FindLeadID, FindContactID and FindAccountID. These modules do have the capability that you are referencing.
Be on the lookout for our new import module to be released before Dreamforce. We are working with 4 very large Salesforce.com customers to spec and battle test “PeopleImport”, The ultimate way to import lead/account/contacts with all the bells and whistles including multiple dedupe passes against other leads, contacts and accounts. Automatic tasking, campaign attachments, event notation and more. It also has the ability to map a save location for “contradictory field values”
Thanks
Mark Esdale
VP Business Development
CRMfusion Inc.
October 3rd, 2006 at 10:11 am
Here is the best thing about DemandTools - Their support!! Especially Laurie Hannon (forgive me laurie if I spelled it wrong!)
I was having a nerve racking ‘unhandled exception’. Now here I am, a foundation grantee - didnt pay a DIME to demand tools. But she and Mark went through a GoToMeeting Session with me, ran it by developers, ransacked previous case history of theirs, did everything they could. In the end, I ended up figuring out myself (pat on my back) - and I am pretty sure it had to do with the java options in IE. (blech. IE). Even though they themselves didnt come up with the answer - I was overwhelmingly impressed by the service. I never felt like the poor begging non-profit I usually feel like! I was handled with respect and decency - and Mark took calls from Laurie in his car and on planes about the problem.
Now I just happen to be a c3 with a sister PAC organization. And I am a former campaign organizer. You can guess who is going to be recommended to each and every endorsed candidate our PAC comes up with when it comes to software and data.
DemandTools GETS IT. And where they haven’t figured it out, they are working on it. I just love how they understand the importance of LISTS. (something refreshing in the NP world). And if they haven’t figured it out yet, they are making it a priority for their releases.
These folks have a staff that loves their job. And they give out NP licenses to SF donation grantees! They really have a conscience for making the world a better and easier place for those of us committing our lives to something.
I can’t say enough good things about them!
What I still need - isnt really a problem on their end - its more like SF’s end. When you use the SF import wiz, you can map those street 2 and street 3 lines - but you can’t any other way. Or the whole NAME thing in SF. I can’t map prefix/first/middle/last/suffix, and not being able to do that any other way than the SF wizard makes me nuts.
GRRRR. But YEAH for DemandTools!
October 9th, 2006 at 12:21 pm
[...] I’ve spoken of DemandTools before, and I do so repeatedly…to anyone who will listen. In fact I was talking Meghan Nesbitt last night about it, and she said, “you’re really excited about it…” Sorry, but it’s awesome [...]