We have a client of ours who has a lot of duplicate leads and contacts in their system. Now they finally decided to clean it up.

What are the options available to effectively dedupe existing records ? I am looking at best practices to dedupe leads and contacts. I understand there are options to prevent existing records like writing triggers.

Are there any appexchange apps which somebody can recommend which can clean up existing data preferably free but not necessarily.



The two most highly rated free de-duping Apps on the App Exchange are Dupe Catcher and Duplicate Check. Some of the features in the latter are available only in the paid version while everything in Dupe Catcher is completely free.

As part of full disclosure, I'm not financially associated with either company but have met some of the employees of Symphonic Source (makers of Dupe Catcher) as they're local to me. They've presented at the Dallas Developer's User Group on their Cloudingo Studio and likely attend at least some of our meetings. As we now have over 400 members it would be difficult for me to say.

As for "best practices", I think that's a difficult one to answer. Some companies like to merge duplicates while others will archive duplicate contacts and delete duplicate leads. When it comes to leads, which to do might depend on the source of the lead, how complete the info is on one vs another or how highly the one lead was ranked from one source vs the from another source as to what you'd want to do. I'd think you'd need to establish your own criteria, including any differentiation due to product interest, etc. as to how or whether to merge them. I don't think there's a simple answer considering that the process of generating and handling leads can be rather complex in many organizations.

One situation that can come up is where a duplicate contact name gets identified where a contact of the same name is is now with a different company. That's obviously a situation that needs to be handled carefully. Do you archive the contact ID for the name of the person at the previous company they were with or do you merge it with the contact ID where the same person is at a their new position in a different company? As an Account related contact ID, are there Opportunity or other records that need the old contact ID as a reference which might prevent it from being merged if related to a new account? If not, I think that's a decision an Org needs to make for itself. There's another app called Former Positions that might be helpful if you want to keep track of a contact as they move from company to company without losing that history. Again, I think that's a decision an org needs to make based on their particular needs for information and not necessarily one of what's a general best practice.

I hope this response is helpful to you.


After doing this quite a few times myself when migrating data from SQL Server to SalesForce, there are a few things I've formed as best practices of my own:

  • Determine what constitutes a duplicate. For example, companies may use the same e-mail for multiple people, or there may be different people with the same name.
  • Do you "fuzzy" match for likely duplicates In my case, there were many misspelled company names, and I had to form a way to decide that they were the same (I ended up using website, then address if they were lexically similar)
  • When you have a duplicate, which data do you carry over to the merged record? I usually went with the most recently updated, though I also did a "pass-through" of sorts, where if the info was missing in the newer record, I took it from the older record.

I can't recommend any 3rd party apps, since I didn't use any, but best of luck - Data clean-up and searching is one of the most difficult problems (just look into the research on it!)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.