Notifications
A vs B notifies you when a scheduled experiment or flag fires (or fails). Notifications appear in two places: the bell icon at the top of every authenticated page, and a transactional email to the scheduler.
The bell dropdown
The bell sits between the help dropdown and your avatar in the top bar. A red badge with the unread count appears whenever there is at least one unread notification.
- Clicking the bell opens the panel and refreshes the list. There is no realtime push in v1 — the badge polls once a minute, and opening the panel forces a fresh read.
- Clicking a notification marks it read and navigates to the linked resource (the experiment or flag the event applies to).
- Mark all read in the header clears every unread notification for your account in one call.
The user who scheduled an experiment or flag — not the whole team — receives the transactional email. Emails include the resource name, the project, and a direct link back to the dashboard. They're sent through the same provider as account emails (Resend).
Notification types
| Event | When it fires | Resource |
|---|---|---|
EXPERIMENT_SCHEDULED_LAUNCH_FIRED | A scheduled experiment launches automatically. | Experiment |
EXPERIMENT_SCHEDULED_END_FIRED | A running experiment is auto-paused at its scheduled end. | Experiment |
EXPERIMENT_SCHEDULE_MISSED | The scheduled moment was more than 60 minutes in the past when the worker came online — the schedule did not fire. | Experiment |
EXPERIMENT_SCHEDULE_FAILED | The schedule could not fire due to an error (e.g. revoked permissions in strict mode). | Experiment |
FLAG_SCHEDULED_ENABLE_FIRED | A scheduled flag enable on a specific environment fired. | Flag environment |
FLAG_SCHEDULED_DISABLE_FIRED | A scheduled flag disable on a specific environment fired. | Flag environment |
FLAG_SCHEDULE_MISSED | Missed flag schedule, same window as experiments. | Flag environment |
FLAG_SCHEDULE_FAILED | Flag schedule failed at fire time. | Flag environment |
Programmatic access
Notifications are also available through the REST API:
GET /api/notifications— list, paginated.POST /api/notifications/{id}/read— mark a single notification read.POST /api/notifications/read-all— mark every unread notification for the calling user read.
All three endpoints are scoped to the authenticated user; there is no cross-user read.