Notifications
The inbox
Every user has an in-app inbox.notifications:view is granted to every role
including APPLICANT and SYSTEM_ADMIN — it is self-service over your own inbox and
your own subscriptions, not a view of anyone else’s.
The event catalog
Notifications are driven by a catalog of platform events — an absence request awaiting approval, a contract ready to sign, a document overdue, a payroll run locked, a survey closing. Each event has:- A default audience, by role.
- A default set of channels.
- Per-locale content.
Subscriptions
Users adjust what they receive and how. Defaults come from their role, so a new manager is subscribed to the things managers need without configuring anything, and can then narrow it.Channels
The dispatcher resolves the recipient’s locale before rendering, so a French-speaking
employee receives French regardless of who or what triggered the notification.
Action links
A notification usually needs to take you somewhere — the request to approve, the contract to sign. Action URLs are generated per notification and resolve to the right surface for that user.Messages
Correspondence with applicants and employees, threaded against the record it belongs to.How it works
- Outbound mail is sent from the shared HR mailbox, so replies come back to a place the whole team can see rather than to a personal inbox.
- A scheduled scan reads inbound mail over Microsoft Graph and attaches it — with attachments — to the matching application.
- The full thread is visible on the application or employee record.
messages:view and messages:send are HR_STAFF+. SYSTEM_ADMIN is excluded:
correspondence is people data.
Templates
Message templates are authored per locale and versioned. Pipeline stages fire them automatically; HR can also send one ad hoc and edit before sending. Because templates are versioned, a message sent in March renders the wording that existed in March — the sent record is not retroactively rewritten by a template edit.The feedback dialog
An in-app feedback dialog lets users report a problem or request from inside the product. Submissions create tickets in the team’s issue tracker with aFEEDBACK:
prefix, so what users say reaches the backlog without a separate channel.