Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

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

share|improve this question

4 Answers 4

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

share|improve this answer
    
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 '11 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. –  Alex Feinman Jul 29 '11 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 '11 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).

share|improve this answer
    
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 '11 at 3:25

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

share|improve this answer

Iirc merging data was analyzed by Fowler in the context of PEAA Offline Concurrency Patterns: Optimistic Offline Lock, Pessimistic Offline Lock, Coarse Grained Lock, Implicit Lock.

On the other hand if you interpret data you merge as messages "could you please insert Simon in the name field of contact 6842" then EAI Aggregator looks worth considering.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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