Notification Preferences
Notification preferences let each user control which channels they receive alerts through and for what types of events. Preferences are rule-based — not simple toggles — so you can route incident escalations to Slack, acknowledgment receipts to email, and routine updates to in-app only.
How Preferences Work
Each user has a set of rules that map notification types to channels, plus a default channel for anything not explicitly covered:
Incident escalated ──► Rule: [slack, email, voice]
│
Incident acknowledged ──► Rule: [in_app, email]
│
Alert resolved ──► (no rule) ──► Default: [in_app]When an event triggers a notification, Alga checks the user's preference rules for a matching notification_type. If a rule matches, the notification goes to that rule's channels. If no rule matches, it goes to the default_channel.
Available Channels
| Channel | Description | Requires |
|---|---|---|
In-App (in_app) | Notifications appear in the notification bell dropdown | Nothing (always available) |
Email (email) | Sent via the configured SMTP server | Email integration set up |
Slack (slack) | Sent to your linked Slack account via DM | Slack integration + account linked |
Voice (voice) | Phone call with IVR menu to acknowledge | Twilio or Telnyx configured |
Mattermost (mattermost) | Placeholder — accepted in rules but not yet delivered | Mattermost integration |
Link your accounts first
The Slack channel only works if you've linked your personal Slack account. Go to Profile → Connected Accounts to link Slack before configuring that channel in your preferences.
Voice opt-out
Each user has a separate voice opt-out flag (voice_opt_out). When enabled, voice calls are suppressed for that user even if a rule or escalation level includes the voice channel — useful for cost control or personal preference. Voice calls also require a phone number on file.
Preference Structure
{
"rules": [
{
"notification_type": "incident_acknowledged",
"channels": ["in_app", "email"]
},
{
"notification_type": "incident_escalated",
"channels": ["in_app", "email", "slack", "voice"]
},
{
"notification_type": "alert_triggered",
"channels": ["in_app"]
}
],
"default_channel": "in_app"
}Common Notification Types
These are the most commonly configured notification types. The full list is available in the UI.
| Notification Type | When It Fires | Recommended Channels |
|---|---|---|
incident_created | A new incident is opened | In-app, Slack |
incident_escalated | Escalation moved to the next level | In-app, Slack, Email, Voice |
incident_acknowledged | Someone acknowledged the incident | In-app, Email |
incident_resolved | The incident is marked resolved | In-app |
alert_triggered | A new alert fired | In-app |
investigation_completed | An AI investigation finished | In-app |
Managing Your Preferences
- Click your profile avatar in the top-right corner
- Select Notification Preferences
- Add or edit rules — pick a notification type and the channels you want
- Set your default channel (used when no rule matches)
- Click Save Preferences
- Use Send Test to verify in-app delivery works
Test notifications are in-app only
The Send Test button (POST /api/v1/users/me/notification-preferences/test) is idempotent and creates an in-app test notification — it does not exercise the email, Slack, or voice pipelines. To verify those channels are working, trigger a real notification (e.g., create a test incident assigned to yourself).
Best Practices
- Reserve voice for escalations — phone calls are disruptive. Only enable voice for
incident_escalatedat higher levels, not for every alert - Use Slack for real-time awareness — keep your primary incident notifications in Slack so your team has shared visibility
- Keep a default channel — always set
default_channeltoin_appso you never miss a notification type you forgot to configure - Different rules for different severities — route critical incidents (P1) to more channels than routine updates
API Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /api/v1/users/me/notification-preferences | Session | Get current user's preferences |
PUT | /api/v1/users/me/notification-preferences | Session | Update preferences |
POST | /api/v1/users/me/notification-preferences/test | Session | Send test notification (in-app only, idempotent) |
See Also
- Teams — team structure and membership
- Escalation Policies — multi-tier escalation chains
- On-Call Schedules — rotating coverage
- Notifications — the notification system overview