Notification Router
Router Overview
The StackFlow Notification Router is the event-driven engine that determines who gets notified about what, via which channel. When an ITSM event occurs (incident created, state changed, SLA warning, etc.), the router evaluates configured rules to determine the recipient list and delivery channels. The router supports email (SES), in-portal notifications, SNS fan-out, and webhook delivery.
- DynamoDB:
StackFlow_NotificationRuletable with event type and condition mappings - SQS:
StackFlow-NotificationDispatch.fifoqueue consumed byStackFlowNotificationRouterLambda - EventBridge: Events bus
stackflow-eventswith rules targeting the notification SQS queue - Lambda:
StackFlowNotificationRouterwithses:SendEmailandsns:Publishpermissions
Notification Events
| Event | Trigger | Default Recipients |
|---|---|---|
incident.created | New incident created | Reporter, assigned user |
incident.assigned | Assignment group/user changed | New assignee |
incident.state_changed | State transition | Reporter, assignee |
incident.comment_added | Public comment added | Reporter (if from agent) |
sla.warning | SLA 75% elapsed | Assignee, group manager |
sla.breach | SLA breached | Assignee, manager, escalation group |
change.approval_requested | Change awaiting approval | Configured approver(s) |
major_incident.declared | MI declared | IT leadership group |
Routing Rules
{
"notification_rule": {
"event": "incident.created",
"conditions": [{"field": "priority", "operator": "in", "value": ["P1", "P2"]}],
"recipients": [
{"type": "field", "field": "reporter"},
{"type": "field", "field": "assigned_user"},
{"type": "group", "group": "management_oncall"}
],
"channels": ["email", "portal", "sns"],
"template": "incident_created_priority_high"
}
}
Channel Configuration
Each notification channel requires separate configuration. Email uses SES templates. In-portal notifications appear in the notification bell in the top bar. SNS delivery fan-outs to subscribed endpoints (email, Lambda, SQS, HTTP, SMS). Webhook delivery sends a POST request to a configured URL with the notification payload as JSON.
#incidents Slack channel with a formatted message including incident details and direct link.
Testing Notifications
Test notification delivery in Admin → Notifications → Test Notification. Select an event type, fill in sample data, and click Send Test. The test notification is delivered via all configured channels for that event type. The delivery status (sent/bounced/failed) is shown in the test result panel.