Notification Preferences & Quiet Hours
Notification Preferences & Quiet Hours
Each user can customise how and when they receive notifications. Preferences are stored in the NotificationPreference model with per-type settings for every notification category, and quiet hours allow you to pause non-urgent delivery during off-hours.
Accessing Preferences
Navigate to Configuration > Communication > Notifications tab. This page displays a table of all notification types with toggle switches for each delivery channel.
Five Delivery Channels
| Channel | Field | Description |
|---|---|---|
| In-App | in_app_enabled | Real-time delivery via WebSocket to the Notification Centre dropdown and feed |
| email_enabled | Email delivery with configurable frequency (instant, hourly, daily, weekly) | |
| SMS | sms_enabled | Text message delivery via Twilio; restricted to high and urgent priority only for cost control |
| Push | push_enabled | Browser push notifications and PWA mobile push via the service worker |
| Desktop | desktop_notifications_enabled | Browser Notification API; requires the user to grant permission when first prompted |
Email Frequency Options
The email_frequency field controls how email notifications are batched:
- instant — Each notification triggers an immediate email
- hourly — Notifications are batched and sent once per hour as a digest
- daily — A single daily digest email summarising all notifications
- weekly — A weekly summary email sent at the start of each week
Core Notification Types (10)
These types are always available regardless of which addons are enabled:
- project — Project assignments, status changes, deadline warnings, equipment shortages
- equipment — Maintenance due, damage reports, conflicts, checkout/check-in events
- invoice — Invoice creation, sending, payment received, overdue alerts
- quote — Quote sent, approved, rejected, expiring soon
- repair — Repair created, assigned, status changes, part ordered, warranty claims
- crew — Shift assignments, schedule changes, timesheet approvals, certification expiry
- warehouse — Low stock, transfer requests, packing ready, checkout/check-in
- message — New messages in threads, channels, and direct messages
- system — Platform maintenance, security alerts, account notifications
- warning — Critical system warnings requiring immediate attention
Addon-Conditional Notification Types (6)
These types appear in the preferences table only when the corresponding addon module is enabled for your tenant:
| Type | Required Addon | Events |
|---|---|---|
| transport | Transport & Logistics | Delivery scheduled, pickup scheduled, route changed, delivered, vehicle maintenance due |
| phase_planning | Phase Planning | Phase plan approved, induction required |
| load_planning | Transport & Logistics | Load plan assignments and completion events |
| rams | RAMS & CDM | Risk assessment updates, method statement approvals, toolbox talk reminders |
| site_mapping | Site Mapping | Map updates, zone changes, site plan approvals |
| pat_testing | PAT Testing | Test due, test failed, certificate expiry |
Quiet Hours Configuration
Quiet hours suppress non-urgent notifications during specified time windows. Configure the following fields:
- quiet_hours_enabled — Master toggle to activate or deactivate quiet hours
- quiet_hours_start — Start time in HH:MM format (e.g. 22:00)
- quiet_hours_end — End time in HH:MM format (e.g. 08:00)
- quiet_hours_timezone — User's timezone for accurate calculation; five common options: Europe/London (GMT), America/New_York (EST), America/Los_Angeles (PST), Europe/Berlin (CET), Australia/Sydney (AEST)
- quiet_hours_allow_urgent — When enabled, urgent-priority notifications bypass quiet hours and are delivered immediately
How Quiet Hours Work
- The system evaluates the current time in the user's configured timezone.
- If quiet hours wrap around midnight (e.g. 22:00 to 08:00), the system checks whether the current time is after the start time or before the end time.
- Non-urgent notifications received during quiet hours are automatically snoozed using the snoozed_until field.
- A scheduled cron job processes snoozed notifications when quiet hours end, delivering them through the configured channels.
- If quiet_hours_allow_urgent is enabled, notifications with urgent priority bypass the snooze and are delivered immediately regardless of the time.
SMS Cost Control
SMS delivery is restricted to notifications with a priority of high or urgent. Normal-priority notifications are never sent via SMS, even if sms_enabled is toggled on. This prevents excessive Twilio costs while ensuring critical alerts reach users by text.
Push Notification Setup
Push notifications require two conditions to function:
- The user must grant browser notification permission when prompted (Notification.requestPermission).
- The PWA service worker must be registered and a push subscription endpoint stored via the /api/v1/notifications/push/subscribe endpoint.
Push notifications work both in the browser and on mobile devices when NexusRMS is installed as a Progressive Web App.
Was this article helpful?