Around fifty events across seven categories: Sales Pipeline, Estimates & Orders, Invoicing & Payments, Contracts & Legal, Project Management, Teams & Crew, and System & Integrations. Each carries a severity — info (quiet feed row), action (chime) or critical (alert tone) — and a channel default set spanning in-app, toast, sound, browser, email and SMS.
Also called: list of notifications · what can notify me · notification types · categories and severity
- 1The registry is pure data and pure functions, importable from client components — no database or auth imports.
- 2Every accessor tolerates unknown or legacy event strings, humanising them into a quiet system/info fallback so old rows render instead of crashing a UI.
- 3Customer-facing sends (estimate delivery, intake release, supplier agreements, milestone texts) deliberately have NO registry entry — they are delivery channels, not internal feed events.
The header states what it replaced: 'the three drifting metadata copies that lived in notify.ts / NotificationBell.tsx / NotificationsTab.tsx'. The shared catalogue file adds why the tenant and platform screens read the same rows: 'a platform owner toggling "Estimate sent" for a sub-account has to be toggling the exact same event_type row the tenant's own screen writes, or one screen silently lies about the other.'
- Three copies of the same metadata drifting apart
- Old event rows crashing the UI
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 →