|
ContactMerge
Thoughts about a Contact Merge interface for the one-to-one model
IntroductionContact 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. ProposalWe 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. BenefitsThis interface and functionality is fairly well defined, and not overly complex. It would get merge functionality out the door relatively quickly. DrawbacksWe would not have the paint your perfect record interface of standard Salesforce.com. DeploymentThis 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: |
Sign in to add a comment
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.
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.
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.
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.
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.
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.
That would be slick UI. Perhaps we can include that in a future version.
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.
Seth,
I'll look at creating a radio button instead of a checkbox--it should be easy to do.
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
That makes a lot of sense. Thanks!
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
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
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.
Good discussion.
Just wondering which tool you have used to design the prototyping images
I'm using Omingraffle, which is kind of like Visio but better. It's Mac only and is written by http://omnigroup.com
How can I install this?