Skip to content

Scheduled reports

Every Report Builder template can also run on a schedule: weekly or monthly, the hub generates the report automatically, Ed25519-signed as always, and places it under My reports.

  1. Sidebar → Reports → Scheduled reports section
  2. Choose:
    • Template: one of the 5 Report Builder templates
    • Cadence: weekly or monthly
    • Title (optional): without a title, every report gets an automatic name with template, cadence and period
    • Language: nl, fr or en, configurable per schedule
    • Recipients (optional): email addresses, comma-separated, max 10

Limit: at most 20 schedules per tenant.

Cadence Runs on Report period
Weekly Monday 06:00 UTC the past 7 days
Monthly 1st of the month 06:00 UTC the previous full calendar month

The Next run column in the table shows the exact next moment. Pausing a schedule takes one click; resuming recomputes the next run and clears any previous error message.

Recipients get a short plain-text mail with a link to the dashboard. The report itself is never attached: signed evidence should not circulate unmanaged in mailboxes, and the download in the dashboard remains the source of truth.

Mail delivery is only active when the hub is configured with SMTP. Without SMTP, schedules keep running normally: reports appear under My reports and can be downloaded there (PDF / JSONL.gz / .sig).

If a generation fails, the row shows a red marker; hovering reveals the error message. The schedule stays active and retries on the next run. A manual retry is always possible through the Report Builder itself.

The same role requirements as on-demand generation:

Template Minimum role to schedule
Executive summary Viewer
Technical audit, Per application, Per group Editor
MSP handover Admin

Editing or deleting a schedule requires at least Editor.

Terminal window
# List schedules
curl https://api.monsys.ai/api/v1/report-schedules \
-H "Authorization: Bearer $TOKEN"
# Monthly executive report, every 1st of the month
curl -X POST https://api.monsys.ai/api/v1/report-schedules \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"template_kind": "executive",
"cadence": "monthly",
"title": "Monthly board report",
"locale": "en",
"recipients": ["ciso@example.com"]
}'
# Pause / resume
curl -X PATCH https://api.monsys.ai/api/v1/report-schedules/<id> \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'