How can I tell which Salesforce Reports and Dashboards users are looking at?
You're staring at a Reports folder with 400 items in it, and you know most of them are dead. What you don't know is which ones. Delete the wrong report and you've broken someone's Monday morning routine without warning; leave them all alone and the folder keeps growing, leading to clutter and confusion in your reporting function.
Later, this comes back to bite you again when you try to perform a field audit: you go to retire a field, find it's referenced in a report, and now you're not deciding whether to delete a field, you're deciding whether anyone still opens that report. Every unresolved "is anyone using this?" turns into clutter that compounds: more fields near the object limit, more reports nobody trusts, more confusion about what's actually load-bearing in your instance.
Last run and refresh dates
The instinct is to check when a report was last run or a dashboard last refreshed. It's a reasonable first pass — a report nobody's touched in two years is a decent candidate for the chopping block.
But these fields are notoriously unreliable. A single embedded dashboard no one’s actually looking at can keep that dashboard's timestamp looking fresh long after the last human being looked at it. A report embedded somewhere else can get pulled and rendered without ever registering as "run" in the way you'd expect. You end up with a signal that's technically true and still misleading, a date that tells you the system touched something, not that a person did.
Dashboards and the same question, one level up
If a report shows no recent activity, the next move is usually to check whether it's sitting inside a dashboard. That can save it from deletion — reports embedded in dashboard components are often the ones doing real work, even if the report view itself rarely gets opened directly.
Except now you've just moved the question up a level instead of answering it. Is anyone looking at the dashboard? You're back where you started, just with an extra hop. And dashboards have their own version of the stale-timestamp problem.
Subscriptions aren't usage either
Checking for report subscriptions feels like it should settle things — if someone subscribed, someone cares. Sometimes that's true. More often, a subscription is a decision someone made eighteen months ago and never revisited. The email lands, gets filtered into a folder, and nobody opens it. A subscription tells you that a person once wanted this report. It doesn't tell you whether they still do.
Stack all three signals together — run date, dashboard embedding, subscriptions — and you still don't have an answer. You have three different kinds of maybe.
What actually closes the gap
What none of these signals can tell you is whether a human being opened the report or dashboard and looked at it. Not scheduled, not subscribed to, not referenced somewhere — actually viewed. That's the piece missing from every method above, and it's the only piece that would let you delete something with confidence instead of a guess dressed up as due diligence.
RecordWatch tracks exactly that: who viewed which report or dashboard, and when, inside your own Salesforce instance. Instead of triangulating from run dates and subscription lists, you can pull up a report or dashboard and see whether it's actually being opened — by whom, and how often. A report with a healthy refresh schedule and zero views in six months stops being ambiguous. So does a dashboard that three people check every Monday and one person built and forgot about.
That same visibility is useful earlier than cleanup day, too — the same underlying view data is part of how teams measure Salesforce adoption more broadly, not just at the moment they're deciding what to delete.
Back to the folder with 400 items
Once you can actually see who's looking at what, the audit stops being a guessing exercise. You can deprecate the reports nobody opens without wondering if you just broke someone's morning. You can defend keeping the ones that are quietly load-bearing. And the field cleanup that kept stalling because "a report might use this" finally has a real answer instead of a shrug — you know if the report attached to that field is alive or not, and you can act accordingly. Reporting and analytics stays lean because you're maintaining it on evidence, not on inherited caution.
FAQ
Are last-run and last-refreshed dates on Salesforce reports and dashboards reliable indicators of usage? Not on their own. System refreshes can keep a timestamp looking current even when no one has actually opened the report or dashboard, so they're a useful first filter but not a final answer.
If a report is embedded in a dashboard, does that mean it's still needed? Often, but it just shifts the question — you now need to know whether anyone is looking at the dashboard, which has the same stale-timestamp problem as reports do.
Does a report subscription mean someone is actively using that report? Not necessarily. Subscriptions tend to reflect a decision made at some point in the past rather than ongoing need, and plenty of subscribed reports go unopened for months.
How does this connect to custom field cleanup? Fields referenced by a report often get protected from deletion by default, so field audits stall on the same "is anyone using this report" question. Resolving report usage resolves a chunk of the field cleanup backlog too.
How is RecordWatch different from Salesforce's built-in run and refresh data? RecordWatch tracks actual views of reports and dashboards by user, rather than relying on scheduled-refresh timestamps or subscription lists as a proxy for whether a person looked at them.
