Report Schedules
Report Schedules let you configure automated PDF reports that are generated and emailed to recipients on a recurring basis. Instead of manually exporting data, define a schedule once and let ProBeya handle the rest.
Overview
Each schedule defines:
- What to report (report type and parameters).
- When to generate it (daily, weekly, or monthly).
- Who receives it (list of email addresses).
The report engine generates a PDF at the scheduled time and delivers it via email to all recipients.
Getting Started
- Navigate to Settings > Report Schedules.
- Click Create Schedule.
- Enter a name for the schedule (e.g., "Weekly KPI Summary").
- Select the report type (e.g., KPI dashboard, board summary, portfolio overview).
- Choose a frequency (
daily,weekly, ormonthly). - Configure the timing:
- Hour (0-23 UTC) -- required for all frequencies.
- Day of Week (0 = Sunday through 6 = Saturday) -- required for weekly schedules.
- Day of Month (1-31) -- required for monthly schedules.
- Add recipient email addresses as an array.
- Optionally set parameters as a JSONB object to filter the report data (e.g., specific board ID or date range).
- Click Save.
The schedule is created as active by default. The system automatically computes the initial nextRunAt timestamp based on your frequency, day, and hour settings.
How It Works
Frequency Options
| Frequency | Required Fields | Example |
|---|---|---|
| Daily | Hour (0-23) | Every day at 08:00 UTC |
| Weekly | Day of week + hour | Every Monday at 07:00 UTC |
| Monthly | Day of month + hour | 1st of each month at 06:00 UTC |
When frequency, day, or hour settings are changed on an existing schedule, nextRunAt is automatically recomputed. When a schedule is re-enabled after being paused, the next run time is recalculated from the current time to prevent a burst of catch-up reports.
Schedule Lifecycle
- Active -- The schedule runs at each scheduled interval and
nextRunAtadvances after each run. - Paused -- The schedule is disabled via the toggle; no reports are generated.
- Re-enabled -- The
nextRunAtis recalculated from the current time; the schedule resumes normally.
Manual Trigger
Use the Run Now button to immediately generate and send the report. This does not affect the regular schedule cadence -- it is an ad-hoc run for testing or on-demand needs.
Configuration
| Setting | Type | Validation | Description |
|---|---|---|---|
| Name | String | Required | Human-readable label for the schedule |
| Report Type | String | Required | The type of report to generate |
| Frequency | Enum | daily, weekly, monthly | How often the report runs |
| Day of Week | Number | 0-6 (required for weekly) | 0 = Sunday, 6 = Saturday |
| Day of Month | Number | 1-31 (required for monthly) | Day of the month |
| Hour | Number | 0-23 (required) | Hour of day in UTC |
| Recipient Emails | String[] | At least one valid email | Email addresses to receive the PDF |
| Parameters | JSONB | Optional | Filter criteria for the report data |
| Is Active | Boolean | Default: true | Whether the schedule is enabled |
Router Operations
The report schedules router provides six operations:
| Operation | Description |
|---|---|
| list | List all schedules for the organization (ordered by creation date) |
| create | Create a new schedule with computed nextRunAt |
| update | Partially update schedule settings (recomputes timing if changed) |
| delete | Permanently delete a schedule |
| toggle | Enable or disable a schedule |
| runNow | Manually trigger immediate report generation and delivery |
Permissions
- Any authenticated organization member can create and manage report schedules.
- All schedules are scoped to the current organization for multi-tenant isolation.
- The Run Now action is available to any member who can view the schedule.
- Schedule creation is logged with the
createdByIdfield for audit purposes.
Tips & Best Practices
Use the Run Now button after creating a schedule to verify that the report looks correct and recipients receive the email before the first automated run.
- Keep recipient lists focused -- send reports only to stakeholders who need them.
- Use parameters to scope reports to specific boards, workspaces, or date ranges.
- Review and clean up unused schedules periodically to reduce noise.
- Weekly Monday-morning reports are popular for transformation steering committees.
- Set the hour to early morning (e.g., 06:00 UTC) so reports arrive before the workday begins.
- Monthly reports on the 1st are ideal for KPI review meetings.
Security
- Report schedules are scoped to the current organization. Cross-tenant schedule access is impossible because the
organizationIdfilter is applied server-side from the session context. - Recipient email addresses are validated but not restricted to organization members -- you can send reports to external stakeholders.
- The generated PDF is delivered as an email attachment. Ensure recipients handle the attachment securely.
Reports may contain sensitive KPI data, action statuses, and project details. Only add recipient email addresses for authorized stakeholders.
Related Features
- Data Export -- One-time manual export of organization data.
- Calendars -- Working-day calendars that affect date-based report ranges.
- Integrations -- Connect reports to Slack or Teams for instant notifications.
- Audit Log -- Schedule creation and execution events are logged.