Notification rules
Rules that decide who hears about a fleet event, on which channel, how often, and what happens if nobody acts.
A notification rule reads as one sentence: when this happens, tell these people, this way. Everything else on a rule — the throttle, the schedule, the escalation — exists to stop that sentence firing more often than anyone can act on. Rules live under Customization, separately from the notification feed itself.
Who can do this
- Role
- Administrators
- Permission
notification-rules:readnotification-rules:writenotification-rules:delete
Drivers receive notifications but cannot see or edit the rules that produce them.
What a rule is made of
Every rule carries the same six parts.
- Trigger event — one of the ten events listed below. A rule watches exactly one.
- Conditions — optional filters on the event’s own data. All conditions must match; within one condition any listed value matches.
- Recipients — by role, by named person, or resolved from the event itself.
- Channels — push, email, webhook, or any combination. Each is attempted independently.
- Throttle — a cooldown that suppresses repeats for the same thing.
- Schedule and escalation — when the rule is awake, and who to chase when nobody acknowledges.
The events you can trigger on
The list is fixed, and the rules page groups it the same way the form does. Trip events: created, completed, failed, cancelled. Stop events: departed, failed. Fleet and GPS: route deviation, signal loss detected, vehicle breakdown. Delivery windows: window violation, raised when a stop’s estimated arrival falls outside the window it was promised for.
Building a rule. The form walks the six parts in order.
- 1
Start a new rule
Customization → Notification Rules → New ruleWith no rules yet the page offers starter templates instead of an empty list; picking one pre-fills the form and you edit from there.
- 2
Choose the trigger event
One event per rule. Two rules on the same event are fine and are evaluated independently — that is how you send a terse push to dispatch and a fuller email to a manager for the same failure.
- 3
Pick who hears about it
Roles expand to everyone currently holding that role. Named people are fixed. Event references are resolved when the event fires — the trip’s assigned driver is the one that is wired up today. Duplicates across the three are collapsed, so someone in a role and also named individually is notified once.
- 4
Add channels
At least one is required. A webhook additionally needs its URL, which is validated when you save rather than when it first fires.
- 5
Set the throttle and the active window
Both are optional. Leave the hours empty and the rule is awake around the clock; leave the cooldown at zero and every matching event notifies.
- 6
Save, then test it
A rule can be fired at a single person on demand. The test send is prefixed so nobody mistakes it for a real incident, and it ignores the schedule and the throttle so you are testing the delivery, not the timing.
Channels
| Push | Webhook | ||
|---|---|---|---|
| Goes to | Registered mobile devices | The address on the user record | A URL you own |
| Needs setup | The app installed and signed in | Nothing | A URL, optionally a signing secret |
| Sent as | One batched send to all recipients | One batched message, recipients on BCC | One request per recipient |
| Silently skipped when | No device is registered, or the type is switched off | The user record has no address | The URL is blank |
| Signed | n/a | n/a | HMAC-SHA256, when a secret is set |
Channels fail independently. A dead webhook does not stop the push, and a recipient with no email address is skipped without failing the batch for everyone else. Each attempt is recorded whether or not the send succeeded, so the dispatch history is a record of intent rather than proof of receipt.
Throttling, quiet hours and critical events
Three limits sit between an event and an inbox, and they apply in this order. First the rule’s cooldown, which is held per rule and per subject — a cooldown on one trip never silences a different trip. Then the active window: outside it the notification is queued rather than dropped, and released when the window next opens. Finally a per-person cap of 50 notifications an hour, which protects one unlucky dispatcher from a storm no single rule caused.
Escalation
Escalation answers the question the rest of the rule cannot: what if nobody acts. Turn it on and give it a timeout, and any notification that has not been acknowledged by then is re-sent to a second set of recipients, marked as an escalation and raised to critical priority. Leave the escalation channels empty and it reuses the rule’s own.
Escalation happens once. After the second wave goes out the original is taken off the eligible list, so an unacknowledged notification cannot re-escalate on every sweep until somebody clears it.
When a rule does not fire
The event definitely happened, and nobody was notified
The rule matched but resolved to zero recipients, or every recipient was filtered out.
Check the recipient roles first — a role with no members resolves to nobody and the rule is skipped entirely. Then check whether the rule is still switched on: the toggle on the list is a live control and does not need the rule to be opened.
Notifications arrive in a burst hours after the event
The rule was outside its active window, so the notifications were queued rather than sent.
Queued notifications are released when the window next opens, which is working as designed. If the delay is not what you wanted, widen the hours or move the rule to an event that bypasses the window.
The first alert arrived and the follow-ups did not
The rule’s cooldown is suppressing repeats for that same trip or vehicle.
The cooldown is scoped to the rule and the specific subject, so it is doing exactly this on purpose. Lower it, or split the noisy case onto its own rule with a shorter window.
A webhook URL is refused when I save the rule
The URL points somewhere the platform will not call.
Internal addresses and cloud metadata endpoints are rejected at save time rather than failing quietly on every dispatch. Use a publicly resolvable HTTPS endpoint.
A driver gets email but never a push
No active device token, or that notification type is switched off in their own preferences.
Push needs the app installed, signed in and permitted to notify. Each person also has personal switches per notification type; those are theirs to set and a rule cannot override them.
Terminology
Your organisation can rename these. If your screens say something else, this is what they mean here.
- Trip
- One journey with an ordered list of stops. Event names and rule labels follow whatever you have renamed it to.Rename it in Customization → Terminology
- Stop
- One ordered call within a trip. Stop events in this list are named after your term for it.Rename it in Customization → Terminology
- Notifications and emailThe troubleshooting page for delivery that silently does not arrive.
- Notification webhooksThe payload shape and how to verify the signature on your side.
- ExceptionsThe detectors behind trip exception events, and their severity levels.
- Users and rolesWho is in a role, which decides who a role-targeted rule reaches.
- MessagingConversations with drivers, as distinct from rule-driven notifications.