We have over 350k products on our SalesForce and I have been tasked with identifying and removing duplicates. I'm just looking for some pointers from the Pro's to make this task a bit easier if possible?

Side Note - Some of the 'duplicates' may not have the same name (minor differences) e.g. one product is called "research document 2016 - pre publication" - it's duplicate would be called "research document 2016" (after it is published)

Hope this makes sense, any further info needed, give me a shout.

As always, appreciate the help.


Easiest way of finding the duplicates based on what you've said would be a list of them all sorted by name, and then scanning through it.

I'd suggest running a data export via dataloader.io, include the Id, Name, and any other possibly useful fields and run the export. Load into excel or similar and sort by name (or modify the initial query to include 'ORDER BY Name').

Have someone or some people if you choose to break it into smaller chunks go through the file. You are looking to end up with a file containing all those records you want to delete. So remove all non-duplicates. And where there are duplicates, remove the line you want to keep.

Export from Excel to a CSV and using dataloader.io again upload the file and run a delete against all the products you wish to have removed.

It's an easy process, but it certainly will be time consuming for that many records. And unfortunately probably does need to be a manual process.


I'm novice with salesforce, but you can try use an soql consulting and delete a lot of duplicate products. Maybe can help you with this task, uses List and Map to identify if the results is same like do you need. Sorry by any language error.

Look for anything like this: Map<String, YourSalesForceObject__c> mapAccount = new Map<String, YourSalesForceObject__c>(); List<YourSalesForceObject__c> records = Database.query('Select Id,Name from YourSalesForceObject__c where name like \'%anything%\''); records.sort(); for(YourSalesForceObject__c acc : records){ mapAccount.put(acc.Name, acc); } records = new List<YourSalesForceObject__c>(); update mapAccount.values(); records.addAll(mapAccount.values()); System.debug('#########'+records); delete records; System.debug('#########'+records);

  • Thanks for your answer, I need to wait and check for others though as yours does not really help me sorry. Im not too sure what SOQL Consulting is haha :) I am quite novice to administrator status myself. – Paul Rogers Aug 5 '16 at 13:08

The easiest way if you aske me is by using a deduplication tool. You can find several on the AppExchange. I know that the application Duplicate Check has the possibilty to set your own threshold level or to leave out frequent words etc. Maybe that will help you.

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.