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. Used for legacy Aura/VF paths and deep engine access. |
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) |
Supported CRM objects: Account, Contact, Lead only. Custom fields on those objects are supported in rules; custom objects are not scanned.