Skip to main content
Question

Way to only send a scheduled report if there is data in it?

  • March 19, 2026
  • 2 replies
  • 5 views

Forum|alt.badge.img

We have created a scheduled report for external trainings waiting for approval that runs every three days.  The vast majority of the time, there is no data in the report (not trainings waiting on approval). Is there a way to only have the report send if there is data in it?

2 replies

JeanetteMcVeigh
Hero III
Forum|alt.badge.img+7

Not that I am aware of, but boy, would that be great.  Maybe create an idea and share the link to the idea - I’d vote for that!


Moshe.Machlav
Novice III
Forum|alt.badge.img

Unfortunately there's no native toggle for this in Docebo's scheduled reports, the platform will send on schedule regardless of whether there's data in it. It's a commonly requested feature, but it doesn't exist in the UI today.

The workaround I've set up for a few organizations dealing with the same low-volume approval scenario is to use the API instead of the built-in scheduler:

  1. Disable the scheduled report in the UI (so it stops sending empty emails)
  2. Set up an external scheduled job (Power Automate, Workato, a simple cron script, whatever you have available) on your same 3-day cadence
  3. On each run, call GET /report/v1/report/{report_id}/count - this returns the number of records matching your report's filters
  4. Only if the count > 0, trigger the actual report delivery (either pull the data via GET /report/v1/report/{report_id}/data and format your own email, or call the report generation endpoint)

The /count endpoint is lightweight and fast - it's designed exactly for this kind of conditional check before doing heavier work.

It's a bit more setup than a simple toggle, but once it's running it's clean and reliable. The full reporting API docs are here: Scheduling and sending custom reports

Happy to share more detail on the flow structure if helpful.