With DataTrim Dupe Alert, Matching and Merging records is NOT limited to being a one-man’s Job.
By intelligently segmenting your data into logical parts, you can match and review these parts separately.
By involving multiple data-stewards and even end-users, you will improve the effectiveness of your cleaning process and increase your visibility to the cleaning initiative.

In this and 2 related blogs we will talk about:

  1. Segmentation: How to break your data into logical segments, and how to create views for more effective reviewing and matching.
  2. Permissions: Sharing Rules, Record Ownership, and how you provide review and merge processes respecting this.
  3. Collaboration: Engaging the End-users in the Review and Merging process, or just allowing them to provide feedback on the duplicates.


Engaging the End-User in a data quality initiative and making decision on how to merge duplicates is the ultimate solution, but not always practical, as it takes time away from the end-users – Unless it is well implemented!

There are many advantages by enabling the End-User to participate in the Review and Merging process, but there are also traps to avoid.

Some companies do not allow their end-users to e.g. delete account records, because they may be linked to a back-office, order or invoicing system. Merging implies deleting on of the accounts, so a merge can only happen once the 2 accounts have been validated as not yet created in the linked system, or the dupe has been blocked so that it isn’t resynched and reappear next time a synch is done.

In these cases, the workload at the end-user level should be reduced to a simple feedback, with indication of which record to keep and what data to merge, and then someone central with access to both systems can do the necessary.

The Dupe Status on the Detail page is a nice way of dealing with the dupes, as you only deal with it once you come across it, and so it doesn’t take up hours of extra work, but the end-user may actually be curious to see that there is a potential duplicate, because it may be a new opportunity for him/her to reach out and generate new business.

Dupe Status, Contact

Clicking the Merge Button/link will provide the end-user with the possibility to merge the related duplicates.

merge wizard - anne marie

For more structured reviewing and merging, the ability to browse through list, and either providing feedback or merging like the data steward is after all more effective for larger cleaning initiatives.

Feedback process

In DataTrim Dupe Alerts, the Dupe Status (on the Detail Page) provides 2 options, one (the Merge button/link) which will launch the Merge Wizard and one (Review button/link) which will provide the Feedback feature.
The feedback feature, will show a screen, which is very similar to the Merge Wizard, but in place of the merge buttons, the user will be provided with the option of providing feedback on the 2 duplicate records provided.

Merge Wizard, review only

The Merge button/link can be hidden, from the setup, so that the end users only have the Review button/link.

List Views

In DataTrim Dupe Alerts we leverage the standards functionality for List Views, and obtains therefore a high degree of flexibility in creating custom view in a familiar environment.

Like discussed in the Blog about Reviewing and merging with special Permission settings we can leverage the same mechanism here to create a formula field which determines which Dupes a User should be allowed to review.
A formula field, which e.g. flags records where the current user is the owner of both records in a Matched Record Set:

'Account-Account', IF (TRIMDA__Account1__r.OwnerId = $User.Id && TRIMDA__Account2__r.OwnerID = $User.Id, 'true', 'false') ,
'Contact-Contact', IF (TRIMDA__Contact1__r.OwnerId = $User.Id && TRIMDA__Contact2__r.OwnerId = $User.Id, 'true', 'false') ,
'Acc+Contact-Acc+Contact', IF (TRIMDA__Contact1__r.OwnerId = $User.Id && TRIMDA__Contact2__r.OwnerId = $User.Id, 'true', 'false') ,
'false') = 'true', true, false)

A formula field, which e.g. flags records where the current user is part of the same dealership as the owner of the 2 records in the Matched Record Set:

'Account-Account', IF (TRIMDA__Account1__r.Owner.Dealer__c = $User.Dealer__c || TRIMDA__Account2__r.Owner.Dealer__c = $User.Dealer__c, 'true', 'false') ,
'Contact-Contact', IF (TRIMDA__Contact1__r.Owner.Dealer__c = $User.Dealer__c || TRIMDA__Contact2__r.Owner.Dealer__c = $User.Dealer__c, 'true', 'false') ,
'Acc+Contact-Acc+Contact', IF (TRIMDA__Contact1__r.Owner.Dealer__c = $User.Dealer__c || TRIMDA__Contact2__r.Owner.Dealer__c = $User.Dealer__c, 'true', 'false') ,
'false') = 'true', true, false)


