Skip to Content
AdministrationNotifications

Notifications

Settings → Notifications (/admin/settings/notifications), headed Notification Settings, configures two entirely separate channels:

  • In-app notifications — the panel in the bottom-right corner of the app, and the notification rows behind it. Local to your instance, no external service.
  • Email notifications — messages delivered through the hosted SeqDesk relay. Off by default, and gated by more conditions than the switch on this page.

Facility admins only. Changes take effect on Save changes, immediately, with no restart.

In-app notifications

One switch, on by default. It governs GET/POST /api/notifications: with the switch off, the API answers enabled: false with an empty list, so the panel disappears and no new notification rows are created. Nothing already stored is deleted, and turning the switch back on makes the history visible again.

In-app notifications are generated for sequencing order creation and updates, for terminal pipeline run states, and for application-update progress. They never leave the instance, so they work on a deployment with no outbound network access at all.

Email notifications

The four conditions

An email is only sent when every one of these holds. Missing one is the usual reason a facility believes email is on and no mail arrives.

#ConditionWhere you set it
1The notifications module is enabledModules
2The Email notifications switch is onThis page
3A relay token is configuredsettings.json or SEQDESK_NOTIFICATION_RELAY_TOKENnot this page
4The event itself is enabledEmail event triggers on this page

Then two more per-recipient checks run: the recipient’s own preferences must allow this class of mail, and the address must be a real one.

The relay token is deliberately not editable in the UI and is never returned by any client API. The page can only tell you whether one exists — the header shows Token configured or Token missing. Set it in settings.json under notifications.relayToken, or as SEQDESK_NOTIFICATION_RELAY_TOKEN in the environment.

The provider is fixed at seqdesk-relay; there is no SMTP option. The relay URL defaults to https://seqdesk.org/api/notifications/relay. Your instance POSTs the event name, the recipient, a small context object (order number, status transition, actor name, a snippet truncated to 240 characters, a deep link) and identification for the installation. Message bodies are rendered by the relay, not by your instance.

Email event triggers

Five events, all on by default once email itself is enabled. A disabled event is never sent to the relay at all.

TriggerFires whenGoes to
Sequencing Order submittedA researcher submits an orderThe submitting researcher and every facility admin
Sequencing Order status changedA facility admin changes an order’s statusThe order’s owner only
Samples marked sentA researcher marks samples as sentFacility admins only
Support ticket createdA researcher opens a ticketFacility admins only
Support ticket replyEither side repliesThe other side

Direction is enforced in code, not by configuration: a status change made by a researcher sends nothing, and an admin marking samples sent or opening a ticket does not notify the admins about themselves.

Replies are addressed sensibly — mail to a researcher carries the facility’s reply-to address, and mail to admins carries the researcher’s address — so a plain Reply reaches a human.

Email user defaults

Two switches, Sequencing Order email notifications and Support email notifications, both on by default. They set the starting preference for newly created accounts only. Existing users keep whatever they chose in their own Settings → Email Notifications, where the same two preferences appear as Sequencing Orders and Support.

Because these are defaults rather than overrides, flipping them off does not silence anyone who already has an account.

Who is skipped

Even with everything enabled, the dispatcher refuses a recipient when:

  • The account is a demo account.
  • The address is not a syntactically valid email.
  • The address is a placeholder — admin@example.com, user@example.com, or anything ending in @seqdesk.local. The bootstrap admin created by the installer often has exactly such an address, which is why a test to yourself can be skipped on a fresh instance.
  • The recipient’s own preference for that class of mail is off.

Dispatch is best-effort throughout: a relay failure is logged and never blocks the action that triggered it. Submitting an order always succeeds, whether or not the email goes out.

Verifying the setup

Enable the module

On Modules, turn on Email Notifications. Without this the switch on the notifications page has no effect, however it looks.

Configure the token

Add notifications.relayToken to settings.json, or set SEQDESK_NOTIFICATION_RELAY_TOKEN, and restart. Reload the page and confirm the header reads Token configured.

Turn email on and save

Switch Email notifications on and press Save changes.

Send a test

Press Send test. It mails your own admin account and reports one of three outcomes: success, “Notification relay token is not configured”, or “Test email was skipped for this recipient” — the last meaning your own address failed the recipient checks above.

Troubleshooting

SymptomCauseFix
Send test is greyed outEmail notifications are switched offTurn the switch on and save first
Test reports the token is not configuredNo relay token in config or environmentSet notifications.relayToken and restart
Test reports the recipient was skippedYour admin address is a placeholder, a demo account, or has the preference offGive the admin account a real address
Switch is on, nothing is sentThe notifications module is offEnable it on Modules
Only some events arriveThat event’s trigger is offCheck Email event triggers
One researcher gets no mailTheir own preference is offThey control it in their own Settings; the defaults on this page do not override it
A saved switch appears to revertsettings.json or an environment variable sets the same key at a higher prioritySee Configuration Sources
Notification panel is missing entirelyIn-app notifications are switched offTurn them on at the top of this page

See also