My favorites | Sign in
Project Logo
             
Search
for
Updated Aug 05, 2009 by gokubi
Labels: Featured, Phase-Design
ContactMerge  
Thoughts about a Contact Merge interface for the one-to-one model

Introduction

Contact merging is not easy to do in the One-to-one model. In Salesforce.com Contact merge is initiated from the Account record, which you can't get to in the one-to-one model.

Also, merging Contacts won't deal with the one-to-one Accounts. Those Accounts need to be merged as well.  Issue 42  addresses the existing problem. Issue 41, is a related problem--in the one-to-one model Lead Conversion doesn't allow for merging to existing Contacts.

Proposal

We build a VisualForce Contact merging interface accessed via a Tab. The User searches for a Contact by name.

A list of matching Contacts is returned. The User can select up to 3 Contacts for merging.

I propose that version 1 of the merge functionality has one winning Contact, and the others are merged away. I don't propose to build the "paint your perfect record" interface that exists in the Salesforce.com standard Contact merge. This could be added in a future release.

Clicking the merge button first merges the one-to-one Accounts for the selected Contacts. It then merges the selected Contacts, leaving one Contact and one Account, correctly connected.

Benefits

This interface and functionality is fairly well defined, and not overly complex. It would get merge functionality out the door relatively quickly.

Drawbacks

We would not have the paint your perfect record interface of standard Salesforce.com.

Deployment

This could be included in the Contacts and Organizations package. Because it is called from a Tab, it is easily hidden.

Here is a screen movie of a prototype of the interface. Please watch and comment if you're interested.

http://www.youtube.com/watch?v=5uslRBWPiB0&fmt=22

New update on 1/30/09:

http://www.youtube.com/watch?v=LLod654cl0Y&fmt=22

Iteration 3:

http://www.youtube.com/watch?v=3Ae_9SqXPF0&fmt=22

Iteration 5:

http://www.youtube.com/watch?v=0iPNCJgvGTM&fmt=22


Comment by j...@jeffdouglas.com, Jun 27, 2009

Steve, this is almost exactly the same functionality that I wrote in our Java CRM system a couple of years ago. On the UI side, the only thing I did differently was to allow them to search multiple times and add contacts to a "cart" (essentially a holding bucket) to be merged. I had the same concept of the winning record that all other contacts would be merged into with the notification to move any data to the winning contact that they wanted to retain. I don't think you can build a effective UI that says, take field 1 from contact 2 and field 2 from contact 4 and field 3 from contact 27.

My biggest issue when deleting records was finding all of the related list(s) data and assigning it to the winning contact. So if the losing contacts has a number of cases, I would transfer them to the winning contact. I can see this being an issue with custom objects.

One thing that really helped was a preview pane for each contact allowing them to review the record. I also allowed them to edit the record in that same pane.

One thing that was asked a couple of times (and I never completed) was some sort of wizard that would allow them to automagically identify potential dupes based upon some criteria.

I don't think you will ever be able to write a perfect merge system.

Comment by gokubi, Jun 29, 2009

Thanks for the info Jeff.

Apex has a merge method which will do all the re-parenting of objects and references, so that's something I'm definitely going to take advantage of. The Apex merge can handle up to 3 Contacts or Accounts at a time, so I think 3 will be my limit in V.1.

Comment by tannerwells, Jun 29, 2009

Hi Steve, I think V.1 has merit as anything more complex than that should most likely be handled via Demand Tools. I do like the ability to quickly merge contacts via the standard SF contact merge, but even this is questionable compared to simply just having a strong duplication prevention plan in place and doing a schedule based Demand Tools de-duplication.

Comment by calista.carter, Jun 30, 2009

Steve, this is a good start although I agree with Tanner that anything more complex should probably be handled by DemandTools?. I'm not sure how you'd get around it w/out building something more involved, but the initial step of searching on a name seems tedious if you did not have a suspected duplicate in mind - and were instead looking for a set of duplicate records. Thanks for working on this, it'll be nice to have at least some merge functionality in place.