Next: Proceed with creating List Views as described here (Permission – how to), and you will be able to have very simple List Views which your end-users will be able to access.

Giving the End-User a List View with check-boxes, and a number of buttons, may not be the most simple process for them to follow, and may requirement a little training etc.

To make the reviewing even more simple we propose that you not only reduce the number of list view to the minimum, but that you also include on each list item a link which will launch the merge feature. This makes the process a lot simpler (-also to explain).

review dupes, link

To create this link, simply create a Text field:
Review Field - Definition

Edit your List Views, to make this field the left-most field and you are set to go.

This Formula Value will launch the DataTrim Merge Wizard:
Formula Value:
HYPERLINK("/apex/TRIMDA__TRIMDA_QuickMerge?id="+Id+"&review=1", "Review Dupes", "_blank")

Note the Review=1
This parameter is the one which will make the Review Wizard show in Review mode (feedback only), if you remove the parameter, the user will get the normal Review Wizard, which will allow him/her to Merge.
Default formula, which will show the merge wizard:
HYPERLINK("/apex/TRIMDA__TRIMDA_QuickMerge?id="+Id+" ", "Review Dupes", "_blank")

If you prefer to use the salesforce standards merge facility you can use this formula value:

'Contact-Contact', HYPERLINK("/merge/conmergewizard.jsp?id="+ TRIMDA__Contact1__c + "&cid="+ TRIMDA__Contact1__c +"&cid="+ TRIMDA__Contact2__c +"&goNext=1&isdtp=vw", "Merge Dupes", "_blank") ,
'Acc+Contact-Acc+Contact', HYPERLINK("/merge/conmergewizard.jsp?id="+ TRIMDA__Contact1__c + "&cid="+ TRIMDA__Contact1__c +"&cid="+ TRIMDA__Contact2__c +"&goNext=1&isdtp=vw", "Merge Dupes", "_blank") ,
'Account-Account', HYPERLINK("/merge/accmergewizard.jsp?id="+ TRIMDA__Account1__c + "&cid="+ TRIMDA__Account1__c +"&cid="+ TRIMDA__Account2__c +"&goNext=1&isdtp=vw", "Merge Dupes", "_blank") ,
'Lead-Lead', HYPERLINK("/lead/leadmergewizard.jsp?id="+ TRIMDA__Lead1__c + "&cid="+ TRIMDA__Lead1__c +"&cid="+ TRIMDA__Lead2__c +"&goNext=1&isdtp=vw", "Merge Dupes", "_blank") ,

Custom Links for End Users

From time to time you may want to ask others to perform a Review and Merging of a particular set of records. In this case you can construct an URL, send it by Email, chatter etc., and it will launch the Review Wizard with a specific set of Duplicates.

URL Description
/apex/TRIMDA__TRIMDA_MergeWizard_List My Duplicates
/apex/TRIMDA__TRIMDA_MergeWizard_List ?dat=c My Duplicate Contacts
/apex/TRIMDA__TRIMDA_MergeWizard_List ?owner=0 All Duplicates

The Review Wizard can also be parameterized with these parameters:

Parameter Action
dat=c Include Matched Records with Dupe Alert Type: Contact-Contact and Acc+Contact-Acc+Contact
dat=a Include Matched Records with Dupe Alert Type: Account-Account
dat=l Include Matched Records with Dupe Alert Type: Lead-Lead
owner=0 Ignore the ownership, display all records
owner=1 Display only Matched Records where the current user is the owner of the Matched Record
No owner parameter Only Matched Records where the current owner is the owner of both the Dupe and the Survivor record will be displayed
review=1 The user will only see the feedback features and not be able to merge the records
da= Include Matched Records originating from a particular Dupe Alert (provide the ID)
Example: da=a077000000B0johAAB
dar= Include Matched Records originating from a particular Dupe Alert Result (provide the ID)
Example: dar= a067000001en6o5AAA

Sharing is caring!