Notification Manager
Notification Manager
Purpose
Configure who gets alerted, on which channels, and how often — across every alert type (sensor out-of-tolerance, low battery, device offline, missed temperature checks, overdue checklists, weekly compliance reports).
Prerequisites
- Email and SMS providers configured at the platform level.
- Internal team members already added to the workspace (their email and phone come from their user profile).
- For SMS: each recipient's phone number must be in international format (e.g.
+61412345678). Numbers without a country code are skipped — the modal shows a⚠ Invalid formatbadge.
Global Notification Rules
Four workspace-wide knobs at the top of the page:
| Field | What it does |
|---|---|
| Initial Alarm Threshold (minutes) | How long an out-of-tolerance reading must persist before the first alert is sent. Per-device overrides can shorten or extend this. Floor: 1 minute (lower would alert on every reading). |
| Alarm Interval (minutes) | Minimum minutes between repeat alarms for the same incident after the first alert has been sent. Floor: 1 minute. |
| Daily Report Time | When the daily summary email is sent (workspace timezone). |
| Overdue Alerts | Master switch for checklist-overdue escalations (checklists:notify-overdue command). When off, regular incident alerts still fire; only the overdue-checklist dispatcher is gated. |
Subscribers (per Alert Type)
The Alert Types table shows every notification type, a Subscribers count badge (warning-coloured when zero), a Last Sent timestamp, and Send test + Manage buttons.
Manage opens a modal with two sections:
- Internal Team — every workspace member is listed. Toggle Email/SMS per user. The currently-acting user is marked with a
Youbadge. - External Contacts — vendors, third parties, on-call services. Name + email + phone + channel toggles. External email must be valid; external phone must parse as international when SMS is enabled.
Location scope (per subscriber)
Each row has a Locations checkbox list. Leave it empty to receive alerts for all locations; tick specific locations to scope the subscription. Hidden for Global Announcement (which is workspace-wide by design).
Send test
Each Alert Type has a Send test button that fires a sample of that alert type to the calling user's email and/or SMS using synthetic preview data. Respects simulation mode (you get a "Test simulated" toast in sim mode rather than a real delivery).
Zero-subscriber confirmation
If you save with no subscribers for an alert type that previously had some, a confirmation modal appears. This is a guardrail against accidentally muting critical alerts.
Simulation Mode
- A yellow banner at the top of this page indicates simulation mode is active for this workspace or system-wide.
- In simulation mode every send is logged but no email or SMS goes out. Useful for onboarding and dry-runs; disabling it must be done by an administrator.
- New tenants default to simulation mode on. If you set up subscribers and aren't receiving alerts, this is almost always why.
What gets sent where
Templates (subject + body) are managed by administrators in Admin → Monitoring → Notification Templates. Each notification type has separate email + SMS templates that can be overridden per type (not per tenant — the templates are shared across the platform).
Global Announcements
The Global Announcement type is hidden from this page because it is broadcast by administrators from the Admin → Communications → Global Notifications page, which targets all-tenants / specific-tenants / specific-users directly rather than consulting the per-tenant subscriber list.
Exporting subscribers
Use the 📥 Export subscribers CSV button (top right of the Alert Types card) to download every subscriber for this workspace as a CSV — handy for audits when staff/vendors change.
Workflow
- Set the Global Notification Rules (thresholds, interval, daily report time, overdue toggle) and click Save.
- For each Alert Type, click Manage and add the right Internal Team + External Contacts. Set channel toggles per recipient and location scope where applicable.
- Click Send test on a couple of high-priority types to verify the message reaches you (or watch for the "Test simulated" toast if simulation mode is on).
- Re-audit subscribers monthly via the CSV export when staff change.
Connections
- Per-incident dispatch fan-out runs via
DispatchIncidentNotificationJobso telemetry ingest isn't blocked by SMS/email provider latency. The job usesWithoutOverlappingmiddleware per incident. - The Alert Types
Last Sentcolumn reads fromincident_notification_attempts(every delivery attempt is logged with success/failure status). - Overdue Alerts toggle gates the daily
checklists:notify-overduecommand. - Simulation mode is the master kill-switch — checked by both the per-incident dispatcher and the test-send actions.
Common Mistakes
- Saving with zero subscribers for a critical alert type — there's a confirmation modal but it's possible to click through.
- Adding external contacts with unverified or non-E.164 phones — SMS will fail at send. The modal warns inline.
- Forgetting to turn off simulation mode after onboarding — alerts get logged but never delivered.
- Treating Overdue Alerts as a global mute — it only gates checklist-overdue escalations, not other incident alerts.
Troubleshooting
- "My alerts aren't arriving." Check the simulation banner at the top. Ask your administrator to disable simulation mode for this workspace.
- "SMS doesn't work for one user." Their phone number isn't in international format. Update their profile to
+CCXXXXXXXXX. - "Last Sent says Never." Either the alert type has zero subscribers, or that type hasn't fired since the workspace was created.
- "I want to remove a vendor everywhere." Download the CSV export, identify every alert type they're on, then open each one's Manage modal and remove their row.
Permissions
tenancy: view notifications— see this page.tenancy: update notifications— change the Global Notification Rules.tenancy: manage notification subscribers— add/remove subscribers per alert type.