How to choose which contacts to merge, and which to delete?

Kia ora Everyone,   We need to import a list of clients from one software product into another. The current database is a mess with many double-ups.    There are multiple people using the system, some have (severe) dyslexia, therefore, there are multiple companies with the same name, spelled differently. The same problem with people's names (the company contact) “Joe Bloggs” “Jo Blogs” “Joseph Blogs” Each company/company contact can have information that is different. Eg Mendix has the address “10 mendix street” and Mendecks (same company different spelling) might have the new address of “40 Rotterdam street”. Our client would like to be able to pick and choose what information to merge so that their new database will be up to date. We will be using Phone Numbers to search for companies and contacts in our app to avoid this issue.   Does anybody have a preferred method for: - Finding duplicate names/ addresses/ emails that aren’t identical? - Merging contacts when there are differences in the information that they contain? Cheers, Kitti  
1 answers

Hi Kitti,

Interesting topic. My suggestion would be to use something like the following structure

Create a Search page where you are able to fill in a PhoneNumber. Based on that, you can search your contact data for the PhoneNumber and create Result records for each hit (copying the data and linking it to both search and originating Contact. Let's say you have 3 Results, then you could change the ‘LeadingRecord’ attribute for the “Best” contact to true. This can then also set all the ‘UseThis..’ attributes to true. Then you can eg switch the ‘UseThisName’ attributes to true on the second Result record (setting UseThisName in the Leading Result record to false. etc etc).
When you are done, you can call a microflow that will update the Contact object related to your LeadingRecord and use the values related to the ‘UseThis..’ attributes in the other results to update the contact (eg When UseThisName = true for the second Result, the Name from this record will be pushed to the ‘LeadingRecord’ related Contact)

Then you have to decide what to do with the other Contact records (introduce a deactivated status, or simply delete).

All is getting more complex of course when you have all kind of associated objects to your Contact. Which ones to choose there… But principle could be the same.

Hope this helps.