Skip to content

Notification rules ​

Who this is for: Tenant owner, Admin
What you'll achieve: Control who is notified: and how: when the duty board changes

Requires role

notify.configure. Tenant owner or Admin

Before you begin ​

  • School setup should be underway so publishes will fire real events
  • Decide which events matter for duty leads vs all staff

Notification rules

Open rules ​

  1. Open Notifications.
  2. Scroll to Notification rules (below the inbox).
  3. Select Add rule or Edit on an existing rule. The editor opens in a side panel.

Default rules are seeded for new tenants: review them before go-live. Existing schools keep the rules they already have, so newer triggers (lesson cover gap, MIS sync failed, MIS sync stale, weekly missed work) need adding once with Add rule.

Triggers ​

TriggerWhen it fires
Day publishedA duty day goes live
Same-day changeA staff member's duty on the live board for today is moved, removed, or swapped (including proposed-current edits staff already see)
Personal assignment changeA live future day's assignment changes for that person
Rota change requestedA staff member asks to come off a duty from My schedule. Duty leads are notified. The requester gets a separate "we received your request" notice
Rota change decidedA duty lead approves or rejects that request
Unfilled postA published day still has unfilled duty slots
Lesson cover gapA published day still has lessons that need class cover
Only if needed usedLeadership or staff marked “only if needed” are placed on duty
MIS sync failedA hosted CSV teaching timetable pull fails
MIS sync staleA hosted CSV pull has not succeeded for longer than twice its saved schedule window (automatic refresh is coming soon)
Weekly missed workEnd-of-week branded report of missed weekly blocks (how many and why, plus suggestions awaiting confirmation). Recipients are this rule's audience. Schedule and interventions-only vs all missed work live under Automatic email settings

Audience ​

Combine:

  • Staff on duty (assignees)
  • Role checkboxes: Duty leads, Admins, Owners, Office staff, All staff (role)

Channels ​

ChannelBehaviour
In-appAppears in the Notifications inbox immediately
EmailSent via the configured email provider (EMAIL_PROVIDER; console in local dev)
Staff appGeneric lock-screen alert on a signed-in phone or tablet. Only after Operator enables Staff companion app. Chat cannot turn this on.

Automatic email settings ​

Above the rules list, Automatic email settings control which triggers send email (in-app always follows rules). Changes save automatically (or use Save now). Presets:

PresetBehaviour
Publish onlyDay published + hard gap emails
All alertsEvery trigger including same-day changes
In-app onlyNo automatic emails

Quiet hours ​

When enabled, non-urgent emails (day published, last resort, weekly missed work) and non-urgent staff-app push (future-day personal assignment changes) are held during the configured window (school timezone). They send when quiet hours end or at the digest time. A Friday afternoon missed-work report can therefore land at digest time if quiet hours are on.

Urgent triggers always send immediately:

  • Same-day change (personal assignment changed today, including staff-app push)
  • Rota change requested / decided
  • Hard gap (unfilled duty posts after publish)
  • Lesson cover gap (lessons still needing cover after publish)
  • MIS sync failed / stale (teaching timetable sync problems)

Morning digest ​

Optional. Combines queued emails for each person into one message instead of several overnight emails. Works best with quiet hours (e.g. hold 22:00–07:00, digest at 07:00).

Production deployments should schedule GET /api/cron/notification-digest (with CRON_SECRET) every 15–30 minutes so queued mail flushes promptly.

Rota document for staff ​

Under Automatic email settings, Email rota document to staff on the rota sends the PDF or Word attachment to people assigned on the board. Choose when it goes out:

WhenBehaviour
When publishedSends as soon as you publish a day or week. If you publish tomorrow in the afternoon, staff get the email then. This is the default, and what existing schools keep
On a scheduleSends at a clock time in the school timezone (Setup). Daily emails that day's rota from the time you set, on operating days only (for example 07:00 on the morning of the duty). Weekly emails the current week pack from the weekday and time you choose

On a schedule, the day or week must be published first. If it is published later than the send time, the email goes out on the next run after publishing, and only once per day (or per week). Publishing does not send the document itself, so an afternoon publish no longer emails staff that afternoon. Rule-based alerts such as Day published are separate and still follow the settings above.

The attachment always shows the board as it stands when it is sent, the same as a manual export. On a weekly send, days later in the week that are still drafts appear as planned rather than final.

Production deployments should schedule GET /api/cron/rota-document-email (with CRON_SECRET) every 15 minutes so scheduled sends run close to the time you chose.

Email PDF/Word rota on Exports and Today is a separate manual send. Rule-based text alerts for publish, same-day change, hard gap, and last-resort triggers are controlled by the presets above.

Weekly missed work ​

Under Automatic email settings, Email the weekly missed-work report sends a branded SchoolRota summary (official SchoolRota wordmark, school logo and colours, confirmed and awaiting-confirmation counts, reason and item tables) to the people on the Weekly missed work rule. Choose the weekday (default Friday), time in the school timezone, and whether to include interventions only (default) or all missed work.

The report covers the operating week the send day falls in (Monday to Friday on a five-day week), so a Friday afternoon send reports that same week. Empty weeks send nothing, and the week is not marked complete, so a late log can still trigger the report. Weeks with only suggestions still send. Production deployments should schedule GET /api/cron/missed-work-digest (with CRON_SECRET) every 15 minutes.

The branded report is not a plain notification email. In-app messages still follow the rule.

Priority ​

  • Normal: informational
  • High: requires confirmation in the inbox

Message templates ​

Select Manage templates, then Edit or Add template. The editor opens in a side panel.

Merge fields:

FieldReplaced with
Recipient / staff display name
Duty date
Link to the day board
Context for the change

See Notification merge fields.

Message templates

What happens next ​

Troubleshooting ​

ProblemWhat to try
Inbox empty after publishConfirm a rule exists for Day published with in-app channel
No emails in local devCheck console output. EMAIL_PROVIDER=console logs instead of sending
Cannot edit rulesNeed Admin / Owner with notify.configure

SchoolRota documentation. Every slot covered, every day.