Settings → Notifications

One event per row, one toggle per role, and per-channel switches — grouped into collapsible categories, with a plain-English line under every event saying when it fires.

What it is

The matrix that drives recipient resolution. Categories collapse, and a single/multiple accordion mode mirrors the sales pipeline's behaviour. Saving upserts one preference row per event. A rejected save rolls the toggle back and says why, loudly.

Also called: notification settings · who gets emailed · turn off notifications · alert preferences

See it
Settings → Notifications
Day rate
$600
Days figured
5
Crew size
3
Fuel & equipment
$300
Finished 2 days early — $1,600 back to the crew
The matrix with one category expanded, role checkboxes and channel switches per row, and the Fires-when line under each event name. NotificationsTab.tsx. Sample data — no customer information appears here.
How it works
  1. 1Rows come from the shared event catalogue so the tenant and platform screens can never describe different things.
  2. 2Each row saves independently; sweeps write every row in one request.
  3. 3A failed save restores the previous value and shows the error in the same banner the sweeps use.
  4. 4Task automations are embedded at the bottom of the same screen.
Why we built it

Categories are “see the different categories and have all of the notifications in each of the respective categories”, and 'headers are toggleable'. Automations were folded in here for the same reason: 'notifications ARE automations in people's minds'. The rollback is bug: 'toggles looked saved, then reverted on refresh… A rejected save must never masquerade as saved.'

The problem
  • Silent save failures presenting as success
  • An unnavigable flat list of events
Sound familiar?
What you get
Per-event, per-role, per-channel control
A failed change tells you instead of lying
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →