This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
ProductIntroductionTheclearMDMproductisanativeapplicationprovidedasamanagedpackagedthatdeliversamasterdatamanagementsolutionfortheSalesforceplatform.Therearenooff-platformcomponentstothesolutionanddataisnottransitedoff-platformforprocessingbyexternalservices.TheproductUIisLightningReadyandsupportsSalesforce1formobileaccess.TheclearMDMproductsupportstheMDMoperationsoutlinedbelowintheirlogicalsequence.FurtherdetailsforeachMDMoperationisprovidedintheproductQuickStartdocumentation.(BT)Normalisation.StandardisationoffieldvaluesusinglistCustomSettinglookups(Countrycodes,Root FirstNames etc.) or predefined transformation formats (email domain,URL, Title case etc.).NormalisationgeneratesBlockingKeys(ormatchkeys)usedasthefirstpassinrecordmatching.(BTU)Matching.Cross-objectmatchingofrecordsusingkey,deterministicandprobabilistic(fuzzy)matchingrules.(B)InternalMatching.Singleobjectlargedatavolumematchingoperation.(BU)Merge. Custommerge functionality compatible with Standard and Custom objects and alsoportal enabled accounts, person accounts and contacts. There is no dependency on the standardplatformmergecapability.(B)Synchronisation.MasterRecordsareupdateddirectlytoreflectfieldmodificationsontheirSourceRecord. Synchronisation adds efficiency as the 2-stepmatch andmerge cycle is avoided; existingSourceRecordtoMasterRecordrelationshipsareutilised.(B)Conversion.MasterRecordcreationonaone-to-onebasisforunmatchedrecordsorexternaldatawhere matching is not required. Once paired Master Records updated directly to reflect fieldmodificationsontheirSourceRecords.(B)Re-parenting.ChildRecordsrelatedtoaSourceRecordcanbere-parentedtotherelatedMasterRecordvialookuprelationship.(B)CustomRollups.Numeric fieldsonChildRecordscanbeaggregated to theMasterRecord (vialookuprelationship).Prefixesindicateentrypoints:B=Batch(ScheduledJoborCustomAction–RESTAPI/ProcessBuilder)T=ApexTriggerU=UserInterface/Manual
DataSources AcompatibleobjectthatprovidesdatatoMDMoperations.EachDataSourcehasaSourceObjectandaTargetObjectsetting.InternalDataSourcesexposedataheldintheTargetObject.DataSource(Account)>TargetObject(Account)ExternalDataSourcesexposedataheldinadifferentobject.DataSource(ERPCompanies)>TargetObject(Account)Partition Data Sources enable a single object to support multiple DataSourceswith distinct settings. Partition Data Sources are typically used togrouprecordsrelatingtoanexternalsystem(e.g.SAP,SageX3)ortoisolaterecordsatdifferentqualitygrades(e.g.High,MediumandLow).MasterRecordDataSourcesallowMasterRecordstobeexposedtoMDMoperations via a distinct Data Source with appropriate settings such aselevated merge field priorities. A Master Record Partition data source isimplemented as a partition data source that references the record MDMstatusvalue.Check-onlyDataSources support cross-objectmatchingbetween standardobjects. The primary use case for Check Only Data Sources is duplicatecheckingacrossLeads,Contactsand/orPersonAccounts.Forexample,Leadcreation (file import, UI data entry etc.) can be blocked where the LeadmatchestoanexistingContact.
Pre-requisitesPermissionsTheclearMDMpackageinstallswithdefaultpermissionsfortwodistinctuserroles;DataStewardandMDMUser. The default permissions serve as starting point fromwhich the required permissionsstructurecanbedefinedbyaSalesforceAdministrator.TheDataStewardroleisintendedforusersthatareresponsiblefordatamanagementgenerallyandMDMprocessingspecifically.DataStewardswilltakeadministrativeownershipoftheclearMDMproduct,defineandimplementrequisiterecordlifecycles, steward candidate matches and generally take responsibility for the applicationconfiguration of the clearMDM product and the outcomes achieved. The objective of the DataSteward should be to implement optimal data management processes, supported by MDMoperations,thatabstractdataduplicationfromend-usersanddeliveraclear360-degreeviewforallmasterrecords.TheMDMUserroleis intendedforanySalesforceuserthatmaycreaterecordsorbenefitfromviewingdynamichierarchyvisualisationsrelatedtorecordstowhichtheyhaveaccess.Thedefaultpermissions,forthetworolesdescribedabove,arepackagedasProfilePermissionsandPermission Sets. In the former case the installation process allows the Profile Permissions to beoverlayedontoselectedprofileswithinthesubscriberorg.InthelattercaseuserscanbeassignedtoPermissionSetsasrequired,withnoimpactontheircurrentUserProfileassignment.TherecommendedbestpracticeapproachtopermissionsisassignmentviaPermissionSet.MDMFieldsTheclearMDMproductrequiresthateachobjectdefinedasaTargetObjectand/orDataSource isconfiguredwith a set of custom fields that complywith theMDMFields requirement outlined inAppendix A. The complete set ofMDM Fields for Account, Contact and Lead are installed by thepackagebydefault. Foradditionalobjects, theMDMfieldsmustbeconfigureddirectlywithin thesubscriberorg.
Figure1.1–AppExchangeListingTheclearMDMmanagedpackageisinstalledfromtheSalesforceAppExchangeviathe“GetItNow”link on the product listing page. The standard package installation process prompts for usercredentials (either sandbox or production) for the target Salesforce org. The first step of theinstallationprocess enablespackagedprofile settings tobeoverlayedontoexistingprofiles in thesubscriber org. Note, it is a best practice to install the package with the default settings; userpermissionsshouldbeprovidedthroughuserassignmenttothepackagedpermissionsets.Itisnotrecommendedtoinstallthepackagewiththe“installthisappforeveryuser”option.clearMDM licensing isappliedat theorg-level,notper-individualuser.Thepackage installswithadefaulttriallicensewhichexpires5daysafterinstallation.Pleasecontactusathello@clearmdm.comtopurchaseanannualsubscriptionlicense,ortodiscussspecificimplementationrequirements.PleasecontactclearMDMbeforeimplementationinaproductionSalesforceorg.Pleasenote;theproducteditionlinkedtotheAppExchangelistingistheBasicEdition.ForMidandEnterpriseeditionpackageinstallationlinkspleasecontactsupport@clearmdm.com.
Allsubsequentstepsrequirealoginuserthathasbeenassignedthe[MDMDataSteward]permissionset,orhasaprofilethatwasassignedthe[MDMDataSteward]permissionsduringinstallation.Note,thestandardpermission(CustomizeApplication)isalsorequired.Pleasenote; the“Get ItNow” linkreferencedaboveallows installationofclearMDMBasicEdition to a selected sandbox or production org with a 5-day trial license. It is notrecommendedthataproductionorgisused.Thetrialperiodcanbeextendeduponrequest.TocreateanewdedicatedtrialorgwithclearMDMEnterpriseEditionpre-configuredandasampledata-set,pleasevisittheTrialpageontheclearMDMwebsite.Step2-ProductActivationTheclearMDMmanagedpackageinstallsinaninactivestateandmustbeexplicitlyactivatedbeforechanges aremade to the application configuration. The screenshot below shows the Settings tabwhichcanbeaccessedviatheMDMcustomapplication.The[IsActive?]checkboxmustbecheckedandtheSavebuttonclickedtoactivatethepackagefunctionality.Upondoingso,additionalsubtabs,withintheSettingstab,willappeartoenableconfigurationoftheclearMDMpackagefunctionality.
3.5MergeSettingsMatched RecordGroups produced by theMatchingMDMoperation are processed by theMergeMDMoperation intoMaster Record create or update events. TheMatched Record Pair object iswherematchinggroupsarecreated,the[RecordGroupId]fieldindicatesthegroupingofrecords.SettingArea UsageMasterFieldMap ACustomFieldof[LongText,5000size]canbespecifiedtoholdthefield
3.6SynchronisationSettingsIn cases where Source Record to Master Record relationships do not require full re-evaluationwhenever the Source Record is updated, the Synchronisation MDM operation can be used tosynchronisechange(selectivelyappliedbasedonAttributeGroupsorfieldpriorityrules)totheMasterRecordinone-step.Synchronisation is enabled at the Target Object and Data Source level and requires that MasterRecordshaveavalidblockingkeyandaresetwiththe“MergeMaster”MDMStatus.SourceRecordsmustbesetfor[IsActiveforMatching?]=Trueattherecord-level–SynchronisationdoesnotworkwithAutoMatching.The Synchronisation MDM operation provides a highly efficient mechanism for the controlledpromotionofSourceRecordchangestotheMasterRecordwithoutincurringtheseparatestepsofmatchandmerge.A typical implementationapproach is to synchronise recordupdatesandapplymatchandmergetonewrecords.
Step4-DataSourcesA Data Source is configured to expose Source Records to the Matching and Conversion MDMoperations.EachDataSourcehasdistinct configuration that includesadefinedSourceObjectandTarget Object. Where the objects are different (i.e. an External Data Source) a field mapping isrequiredtoenablecross-objectprocessing.MultipleDataSourcescanbeconfiguredforbothSourceObjectsandTargetObjects.
Note,ChildRecordsthatarenotincompliancewiththecurrentsetofValidationRulesappliedtotheobjectcannotbere-parented(thedataintegrityissuemustbecorrectedmanuallybeforeupdatescanbeappliedirrespectiveofsource(UI,APIetc.).TomitigatethisscenarioaclausecanbeaddedtotheValidation Rule logic to allow updates to occur where the parent field is changing only (e.g.IF(ISCHANGED(parentField),FALSE,[logichere]).
Figure5.1–MatchingTest-Search5.1MatchingTestStep1(Search)Step1requiresasearchtobeperformedacrossSourceRecordsusingasimplefilterorcompoundfilter conditions applied with and/or logic. The search performed does not apply the configuredmatchingrules, insteadatext-basedsearchisemployedtogatherrecordswithcommonattributesthatmaynot otherwisematch.As the screenshot above shows, records are returned across datasources. The filter fieldoptions are limited to thosedefinedas active formatching for the TargetObject; as Data Sourcesmust provide fieldmappings filter conditions can be applied consistentlyacrossobjects.Thedefaultsearchfieldcanbesetviathe“Default?”optionwithintheTargetObjectSettingsFieldssection.
Onceasearchhasreturnedresults,exactly2recordsshouldbeselectedforcomparison.Selectiontakesplace via theSelect checkbox in the leftmost column.Once2 recordsare selected theNextbuttonwillbepresented;thisbuttontakestheusertoMatchingTestStep2(Compare).
Figure5.2–MatchingTest–Compare5.2MatchingTestStep2(Compare)Step2enablescomparisonof2candidatesourcerecordsusingthematchinglogicconfiguredfortheTargetObject(PersonAccountintheexampleabove).Foreachrecordtheactualfieldvaluesforeachmatchingactivefieldisdisplayednexttotheconfiguredmatchingsettingsforthefield.TheComparebutton invokes amatching operationwhich calculates thematching score for the 2 records. Theprimarypurposeofthisfunctionistoenableexperimentationwiththeconfiguredfield-levelmatchingsettings.OnceasatisfactoryresultisachievedtheApplytoSettingsbuttoncanbeusedtoupdatetheTargetObjectmatchingsettingsbasedonthecurrentsettingvalues.Note,the2recordsselectedforcomparisoncanalsobedirectlymergedviathe“Merge”button,thiscapabilityallowsduplicaterecordsthatmaynotshareablockingkeytobematchedandmergedonanad-hocbasis.
5.3FindMatches(Optional)TheFindMatchesfeatureisaccessiblefromacustombuttonaddedtothepackagedpagelayouts.Forcustom objects (or standard objects without packaged layouts) a custom button can be createddirectlywithinthesubscribedorgusingtheformatbelow./apex/clearmdm__FindMatches?id=[Merge Expression for Record Id – REPLACEME]
Figure6.1–JobsPageNote,Jobswillnotrunconcurrentlyforthesametargetobject.AsthescreenshotaboveshowsaJobcanbescheduledonarecurringbasistoaspecifiedrecurrencepattern;Daily,Weeklyetc.ItisalsopossibletofiltertheDataSourcesreferencedbyanindividualjob;this option allows selective processing to be applied across larger data sets thatmay have beenpartitionedusingPartitionDataSources.
6.1JobChainingMDM operations have a logical sequence of application; normalisation precedes matching andmatching precedes merge for example. To enable efficient automation of MDM processing it ispossible to chain jobs together in a seamlessmanner. Job chaining is specified via Target Objectsettings;thesupportedjobrelationshipsarelistedbelow.ChildJob ParentJob(s)Synchronisation NormalisationMatching Normalisation,SynchronisationMerge MatchingConversion Matching,MergeRe-parenting Conversion,MergeCustomRollup Re-parenting
6.2CustomActionSupportMDMOperationscanbeinvokedviaProcessBuilderortheRESTAPI. IntheformercaseaProcessmust be declaratively defined with an Apex action that references the class[clearmdm__BatchJobRunAction];theMDMOperationandTargetObjectparametersarerequired,theDataSourcesandProcessCountparametersareoptional.CustomActionsupportenablesMDMprocessing to be incorporated into any process automation logic implemented through ProcessBuilder. The same Custom Action referenced above is exposed via the REST API enabling MDMprocessingtobeinvokedbyoff-platformprocessing.AtypicalusecaseforthiscapabilityiswheredataintegrationtasksrequireamechanismtoinitiateMDMprocessingoncompletion.ForexampleonceanETLtoolhasfinishedloadingrecordsintoSalesforceobjectstheNormalisationMDMoperationcanbeinvoked,whichmaybechainedtotheMatchingMDMoperationtodeliverfullyautomatedend-to-enddataprocessing.