Comment by gokubi, Jun 30, 2009

The problem with punting to DemandTools? is that DemandTools? won't work easily with the one-to-one model. You'd have to do an Account merge and then follow that up with a Contact merge. If you didn't merge every one-to-one contact where you had done the Account merge, data would be ugly.

It might not be a big problem--in practice DemandTools? may work fine if you do both steps, but it's not as intuitive as DemandTools? in a regular account model.

Comment by carla.estey, Jun 30, 2009

Another nice to have would be to allow a user to in-line edit the fields of the records to keep. That way prior to delete, the user could compare values in other fields and copy to the master record.

Comment by gokubi, Jul 01, 2009

That would be slick UI. Perhaps we can include that in a future version.

Comment by seth.sch...@leapfrog360.com, Jul 28, 2009

Steve -

I just watched the demo video of the mockup. It looks good, and in general I like the UI. One suggestion: under the Selected Contacts list is it possible to use a radio button instead of a checkbox to select the "winning" Contact? I think that would be more intuitive for showing that it's only possible to select one Contact, whereas a checkbox implies the possibility of selecting more than one, even though that's not allowed.

Of course, it will be nice to have the "paint the perfect record" feature, but I understand that's sometime in the future on the roadmap.

Comment by gokubi, Jul 29, 2009

Seth,

I'll look at creating a radio button instead of a checkbox--it should be easy to do.

Comment by jpiston, Jul 29, 2009

Steve - So grateful to have a merge functionality coming soon. One request that would be of benefit to my nonprofit would be to have the corresponding accounts show up with each contact. Though that might not be necessary in most cases, it would be in ours, for this reason: someone of our individuals have two records - one for themselves as individuals in the event that they make personal donations and a second one if they are the primary contacts at a business or community organization and played a role in that organization's donation. (I don't know if this is the most elegant approach but it has seemed to work so far). It would be helpful to see the account field so that we would be sure not to merge a contact's "professional record" with the contact's "personal record". Thanks so much for working on this merge function - it allows one to make a quick merge fix when a duplicate is noticed. Jane

Comment by gokubi, Jul 30, 2009

That makes a lot of sense. Thanks!

Comment by skyeschell, Aug 03, 2009

Steve, This looks great. However I do like the "paint your perfect record" that's in SF. I use the Force.com Dupe Eliminator to achieve contact & account merge. If you could somehow grab their code then modify it to the one2one model it would include the paint the record and the clone non-reparentable children, etc.

Skye

Comment by Aliyu.Turaki, Sep 05, 2009

A quick question about the standard merge functionality in Salesforce.

If you are using the One-to-One model and have 2 duplicate contact/Account records, is it possible to merge by: 1. Move both contacts from the one-to-one to the "Individual" bucket account. 2. Merge the 2 contacts in the "Individual" account. 3. Merge the 2 accounts that where linked to the contacts. 4. Switch the single merged contact back to one-to-one model and make sure the account assigned is the merged account also.

I am looking for a workaround for staff at my org till the merge functionality is released (not beta, I am leaving and cannot test unfortunatley). Does the steps above(if done correctly) have any issues with reassoicating related records or any other problems?

Thanks

Comment by gokubi, Sep 08, 2009

Aliyu, that might work, but having the one-to-one and bucket account models both in play might be more trouble than it's work. The system is set up to work one way or the other, so I don't know how it will behave in your example.

You certainly should try it out.

Comment by nitingupta183, Oct 09, 2009

Good discussion.

Just wondering which tool you have used to design the prototyping images

Comment by gokubi, Oct 09, 2009

I'm using Omingraffle, which is kind of like Visio but better. It's Mac only and is written by http://omnigroup.com

Comment by srpincus, Nov 09, 2009

How can I install this?


Sign in to add a comment
Hosted by Google Code