Notification Events & Types

What triggers a FreeMaint notification, which channels carry each event, and how to tune who hears what

5 min read

FreeMaint emits notifications when work orders, intervention requests, preventive maintenance plans, parts inventory and other entities change state. Every event flows through three delivery channels (in-app, email, push) and can be tuned per role, per channel, and per quiet-hours window.

Events that trigger notifications

Each event corresponds to a specific state change in the system. Events are emitted at the source of the change โ€” for example, when a work order is assigned, when a request is closed, or when stock drops below the reorder point โ€” and are then routed to the recipients configured for that event.

workOrder.created

A new work order is created

workOrder.assigned

A work order or its team is assigned to a user

workOrder.statusChanged

Status transition (in progress, on hold, completed, validated, closed, cancelled)

workOrder.overdue

Per-WO overdue alert (one notification per overdue work order)

workOrder.overdue.summary

Daily roll-up digest of all overdue work orders (one notification per day)

request.created

An intervention request was submitted (portal, QR, or in-app)

request.statusChanged

A request was approved, rejected, converted, or closed

pm.due

A preventive maintenance plan is due today

pm.upcoming

A PM is approaching its due date (default: 7 days ahead)

inventory.lowStock

A part dropped below its reorder point

vehicle.document_expiring

Fleet vehicle document (registration, insurance) is approaching expiry

driver.license_expiring

Driver license expiry alert

Delivery channels

Every notification can be delivered through three independent channels. A single event can fire on one, two, or all three โ€” administrators control the matrix per event per role from the notification settings page.

In-app

Bell icon in the top navigation. Always available, never blocked by a third-party. Best for non-urgent updates.

Email

Delivered through the FreeMaint Postal pool (primary) with Brevo fallback. Honours the user's preferred language. Subject to email-client filters.

Push

Mobile app push notification (iOS/Android). Real-time, but requires the app installed and the user logged in.

Who receives each notification

Recipients are resolved at emit time based on the event configuration. The same event can target different audiences depending on the role mapping you choose.

Assignee

The user the work order is assigned to. Receives status changes, comments, and overdue alerts on their own work.

Creator

The user who created the entity (WO, request). Useful so the requester sees lifecycle updates.

Team

All members of the team(s) attached to the work order or asset (includes the team leader, even if not a member).

By role

Any user holding the listed role gets the notification. The list shows every role defined in your company (Settings โ†’ Roles), custom roles included. Use for digests and managerial roll-ups.

Per-event vs daily digest

Some events have both a per-occurrence channel and a daily roll-up digest. The classic example is overdue work orders: enabling workOrder.overdue floods recipients one email per WO, while workOrder.overdue.summary sends a single morning brief with the full list. Choose whichever matches your team's tolerance for inbox noise.

Quiet hours & languages

Push and in-app channels respect the recipient's profile. Email subjects and bodies are translated into the user's preferred language at send time, regardless of the actor's language. There is no global quiet-hours window today โ€” schedule-sensitive events should be opted out per recipient via the personal preferences page.

Common issues

A user is not receiving an event they should

Check the event row in Settings โ†’ Notifications: is the relevant channel enabled, and does the role list include this user's role? Then check the user's personal preferences.

Emails arrive but pushes don't

The user must be logged into the mobile app on at least one device. Re-login if they recently changed phone.

Same event arrives twice

User probably has two roles that both subscribe (e.g. ADMIN + MANAGER on the same row). Dedup is per-channel, not cross-role โ€” adjust the row to a single role.

Tip

Subscribe by role rather than by named user. When you onboard a new manager, they automatically inherit the matrix; you don't have to remember to wire them in.

Was this page helpful?