Story 1.20: Automated Notification Center - Wireframe
Story: Epic 1, Story 1.20 - Event Management Service
Automated Notification Center
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Back Notification Center [User Settings] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Unread: 3 Total: 47 β
β β
β ββββ INBOX βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β [All] [Unread] [Critical] [Team] β β
β β β β
β β ββββββββββββββββββββββββββββββ β β
β β β π΄ CRITICAL - 14:45 β β β
β β β Speaker dropout detected β β β
β β β Dr. Weber cancelled talk β β β
β β β [Find Replacement] β β β
β β β [Contact Waitlist] β β β
β β ββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββ β β
β β β β οΈ WARNING - 14:30 β β β
β β β Abstract needs revision β β β
β β β Marc B. - Too long (1250) β β β
β β β [Review] [Contact Speaker] β β β
β β ββββββββββββββββββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββββββ β β
β β β βΉοΈ INFO - 13:15 β β β
β β β Publishing milestone hit β β β
β β β 5 speakers now confirmed β β β
β β β Ready for partial publish β β β
β β β [Publish Now] [Review] β β β
β β ββββββββββββββββββββββββββββββ β β
β β β β
β β View older notifications... β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ ESCALATION WORKFLOWS ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Active Escalations: β β
β β β β
β β Speaker Non-Response β Day 1: Email β Day 3: Call β Day 5: Replace β β
β β ββ Peter M: Day 3 (calling today) β β
β β ββ Lisa C: Day 1 (email sent) β β
β β β β
β β Venue Issues β Hour 1: Notify team β Hour 4: Call venue β Day 1: Escalate β β
β β ββ All clear β β β
β β β β
β β Quality Problems β Immediate: Speaker β Day 1: Moderator β Day 2: Lead β β
β β ββ Marc B. abstract: Moderator notified β β
β β β β
β β [Configure Escalations] [View History] [Pause All] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Interactive Elements
- Notification Inbox: Prioritized notifications with severity levels
- Escalation Workflows: Multi-step escalation paths with time-based progression
Functional Requirements Met
- FR20: Intelligent automated notifications across workflow
- Multi-Channel: Platform, email notifications
- Priority Levels: Critical, warning, info classifications
- Escalation Paths: Automated escalation for unresolved issues
User Interactions
- View Notifications: Filter by type, priority, and status
- Take Action: Inline buttons for common responses
- Configure Escalations: Set up multi-step escalation workflows
Technical Notes
- Event-driven architecture with notification service
- Multi-channel delivery system (email, platform notifications)
- Escalation scheduler with time-based progression
- Notification history and audit trail
- Integration with workflow steps for automatic triggering
API Requirements
Initial Page Load APIs
Updated with Story 1.26 Consolidated Notification APIs
When the Notification Center screen loads, the following APIs are called to provide the necessary data:
-
GET /api/v1/notifications?filter={}&status={}&page={}
- Query params:
filter={"type":"organizer"},status=unread|read|all,page=1,limit=20 - Returns: Paginated notifications with severity, timestamp, title, description, action links, read status, related entity
- Used for: Populate notification inbox
- Consolidated: Single endpoint replaces /organizers/{id}/notifications, /organizers/{id}/notifications/summary (2 β 1)
- Performance: <200ms (P95)
- Query params:
-
GET /api/v1/notifications/count?status=unread
- Returns: Notification countjson
{ "total": 47, "unread": 3, "critical": 1 } - Used for: Display summary statistics at top of page
- Consolidated: Part of Story 1.26 notification management
- Returns: Notification count
-
GET /api/v1/organizers/{organizerId}/notifications/escalations (Unchanged)
- Query params: status (active|completed|all)
- Returns: Active escalation workflows with current step, affected entities, timeline, next action
- Used for: Display escalation workflows section
- Note: Escalation workflows remain separate from general notifications
Action APIs
Notification Management (Consolidated)
-
PUT /api/v1/notifications/read
- Payload:
{ notificationIds: ["id1", "id2"] }(single or bulk) - Response: Read status updated, new countsjson
{ "updated": 2, "unreadCount": 1 } - Used for: Mark notification(s) as read
- Consolidated: Single endpoint handles both individual and bulk operations (replaces 2 endpoints)
- Performance: <100ms (P95)
- Payload:
-
DELETE /api/v1/notifications/{id} or DELETE /api/v1/notifications (bulk)
- Payload (bulk):
{ notificationIds: ["id1", "id2"] } - Response: Deletion confirmation, updated counts
- Used for: Dismiss/delete notification(s)
- Consolidated: Supports both single and batch delete
- Payload (bulk):
-
POST /api/v1/organizers/{organizerId}/notifications/{notificationId}/snooze (Unchanged)
- Payload:
{ snoozeUntil: timestamp, reason } - Response: Snooze confirmation, reminder scheduled
- Used for: Snooze notification for later
- Note: Snooze functionality remains separate for workflow management
- Payload:
-
POST /api/v1/organizers/{organizerId}/notifications/{notificationId}/action (Unchanged)
- Payload:
{ actionType, actionData } - Response: Action executed, notification updated
- Used for: Execute inline action from notification (e.g., Find Replacement, Review)
- Note: Action execution remains context-specific
- Payload:
Escalation Workflows
-
POST /api/v1/organizers/{organizerId}/notifications/escalations
- Payload:
{ name, steps: [{ delay, action, recipients: [] }], triggerType, entityType } - Response: Escalation workflow created, workflow ID
- Used for: Create new escalation workflow
- Payload:
-
PUT /api/v1/organizers/{organizerId}/notifications/escalations/{escalationId}
- Payload:
{ steps, enabled: boolean } - Response: Escalation updated, affected instances
- Used for: Update escalation workflow configuration
- Payload:
-
PUT /api/v1/organizers/{organizerId}/notifications/escalations/{escalationId}/pause
- Payload:
{ pauseDuration: "1-hour|1-day|indefinite" } - Response: Escalation paused, resume time
- Used for: Pause escalation workflow
- Payload:
-
POST /api/v1/organizers/{organizerId}/notifications/escalations/{instanceId}/resolve
- Payload:
{ resolution, notes } - Response: Escalation instance resolved, removed from active
- Used for: Manually resolve escalation
- Payload:
-
GET /api/v1/organizers/{organizerId}/notifications/escalations/history
- Query params: limit (50), entityType, status, dateRange
- Returns: Historical escalations with resolution details, duration, outcome
- Used for: View escalation history from [View History]
Notification Preferences & History (Consolidated)
-
GET /api/v1/notifications/preferences and PUT /api/v1/notifications/preferences
- GET Returns: User notification preferencesjson
{ "emailNotifications": true, "pushNotifications": false, "channels": ["email", "in-app"], "frequency": "immediate|digest", "categories": { "critical": true, "updates": true, "social": false } } - PUT Payload: Updated preferences
- Used for: Manage notification preferences
- Consolidated: Part of Story 1.26 preference management
- Performance: <150ms (P95)
- GET Returns: User notification preferences
-
GET /api/v1/notifications/history?timeframe={}&channel={}
- Query params:
timeframe=30d,channel=email|sms|push|in-app,page,limit - Returns: Historical notifications with delivery status, timestamps, metadata
- Used for: View notification history with delivery tracking
- Consolidated: Replaces separate history and analytics endpoints (includes delivery metrics)
- Query params:
-
GET /api/v1/organizers/{organizerId}/notifications/export (Unchanged)
- Query params: format (csv|pdf|json), dateRange, filter
- Returns: Download URL for notification history export
- Used for: Export notification data
Navigation Map
Primary Navigation Actions
-
β Back button β Navigate to
Event Management Dashboard(story-1.16-event-management-dashboard.md)- Returns to dashboard
- Preserves notification state
-
[User Settings] button β Scrolls to preferences section
- Shows notification preferences
- In-page navigation
- No screen change
-
Notification inbox filter tabs β Filters notification list
- [All], [Unread], [Critical], [Team]
- Updates displayed notifications
- No screen navigation
Notification Inbox Actions
-
Notification card click β Expands notification details
- Shows full message
- Reveals all action buttons
- Marks as read
- No screen navigation
-
[Find Replacement] button (speaker dropout) β Navigate to
Speaker Matching Interface(story-3.1-speaker-matching-interface.md)- Pre-filled search criteria
- Speaker selection
- Invitation workflow
-
[Contact Waitlist] button β Navigate to
Waitlist Management Screen- Waitlist viewer
- Bulk invite options
- Priority ranking
-
[Review] button (abstract) β Navigate to
Abstract Review Screen- Review interface
- Quality scoring
- Approval workflow
-
[Contact Speaker] button β Opens message composer
- Pre-filled recipient
- Template suggestions
- Sends message
- No screen navigation
-
[Publish Now] button β Navigate to
Publishing Control Center(story-2.3-basic-publishing-engine.md)- Publishing interface
- Content review
- Publish confirmation
-
View older notificationsβ¦ β Loads more notifications
- Pagination
- Infinite scroll
- No screen navigation
Escalation Workflow Actions
-
Escalation workflow item click β Shows escalation details
- Full timeline
- Current step highlighted
- Next actions
- No screen navigation
-
[Configure Escalations] button β Opens escalation editor
- Workflow designer
- Step configuration
- Timing settings
- No screen navigation
-
[View History] button β Opens escalation history modal
- Historical escalations
- Resolution details
- Statistics
- No screen navigation
-
[Pause All] button β Pauses all escalations
- Confirmation dialog
- Duration selector
- Pauses workflows
- No screen navigation
Event-Driven Navigation
-
New notification received β Adds to inbox
- Appears at top of list
- Increments unread count
- Shows toast notification
- May play sound
- No automatic navigation
-
Escalation advanced β Updates escalation display
- Moves to next step
- Updates timeline
- Shows notification
- No automatic navigation
-
Notification read β Updates UI
- Decrements unread count
- Changes visual state
- May hide from Unread filter
- No automatic navigation