Have you seen any good examples of applications (web or desktop) that make it easy for a user to identify and merge duplicate contacts or other records? We need our users to manually approve the merge rather than leaving it to an automated process.

An interesting pattern we are considering adapting is that of Xero's bank reconciliation. We would display newly created contacts on the left half of the screen and on the right display possible matches from existing older contacts. The user would then have the option of merging the new into the old or designating the new contact as a new and distinct contact. We see some similarities with the process of doing a bank reconciliation, as in a reconciliation you are matching new data (the bank statement) with your existing data (transaction details previously entered). What's interesting is that Xero have tried to actually make this process 'fun' and have succeeded by and large.

I'd love to hear any suggestions of other design patterns or apps we could look at.

Links to screenshots of how Xero works are below and more information on their reconciliation process is in their help documentation or you could register for a free trial to see how it works in person.

Xero reconciliation screenshot

Transaction: matched result screenshot

3 Answers 3


I've always been pretty happy with the way Apple presents this with Address Book.app. It's very clear what choices the user has to make as well as the results of each.

Address Book Screenshot

  • 2
    What happens with multiple matches? E.g the user selected to "keep both" and then the third time entering the same contact what happens?
    – Chap
    Apr 9, 2015 at 15:48

Google Contacts has a very nice way to locate and merge duplicate contacts.

  • Their "Find and merge duplicates.." is an interesting example as it takes virtually all decisions out of the users hands, except for accepting or rejecting the merge. However, it is a limited in providing visual cues as to what data data is changing or being added and what data remains unchanged. Then again if a user wants precise control they can manually select two contacts and merge them.
    – Simon
    Jul 29, 2011 at 3:16
  • Funny, I really dislike their merge, as it doesn't give me any control over what to merge, what to keep, when to delete nearly-duplicate values, etc. Jul 29, 2011 at 14:52
  • 1
    I think Yahoo actually has the best system for handling merging and duplicates, it is similar to Google, but actually gives you far more control over the outcome. You can see how it works on their help page (help.yahoo.com/tutorials/cont/cont/con_editcon1.html)
    – Simon
    Aug 18, 2011 at 1:48

I realize this might not be the answer you're looking for, but what if the underlying data model included sufficient information to make reasonable assumptions about what the right merge is without asking the user? Note that this is the design Apple's taking with iCloud syncing.

I.e. the design would be to remove the problem entirely, because no merge design is good because it burdens you with its personal problems (from Cooper's "Considerate Software" in About Face).

  • It certainly would be possible to do this, as contacts have a limited set of field types which can be matched intelligently. The issue this solution raises though is whether the system should cater for the smaller number of users that will want precise control over everything and the majority who just don't want this to even be an issue at all. How opinionated should the system be? 37 Signals have a view on this Getting Real - Make Opinionated Software
    – Simon
    Jul 29, 2011 at 3:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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