Auto Reports
Auto Reports lets you set a report (like Daily Sales) to be generated and emailed automatically on a schedule you define, instead of someone having to remember to run and send it manually.
Overview
Each schedule you create pairs a report type with a frequency (Daily/Weekly/Monthly), a time of day, a list of email recipients, and an output format — the system then runs and emails that report on its own, on time, every time.
The main screen lists all your schedules as cards, each showing whether it is Active or Inactive, its report type, frequency, time, recipient count, and its next/last run timestamps.
Every schedule keeps an Execution Logs history so you can confirm a report actually went out, see how many recipients received it, and read the error message if a run failed.
Before You Start
- Requires the Notifications feature to be enabled on your plan, at Advanced tier or above.
- You need valid email addresses for every recipient — the Recipients field is a plain comma-separated list with no validation against your Customers/Staff records.
Step-by-Step Guide
1 Create a new scheduled report
- Click Create (or "+") to open the schedule form.
- Choose a Report Type from the dropdown (options are loaded from the server, e.g. Sales Daily and other pre-built report types).
- Give it a Report Name, e.g. "Daily Sales Digest".
- Choose a Frequency: Daily, Weekly, or Monthly.
- If Weekly, a Day of Week selector appears (Sunday–Saturday); if Monthly, a Day of Month number field appears (1–31) instead.
- Set the Time of Day the report should run.
- Enter Recipients as a comma-separated list of email addresses (e.g. owner@store.com, manager@store.com).
- Choose the output Format (e.g. CSV — options are loaded from the server).
- Leave Is Active checked to enable the schedule immediately, or uncheck it to save the schedule without activating it yet.
- Click Create Schedule to save.
2 Edit, pause or delete a schedule
- Click the edit (pencil) icon on any schedule card to reopen the same form pre-filled with its current settings, then click Update Schedule to save changes.
- Click the toggle icon to Activate or Deactivate a schedule without deleting it — a deactivated schedule stops running but keeps its configuration and history.
- Click the delete (trash) icon to permanently remove a schedule; you will be asked to confirm before it is deleted.
3 Check delivery history
- Click the logs (document) icon on a schedule card to open its Execution Logs.
- Each log entry shows Success (green check) or Failed (red X), the run timestamp, how many recipients it was sent to, the generated file size in KB, and — for failed runs — the specific error message.
- Use a failed run's error message to diagnose issues (e.g. an invalid recipient address) before the next scheduled run.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Report Type | Which report gets generated and attached each run; the list of available types is server-defined. |
Report Name | Your own label for the schedule, shown on its card and referenced in the sent email. |
Frequency | Daily / Weekly / Monthly — controls how often the schedule fires. |
Day of Week | Only shown for Weekly frequency; picks which day (Sunday–Saturday) the report runs. |
Day of Month | Only shown for Monthly frequency; picks which date (1–31) the report runs. |
Time of Day | The clock time the report is generated and sent, in your store's local time. |
Recipients | Comma-separated list of email addresses that receive the report every run. |
Format | The file format attached to the email, e.g. CSV; the list of formats is server-defined. |
Is Active | Whether the schedule currently runs at all; inactive schedules are kept but skipped. |
Next run / Last run | Computed timestamps shown on each schedule card. |
Execution Logs | Per-run history of Success/Failed status, recipient count, file size, and error message for that schedule. |
Tips & Best Practices
- Deactivate a schedule instead of deleting it if you only need to pause it temporarily (e.g. store closed for a holiday) — you keep the configuration and history for when you turn it back on.
- Check Execution Logs the first time you create a schedule to confirm the very first run actually delivered before relying on it long-term.
- Keep the Recipients list to people who genuinely act on that report — schedules do not currently validate email addresses, so a typo will silently fail on every run until you notice it in the logs.
Troubleshooting & FAQ
Auto Reports is missing from my sidebar.
A schedule shows "Failed" in its logs.
I deactivated a schedule by mistake.
The Day of Week / Day of Month field is not showing in the form.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/ReportSchedules.jsx
Backend endpoints used:
GET /report-schedules/typesGET /report-schedules?storeId=:storeIdGET /report-schedules/:id/logsPOST /report-schedulesPUT /report-schedules/:idPUT /report-schedules/:id/toggleDELETE /report-schedules/:id
Related tables (db-core repositories):
ReportScheduleReportScheduleLog (execution history)
Feature flag key: notifications (requires advanced plan tier or above)
The storeId used to fetch schedules is read directly from localStorage rather than Redux scope state. Report types, frequency options and format options are all server-driven (fetched from /report-schedules/types) rather than hardcoded on the frontend, so new report types can be added without a frontend release.