Skip to content

Scheduled report emails

A schedule emails one report every day, week or month. The email carries the headline figures and short lists, and links to the full report as sent.

  1. Open Reports → Scheduled and choose Schedule a report.
  2. Pick the kind: executive summary, operations report or client uptime report. A client uptime report is monthly only.
  3. Pick daily, weekly or monthly, the hour to send at and the timezone. The timezone defaults to the account’s.
  4. Add recipients: team members, outside addresses, or both.
  5. Choose Create schedule. Send test to me on the schedule’s row emails you the last complete period straight away.

On the Overview tab, Schedule this report opens the same form set to the report on screen.

Each period goes out at the chosen hour once it has ended: a daily report the next day, a weekly report on Monday, and a monthly report on the 1st. It never goes out sooner than 20 minutes after the period ends, so a report set for midnight arrives at 00:20.

A client uptime report covers the UTC calendar month and is sent at the chosen hour, but no sooner than 4 hours after that month ends, once the month’s last day of uptime data is in.

A new schedule sends its first report after the current period ends. Changing only a schedule’s name or recipients keeps its next send time. If sending is held up, only the latest period goes out, never a backlog.

  • Team members receive the report from the next send.
  • Outside addresses get a confirmation email first, and nothing else is sent to them until they confirm. It names you and your account. The link expires after 7 days; resend it from the schedule. Adding outside addresses needs a verified email on your account.
  • An address that bounced or marked an email as spam before gets no confirmation and no report. The Sent tab counts it as suppressed.

Every report email has an unsubscribe link, and mail apps can unsubscribe in one click. An unsubscribed recipient stays unsubscribed when the schedule is saved again.

  • A team member who unsubscribes leaves that schedule only. To add them again, remove them, save, and add them back.
  • An outside address that unsubscribes can’t be added to any of your account’s reports again until it resubscribes with the button on the unsubscribe page.

Outside addresses see on-call totals only, never the names of the people paged.

Reports from a client account you manage as a partner carry your brand, and come from your own domain once you verify it, like alert emails.

Reports → Sent lists every period a schedule sent or tried to send, newest first, with how many emails went out. Open one to see the report exactly as it was sent.

StatusMeaning
sentEmails went out. A note says if some failed.
failedThe report could not be built or no email went out. It is tried again after 30 minutes, until the next period is due.
skippedNobody could receive it: no recipient has confirmed yet, or every address is suppressed.

Sent reports are kept for 400 days. An email’s link to the full report works for 90 days, and stops working once that address is removed or unsubscribes. Deleting a schedule deletes its sent reports.

LimitValue
Schedules per account20
Recipients per schedule25
Confirmation emails per account50 in any 24 hours
Confirmation emails to one address3 in any 24 hours, from all accounts
Resending one confirmationOnce a minute
Test sendsOnce a minute per person, to that person only

The same limits apply on every plan.

Reading needs the read:monitors scope and changing schedules write:monitors. A key or token without read:incidents gets reports without incidents and on-call, and one without read:rum gets them without real user monitoring; the left-out sections are listed in withheld. Creating or changing an executive summary or operations report schedule needs both.

Method and pathPurpose
GET /reports/subscriptionsList schedules with their recipients.
POST /reports/subscriptionsCreate a schedule.
GET, PUT, DELETE /reports/subscriptions/{id}Read, replace or delete one. PUT replaces the whole schedule, recipients included.
POST /reports/subscriptions/{id}/testSend the last complete period to the signed-in user. API keys are refused.
POST /reports/subscriptions/{id}/recipients/{recipient_id}/resendResend a pending confirmation.
GET /reports/runsSent reports, newest first. subscription_id, limit (1 to 100, default 50) and before (an RFC 3339 time, for the next page).
GET /reports/runs/{id}One sent report, with the report as JSON in snapshot (null for a client uptime report).
GET /reports/runs/{id}/documentOne sent report as a printable HTML page.
Terminal window
curl -X POST "https://api.siteqwality.com/reports/subscriptions" \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Weekly leadership summary",
"kind": "executive",
"frequency": "weekly",
"send_hour": 8,
"recipients": [{ "email": "cto@example.com" }]
}'

kind is executive, operations or client_uptime, and frequency is daily, weekly or monthly. A team member is { "user_id": "..." }. A 21st schedule gets 409, and going over the confirmation or test limits gets 429.