Administration Guide
Administrator-focused reference for permissions, licensing, scheduling, and the package data model. End users can skip this page unless they are rolling out Data Cleanser or investigating access issues.
Permission sets
| Permission set | Purpose |
|---|---|
| Data_Cleanser_User |
Modern LWC path: DataCleanserController, app + tab, CRM
edit, package field FLS on Account/Contact/Lead, favourites and watch
objects.
Assign this for typical users.
|
| Data_Cleanser |
Full legacy engine: ~30 Apex classes, all package objects, custom
settings, and the
Data_Cleanser_Match_Engine_Admin custom permission used by
Detection Engine settings.
|
Users need standard Salesforce merge permission on Account,
Contact, and Lead, plus field-level security on package fields such as
DCM_Duplicate_Key__c and DCM_Master_Score__c.
Security enforcement model
-
Modern LWC path:
WITH USER_MODE,Security.stripInaccessiblewhen loading CRM records for groups. -
Legacy engine:
SecurityHelperCRUD/FLS checks; several legacy classes runwithout sharingor in elevated context. -
Data_Cleanser_Userdoes not grant Apex on engine classes such asMergeRecordsorBatchUpdateDuplicateKey— those run in system context during scans and mass merges.
Permission set tab visibility accepts Visible or
None only (not Hidden). Two tabs —
Data_Cleanser and Data_Cleanser1 — both point at
the dataCleanserApp LWC; keep them in sync after metadata
retrieves.
License enforcement (Feature Management)
| Package parameter | Meaning |
|---|---|
Data_Cleanser_License |
0 = Trial, 1 = Basic, 2+ =
Pro
|
Data_Cleanser_Merges_Limit |
Trial merge cap |
Data_Cleanser_Merges_Used |
Trial usage counter (updated via @future after merges)
|
Data_Cleanser_Expiry_Date |
Expiry date (2019-01-01 treated as no expiry) |
Merge gate: blocked when expired; on Trial, blocked when
mergesLeft < mergeCount (multi-select and mass merge check
count upfront).
On Pro and Basic, the License section (Settings → License) may show 0 merges left — that is expected. Merging is unlimited when not on Trial; only the meter display reads zero.
When merging is blocked, users can still browse scenarios and Review groups. Only merge and convert actions are disabled.
Scheduling — how auto-scan really works
-
Enabling auto-schedule creates one org-wide cron:
0 0 {hour} ? * * *(default hour 2 AM fromConfiguration__c). -
ScenarioSchedulerruns daily, queriesDuplicate_Scheduler__crows whereActive__c = TRUEandDay__cmatches today. -
Each matching row calls
ActivateScenario— scan only.
Auto-merge is not executed by the scheduler.
Auto_Merge__c is stored and shown in Settings UI but
ScenarioScheduler never reads it. Scheduled runs find
duplicates; merging still requires manual Review or an on-demand mass
merge.
Weekday matching: the scheduler compares
Day__c to a single-letter weekday format (EEEEE,
e.g. M), while the UI stores full names like
Monday. Verify schedule rows fire as expected in your org.
Per-row Time__c drives the Home
Next Run display; the cron uses one org-wide hour, not
per-row times.
Package custom objects
| Object | Role |
|---|---|
StratusDataShieldMaster__c |
Scenario + activation state |
Scenario_Rule__c |
Match rules |
Scenario_Filter__c |
Scan filters |
Scenario_Master__c |
Survivorship rules |
Duplicate_Group__c |
Duplicate group header |
Duplicate_Account__c / _Contact__c /
_Lead__c
|
Group ↔ CRM junction |
Duplicate_Report__c |
Scan/merge run history |
Cross_Object_Group__c |
Cross-object match group |
Cross_Contact__c |
Cross group ↔ Contact junction |
Merge_Log__c |
Warnings and errors |
Duplicate_Scheduler__c |
Schedule rows |
Batch_Status__c |
Mass merge job status |
Configuration__c |
Scheduler cron hour |
Merge_Display_Defaults__c |
UI defaults, batch size |
Merge_Option__c |
Overflow on/off per object |
Word_Mapping_Public__c |
Word map/remove dictionaries |
Scenario_Favourite__c / Scenario_Watch__c
|
Home favourites and alerts |
Fields added to Account, Contact, and Lead
| Field | Purpose |
|---|---|
DCM_Duplicate_Key__c |
Normalized composite match key |
DCM_Duplicate_Key_Re__c |
Human-readable key for display |
DCM_Master_Score__c |
Survivorship score |
DCM_Cross_Duplicate_Key__c |
Cross-object key (Contact/Lead) |
Not_duplicate__c |
Exclusion flag (present; scan filter not wired) |
Core CRM objects: Account, Contact, and Lead always ship with native merge semantics. Additional standard objects and subscriber custom objects use describe-driven consolidation — see Standard Objects and Custom Objects. Custom fields on any supported object can appear in match rules.