Notifications
Get told when something you care about changes — without checking the app every hour.
Notifications surface things that need your attention: a tracker breached its threshold, a hypothesis got invalidated, a high-confidence ontology candidate is waiting for review.
Where to find this
- In-app bell in the top-right of every screen — shows recent notifications.
- Settings → Notifications (
/settings/notifications) — manage what triggers a notification and where it's delivered.
What's on the Notifications screen
The page is titled "Signal subscriptions" with the description: "Route which signals you want, how loud, and where. Scoped to the current project."
- Your subscriptions section at the top — list of active subscriptions, or empty-state: "No subscriptions yet. Add one below to start receiving signals."
- Add a subscription form below:
- SIGNAL TYPES — checkbox "All signal types" (or pick specific ones).
- MINIMUM SEVERITY dropdown — defaults to "Warn and above".
- CHANNELS — one row per channel. Each row: channel type dropdown (e.g. In-app), recipient input (e.g.
@mefor self, or#channel-namefor Slack/Teams, oremail@example.com), per-channel severity floor (e.g.≥ Warn), and a trash icon. + Add channel button to add another row. - FRAMING dropdown — "Standard — title + 1-line context" (other options include Terse and With actions).
- CADENCE dropdown — Realtime, Hourly, Daily, Weekly digest, Off.
- + Add subscription button (bottom).
What can trigger a notification
The platform classifies notifications by type:
| Type | What triggers it |
|---|---|
| Tracker critical | A tracker run breached a critical threshold |
| Tracker needs attention | A tracker run breached a warn threshold |
| Hypothesis invalidated | A logged decision's hypothesis was marked invalidated |
| Candidate high confidence | An ontology candidate with high confidence is waiting for review |
You can subscribe to each type independently per project, with per-type severity filters and framing options.
Subscription settings
For each (project, type) combination you can set:
- Channels — in-app, email, Slack, Teams (one or more)
- Framing — terse (one line), standard, with-actions (suggest next steps)
- Digest — realtime, hourly, daily, weekly, or off
- Minimum severity per channel — e.g. "send to Slack only for critical, in-app for everything"
Status: in progress. The subscription UI is fully implemented and your preferences are stored, but the actual delivery layer (sending the email, posting to Slack, etc.) is being moved to a separate workflow runner (Activepieces). In-app notifications work today; email / Slack / Teams delivery depends on your operator's Activepieces deployment. Confirm with your admin which channels are currently active.
Reading a notification
Each notification shows:
- Title — what happened in one line
- Project — which project it came from
- Source object — the tracker, decision or candidate that triggered it
- Severity — info / warn / critical
- Timestamp
Click through to see the full context (e.g. open the tracker's detail page).
Marking notifications read
The in-app bell shows unread count. Open the panel to see all recent notifications; clicking one marks it read.
Suppressing noise
If a notification type is too noisy:
- Open Settings → Notifications.
- Find the project + type.
- Either raise its minimum severity ("only critical") or move it to a digest cadence ("daily summary, not realtime").
If you don't want a type at all, set every channel to off.
Tips
- Default to in-app + daily-digest email. Realtime email gets ignored after a week.
- Reserve Slack/Teams for critical. Anything lower will train your team to mute the channel.
- Use "with-actions" framing for trackers. It saves a click into the app to figure out what to do.
- Audit subscriptions quarterly. Notification rot is real — every team accumulates dead subscriptions.