CASE STUDY · DATA HYGIENE + ADMIN VISIBILITY

Building a cleanup dashboard for stale ownership

Open CRM records were tied to inactive users or missing key assignments, but the existing reporting surfaces were not reliable at runtime. I repaired the report logic, rebuilt the dashboard around actionable exception counts, and used reversible update files to clean only the records that met clearly defined safety rules.

Project summary

The useful work was not just updating records. It was making the cleanup trustworthy.

An organization had open CRM records connected to inactive ownership, inactive related managers, and blank assignment fields. The reporting surface was supposed to help administrators find those exceptions, but some reports that looked valid in metadata failed when Salesforce Analytics tried to run them.

I treated the dashboard as both a reporting problem and a production-data-change problem: first repair the runtime logic, then add clearer exception visibility, then update only the safe subsets with backups, rollback files, and readback verification.

Visual 1

Recreated admin cleanup dashboard

This mockup uses fictional categories and status labels. It shows the triage shape, not client data.

Business situation

A dashboard existed, but the admin team could not rely on it as a cleanup front door.

The organization needed a practical way to find open records still connected to inactive users or missing key assignments. Those records affected ownership clarity, follow-up accountability, and the ability to separate “ready to fix” records from records that needed human review.

The initial dashboard had the right intent: make stale ownership visible. The problem was that intent alone did not make the source reports safe to run or safe to use for bulk updates.

Original dashboard problem

The report definitions looked plausible, but Analytics runtime told a different story.

Several source reports behind the dashboard could be represented in metadata, but failed when run through the live reporting engine. That created a dangerous false sense of completion: a deployable report definition was not the same thing as a working admin surface.

For cleanup work, that distinction mattered. A broken report does not just create a bad chart; it can produce the wrong candidate list, hide blockers, or make admins distrust the entire dashboard.

Visual 2

Runtime-repair diagram

The repair path focused on what Salesforce Analytics could actually execute, not only what metadata accepted.

What I inspected

I checked the reporting path end to end.

The inspection covered the dashboard, its source reports, report types, filters, grouping behavior, and the live runtime response. I also reviewed the candidate cleanup artifacts separately so dashboard visibility and production update safety stayed distinct.

Report metadata

Which fields and filters appeared in the deployed definition.

Analytics runtime

Which definitions actually returned data when Salesforce ran the report.

Cleanup artifacts

Which rows were safe, excluded, blocked, backed up, updated, and verified.

Runtime root cause

The failure came from report-type and filter-field availability.

The strongest root-cause finding was that a helper-field or filter pattern could survive metadata handling and still disappear or become invalid at Analytics runtime if the field was not actually available on the live report type.

The fix was to stop relying on brittle helper-field assumptions. Where a standard runtime-safe field was available, I used it directly. Where related-user inactive checks needed a different shape, I moved to report structures that exposed the needed user fields at runtime.

Dashboard and report redesign

The dashboard was rebuilt around exception counts that an admin could act on.

After the runtime repair, the dashboard presentation was redesigned from dense report components into metric-style surfaces. The goal was not to make a prettier chart; it was to make the next admin decision obvious: click into the exception bucket, review the underlying rows, and decide whether a safe rule existed.

Additional missing-assignment exception views were added so blank roles and routing fields stayed visible. When a flagged field was blank, the drill-through still needed a useful grouping strategy so the opened report remained triage-friendly.

Visual 4

Candidate classification panel

The cleanup depended on separating safe candidates from records that needed review or were blocked by unrelated validation.

Safe candidate

Active related manager exists

The replacement user is present, active, and matches the field-specific rule for that cleanup pass.

Excluded candidate

No valid replacement user

The related assignment is blank or inactive, so the record remains visible instead of being forced through.

Validation blocker

Record fails unrelated required-field rule

The candidate may satisfy the ownership rule, but the live save fails for a separate business validation issue.

Recreated from the original implementation with client data removed.

Defining safe cleanup rules

A record was not considered safe just because it appeared on the dashboard.

Each cleanup pass needed a narrow rule. For example, a stale owner could be replaced only when a related active manager was present and the intended copy operation matched the rule. A missing manager could be filled only when the counterpart manager field was populated and active.

Rows without a valid replacement, rows connected to inactive related users, and rows that failed unrelated validation were preserved as review items. That is the part of the story I would rather emphasize publicly: unsafe candidates stayed visible.

Visual 3

Controlled cleanup workflow

The update workflow was built to be auditable and reversible, not just fast.

Controlled production updates

The production updates only targeted rows that matched the safety rule.

The update files were scoped from preflight results, not from a broad dashboard total. Candidate rows were backed up, update payloads were prepared separately, and rollback files were preserved where the change type required them.

That meant the dashboard could still show unresolved issues after the safe updates. In this kind of work, a remaining exception count is not automatically a failure. Sometimes it is proof that the cleanup did not overreach.

Visual 5

Verification and rollback panel

Every production change had to leave behind enough evidence for review, rollback, and future continuation.

Preflight count capturedCandidate list matched the rule before update.
Backup exportedOriginal values preserved outside the public repo.
Update scopedPayload limited to the approved safe subset.
Rollback preparedReversal files retained where applicable.
Job results reviewedSuccess and failure outputs checked after execution.
Live records recheckedReadback verified the records that changed.

Recreated from the original implementation with client data removed.

Confirmed result

The result was a safer cleanup surface, not a claim that every stale record disappeared.

The confirmed outcome was that broken runtime logic was repaired, exception visibility improved, safe candidates were separated from unsafe ones, controlled update files were used, and unresolved blockers remained visible.

That is the repeatable consulting pattern: make the system inspectable, make the safe work reversible, verify the live result, and document what still needs a human decision.

Remaining blockers

Some records were intentionally left out of the update path.

Records stayed out of the safe update set when they lacked a valid replacement user, depended on another inactive assignment, or failed unrelated validation. Those remaining rows were not hidden in the write path; they stayed visible as review items.

Lessons learned

Metadata success is not enough for Salesforce reporting work.

Final call to action

Need a Salesforce cleanup surface people can actually trust?

I can help inspect broken reports, rebuild admin dashboards around actionable exceptions, and create controlled update paths that leave behind verification and rollback evidence.