Not verified hands-on. This article was written from primary documentation rather than reproduced in an org, so it carries no tested-release badge. If you run it and something differs, say so in the comments and it gets tested and corrected.

A report subscription runs a report on a schedule and emails the result, and the critical setting is who it runs as. Run it as yourself and recipients see your data, not theirs. That is the same exposure as a dashboard running user, delivered by email where your sharing model has no reach. The second most common problem is an empty email, and that is nearly always the running user seeing nothing.

What replaced what

Classic had “Schedule Future Runs” on the report itself. Lightning replaced it with subscriptions, accessed from the report’s Subscribe button. The mental model changed with it. A schedule used to be a property of the report. A subscription is a property of a person’s relationship to the report, and different people can subscribe to the same report on different schedules with different recipients.

Each user gets a fixed allowance of report subscriptions, fifteen in most orgs, and a smaller allowance for dashboard subscriptions. Hit the cap and you unsubscribe from something before you can add another. There is no pooling and no way to buy more.

Who the report runs as

The subscription dialogue offers three options and they have very different consequences.

Me. The report runs with your access. Every recipient sees your view of the data. If you are an administrator, that means everyone on the distribution list sees everything, regardless of their own permissions.

Another person. Same behaviour, someone else’s access. Used when the subscription should reflect a specific role’s view, and it requires the permission that allows running subscriptions as another user.

Each recipient. The report runs once per recipient with that person’s access, so everyone gets their own numbers. This is almost always what people intended, and it is the option they most often fail to select because the default is Me.

Conditional subscriptions

You can attach conditions so the email sends only when the results warrant it. Conditions are evaluated against aggregate values from the report: record count, sum of a field, average, and so on. Not row-level values. You cannot say “send if any record is overdue” directly. You can say “send if record count is greater than zero” on a report already filtered to overdue records, which gets you the same outcome.

You get a small number of conditions per subscription, combined with AND or OR, plus a choice of sending always or only when conditions are met. The second option is what turns a daily noise generator into an actual alert.

Why the email is empty

In rough order of frequency:

  1. The running user cannot see the records. Sharing, role, or territory. Run the report while logged in as that user and the mystery ends immediately.
  2. A relative filter that depends on the runner. “My opportunities” or a scope of my team’s records evaluates against the running user, not the recipient, so a subscription run as an administrator with no records returns nothing.
  3. The date range has moved past the data. A relative range like LAST 7 DAYS works until the process feeding the data stops. The email then arrives empty, and empty reads as “nothing to do” rather than “the integration is broken”.
  4. Conditions were met but the report is genuinely empty, because the condition tested something other than what you assumed.
  5. The running user is inactive or has lost the folder. Subscriptions attached to a departed employee keep firing until someone notices.

Scheduling and timing

Subscriptions run on a daily, weekly or monthly cadence at an hour you choose. The hour is a window, not a guarantee. Salesforce queues scheduled work and runs it when capacity allows, so an 07:00 subscription can arrive at 07:40 under load. Build processes that tolerate that, and never make a subscription the trigger for something time-critical.

Dashboard subscriptions follow the same pattern, with the important exception of dynamic dashboards. A dashboard that runs as the logged-in user has no single result to compute ahead of time, so it cannot be refreshed on a schedule.

Frequently asked

Can I subscribe someone else without telling them? With the right permission, yes. You can add users, roles and groups as recipients. They will receive email they did not ask for, so this is a permission worth restricting.

Do subscriptions count against email limits? They are system email rather than Apex email, so they do not consume the single-email governor limit. They do still land in inboxes and contribute to deliverability reputation.

What happens when the report is deleted? The subscription stops. Recipients get no notification that it stopped, which is why “the report stopped arriving” is a support case rather than a self-diagnosed problem.