6.5 KiB
6.5 KiB
Notification Triggers Documentation
This document lists all notification triggers in the Royal Enfield Workflow Management System.
Overview
The system sends push notifications to users based on various workflow events. Notifications are sent via the notificationService.sendToUsers() method and support web push notifications.
1. Workflow Service Notifications
File: src/services/workflow.service.ts
| # | Trigger Event | Recipient | Title | Body | Priority |
|---|---|---|---|---|---|
| 1 | New approver added to request | New Approver | "New Request Assignment" | "You have been added as an approver to request {requestNumber}: {title}" | DEFAULT |
| 2 | Approver skipped → Next approver notified | Next Approver | "Request Escalated" | "Previous approver was skipped. Request {requestNumber} is now awaiting your approval." | DEFAULT |
| 3 | New approver added at specific level | New Approver | "New Request Assignment" | "You have been added as Level {X} approver to request {requestNumber}: {title}" | DEFAULT |
| 4 | Spectator added to request | Spectator | "Added to Request" | "You have been added as a spectator to request {requestNumber}: {title}" | DEFAULT |
| 5 | Request submitted by initiator | Initiator | "Request Submitted Successfully" | "Your request '{title}' has been submitted and is now with the first approver." | MEDIUM |
| 6 | Request submitted → First approver assigned | First Approver | "New Request Assigned" | "{title}" | HIGH |
2. Approval Service Notifications
File: src/services/approval.service.ts
| # | Trigger Event | Recipient | Title | Body | Priority |
|---|---|---|---|---|---|
| 7 | Final approval complete (closure pending) | Initiator | "Request Approved - Closure Pending" | "Your request '{title}' has been fully approved. Please review and finalize the conclusion remark to close the request." | HIGH |
| 8 | Final approval complete (info only) | All Participants | "Request Approved" | "Request '{title}' has been fully approved. The initiator will finalize the conclusion remark to close the request." | MEDIUM |
| 9 | Level approved → Next level activated | Next Approver | "Action required: {requestNumber}" | "{title}" | DEFAULT |
| 10 | Request fully approved (auto-close) | Initiator | "Approved: {requestNumber}" | "{title}" | DEFAULT |
| 11 | Request rejected | Initiator + All Participants | "Rejected: {requestNumber}" | "{title}" | DEFAULT |
3. Pause Service Notifications
File: src/services/pause.service.ts
| # | Trigger Event | Recipient | Title | Body | Priority |
|---|---|---|---|---|---|
| 12 | Workflow paused by approver | Initiator | "Workflow Paused" | "Your request '{title}' has been paused by {userName}. Reason: {reason}. Will resume on {date}." | HIGH |
| 13 | Workflow paused (confirmation) | Approver (self) | "Workflow Paused Successfully" | "You have paused request '{title}'. It will automatically resume on {date}." | MEDIUM |
| 14 | Workflow resumed | Initiator | "Workflow Resumed" | "Your request '{title}' has been resumed {by user/automatically}." | HIGH |
| 15 | Workflow resumed | Approver | "Workflow Resumed" | "Request '{title}' has been resumed. Please continue with your review." | HIGH |
| 16 | Initiator requests pause cancellation | Approver who paused | "Pause Retrigger Request" | "{initiatorName} is requesting you to cancel the pause and resume work on request '{title}'." | HIGH |
4. TAT (Turnaround Time) Notifications
File: src/queues/tatProcessor.ts
| # | Trigger Event | Recipient | Title | Body | Priority |
|---|---|---|---|---|---|
| 17 | TAT 50% threshold reached | Approver | "TAT Reminder" | "50% TAT Alert: {message}" | MEDIUM |
| 18 | TAT 75% threshold reached | Approver | "TAT Reminder" | "75% TAT Alert: {message}" | HIGH |
| 19 | TAT 100% breach | Approver | "TAT Breach Alert" | "TAT Breached: {message}" | URGENT |
| 20 | TAT breach (initiator notification) | Initiator | "TAT Breach - Request Delayed" | "Your request {requestNumber}: '{title}' has exceeded its TAT. The approver has been notified." | HIGH |
5. Work Note Notifications
File: src/services/worknote.service.ts
| # | Trigger Event | Recipient | Title | Body | Priority |
|---|---|---|---|---|---|
| 21 | User mentioned in work note | Mentioned Users | "💬 Mentioned in Work Note" | "{userName} mentioned you in {requestNumber}: '{message preview}'" | DEFAULT |
Summary by Recipient
Initiator Receives:
- ✅ Request submitted confirmation
- ✅ Approval pending closure (action required)
- ✅ Request approved
- ✅ Request rejected
- ✅ Workflow paused
- ✅ Workflow resumed
- ✅ TAT breach notification
Approver Receives:
- ✅ New request assignment
- ✅ Request escalation (previous approver skipped)
- ✅ Action required (next level activated)
- ✅ Workflow paused confirmation
- ✅ Workflow resumed
- ✅ Pause retrigger request from initiator
- ✅ TAT 50% reminder
- ✅ TAT 75% reminder
- ✅ TAT 100% breach alert
Spectator/Participant Receives:
- ✅ Added to request
- ✅ Request approved (info only)
- ✅ Request rejected
Mentioned Users Receive:
- ✅ Work note mention notification
Notification Payload Structure
interface NotificationPayload {
title: string; // Notification title
body: string; // Notification message
requestId?: string; // UUID of the request
requestNumber?: string; // Human-readable request number (e.g., REQ-2025-11-0001)
url?: string; // Deep link URL (e.g., /request/REQ-2025-11-0001)
type?: string; // Notification type for categorization
priority?: 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT';
actionRequired?: boolean; // Whether user action is required
}
Priority Levels
| Priority | Use Case |
|---|---|
| URGENT | TAT breach alerts |
| HIGH | Action required notifications, assignments, resumptions |
| MEDIUM | Informational updates, confirmations |
| LOW/DEFAULT | General updates, spectator notifications |
Configuration
Notifications can be enabled/disabled via environment variables:
ENABLE_EMAIL_NOTIFICATIONS=true
ENABLE_PUSH_NOTIFICATIONS=true
Web push requires VAPID keys:
VAPID_PUBLIC_KEY=your_public_key
VAPID_PRIVATE_KEY=your_private_key
VAPID_SUBJECT=mailto:admin@example.com
Last Updated: November 2025