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 format badge.

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 You badge.
  • 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

  1. Set the Global Notification Rules (thresholds, interval, daily report time, overdue toggle) and click Save.
  2. For each Alert Type, click Manage and add the right Internal Team + External Contacts. Set channel toggles per recipient and location scope where applicable.
  3. 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).
  4. Re-audit subscribers monthly via the CSV export when staff change.

Connections

  • Per-incident dispatch fan-out runs via DispatchIncidentNotificationJob so telemetry ingest isn't blocked by SMS/email provider latency. The job uses WithoutOverlapping middleware per incident.
  • The Alert Types Last Sent column reads from incident_notification_attempts (every delivery attempt is logged with success/failure status).
  • Overdue Alerts toggle gates the daily checklists:notify-overdue command.
  • 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.