通知系統規則定義
規則制定原則
設計理念
- 業務導向:所有通知都應服務於實際業務需求
- 職責明確:每種通知都有明確的接收者和處理責任
- 智能化:系統能自動判斷和建議,減少人工干預
- 可配置:規則可以透過配置調整,無需修改代碼
分類原則
- INFORMATIONAL(資訊型):需要知悉但不需要特定行動的通知
- ACTIONABLE(任務型):需要具體行動和完成確認的通知
現有通知類型詳細規則
1. ORDER_NEW - 新訂單通知
基本資訊
yaml
類型: ORDER_NEW
分類: ACTIONABLE
完成策略: SUGGESTED
優先級: HIGH
觸發頻率: 每筆訂單一次觸發條件
- 主要條件:新訂單創建完成
- 金額範圍:≤ $10,000(高價值訂單有獨立通知)
- 訂單狀態:pending 或 confirmed
接收者規則
yaml
主要接收者:
- 類型: ROLE
- 角色: sales
- 部門: 銷售部
次要接收者:
- 類型: ROLE
- 角色: order_manager
- 條件: 訂單數量 > 每日平均 * 1.5 時通知內容模板
yaml
標題: '新訂單待處理 #{order_number}'
內容: '客戶 {customer_name} 下了新訂單,金額 ${total_amount},包含 {item_count} 件商品'
動作連結: '/admin/orders/{order_id}'完成條件
- 建議完成:訂單狀態變更為
shipped或completed - 手動完成:銷售人員確認訂單已處理
- 自動歸檔:7天後自動歸檔
業務規則
- 處理時效:4小時內需要有人認領處理
- 優先級調整:VIP客戶訂單自動提升為 URGENT
- 庫存檢查:如商品庫存不足,同時發送庫存警告
2. ORDER_HIGH_VALUE - 高價值訂單警示
基本資訊
yaml
類型: ORDER_HIGH_VALUE
分類: ACTIONABLE
完成策略: MANUAL
優先級: URGENT
觸發頻率: 每筆高價值訂單一次觸發條件
- 主要條件:訂單金額 > $10,000
- 次要條件:單一商品數量 > 100 件
- VIP條件:VIP客戶訂單 > $5,000
接收者規則
yaml
主要接收者:
- 類型: ROLE
- 角色: sales_manager
- 部門: 銷售部
次要接收者:
- 類型: ROLE
- 角色: finance_manager
- 條件: 訂單金額 > $50,000
通知者:
- 類型: ROLE
- 角色: ceo
- 條件: 訂單金額 > $100,000通知內容模板
yaml
標題: '⚠️ 高價值訂單警示 #{order_number}'
內容: '收到高價值訂單,客戶:{customer_name},金額:${total_amount},需要主管關注'
動作連結: '/admin/orders/{order_id}/vip'完成條件
- 手動完成:銷售經理確認已給予特殊服務
- 必要確認:客戶滿意度確認
- 不可自動完成:需要人工確認所有VIP服務流程
業務規則
- 處理時效:1小時內需要銷售經理回應
- 特殊服務:需要提供VIP客戶服務
- 風險檢查:需要進行付款風險評估
- 庫存保留:優先保留庫存給高價值訂單
3. INVENTORY_LOW_STOCK - 低庫存警告
基本資訊
yaml
類型: INVENTORY_LOW_STOCK
分類: ACTIONABLE
完成策略: SUGGESTED
優先級: HIGH
觸發頻率: 每個商品一次(直到補貨)觸發條件
- 主要條件:庫存數量 ≤ 低庫存閾值
- 防重複:24小時內同一商品不重複發送
- 例外:熱銷商品閾值動態調整
接收者規則
yaml
主要接收者:
- 類型: ROLE
- 角色: warehouse_manager
- 部門: 倉庫部
次要接收者:
- 類型: ROLE
- 角色: purchasing
- 部門: 採購部
緊急接收者:
- 類型: ROLE
- 角色: operations_manager
- 條件: 熱銷商品 AND 庫存 < 3天銷量通知內容模板
yaml
標題: '📦 低庫存警告 - {product_name}'
內容: '商品「{product_name}」庫存不足,目前庫存:{current_stock},安全庫存:{safety_stock}'
動作連結: '/admin/inventory/{product_id}'完成條件
- 建議完成:庫存補充至安全庫存以上
- 手動完成:確認已安排補貨
- 自動完成:庫存 > 低庫存閾值 * 1.5
業務規則
- 補貨時效:48小時內需要安排補貨
- 優先級:根據銷售速度動態調整優先級
- 預警機制:預測式庫存警告(基於銷售趨勢)
- 供應商通知:自動發送補貨需求給供應商
4. INVENTORY_OUT_OF_STOCK - 缺貨通知
基本資訊
yaml
類型: INVENTORY_OUT_OF_STOCK
分類: ACTIONABLE
完成策略: AUTO
優先級: URGENT
觸發頻率: 即時觸發條件
- 主要條件:庫存數量 = 0
- 即時性:庫存變更即時觸發
- 影響範圍:自動暫停商品銷售
接收者規則
yaml
主要接收者:
- 類型: ROLE
- 角色: warehouse_manager
- 部門: 倉庫部
緊急接收者:
- 類型: ROLE
- 角色: purchasing
- 部門: 採購部
通知者:
- 類型: ROLE
- 角色: operations_manager
- 條件: 熱銷商品 OR 獨家商品通知內容模板
yaml
標題: '🚨 商品缺貨 - {product_name}'
內容: '商品「{product_name}」已完全缺貨,已自動暫停銷售,請立即安排緊急補貨'
動作連結: '/admin/inventory/{product_id}/emergency'完成條件
- 自動完成:庫存 > 0 時自動完成
- 系統動作:自動恢復商品銷售
- 不可手動完成:確保庫存真實恢復
業務規則
- 即時處理:立即暫停商品銷售
- 緊急補貨:啟動緊急補貨流程
- 客戶通知:自動通知已下單但未出貨的客戶
- 替代商品:推薦替代商品給銷售團隊
5. CUSTOMER_SERVICE_NEW_REQUEST - 新客服請求
基本資訊
yaml
類型: CUSTOMER_SERVICE_NEW_REQUEST
分類: ACTIONABLE
完成策略: SUGGESTED
優先級: MEDIUM (可動態調整)
觸發頻率: 每個客服請求一次觸發條件
- 主要條件:客戶提交新的服務請求
- 優先級判斷:根據客戶等級和問題類型調整
- 分配邏輯:根據客服負載均衡分配
接收者規則
yaml
主要接收者:
- 類型: ROLE
- 角色: customer_service
- 部門: 客服部
- 分配策略: 輪詢分配
次要接收者:
- 類型: ROLE
- 角色: customer_service_manager
- 條件: 15分鐘內無人認領
升級接收者:
- 類型: ROLE
- 角色: customer_service_supervisor
- 條件: 1小時內無人回應通知內容模板
yaml
標題: '💬 新客服請求 - {customer_name}'
內容: '收到來自 {customer_name} 的客服請求,問題類型:{issue_type},緊急程度:{priority}'
動作連結: '/admin/support/tickets/{ticket_id}'完成條件
- 建議完成:客服請求狀態變更為
resolved或closed - 手動完成:客服人員確認問題已解決
- 客戶確認:客戶滿意度確認後自動完成
業務規則
- 回應時效:15分鐘內需要首次回應
- 問題分類:自動分類並分配給專業客服
- 升級機制:超時自動升級給上級主管
- 滿意度追蹤:解決後自動發送滿意度調查
6. CUSTOMER_VIP_ISSUE - VIP客戶問題
基本資訊
yaml
類型: CUSTOMER_VIP_ISSUE
分類: ACTIONABLE
完成策略: MANUAL
優先級: URGENT
觸發頻率: 每個VIP問題一次觸發條件
- 主要條件:VIP客戶提交問題
- VIP等級:白金級以上客戶
- 問題嚴重度:自動提升為緊急等級
接收者規則
yaml
主要接收者:
- 類型: ROLE
- 角色: vip_customer_service
- 部門: VIP客服部
通知者:
- 類型: ROLE
- 角色: customer_service_manager
- 部門: 客服部
升級接收者:
- 類型: ROLE
- 角色: customer_relations_director
- 條件: 30分鐘內無人認領通知內容模板
yaml
標題: '👑 VIP客戶問題 - {customer_name}'
內容: 'VIP客戶 {customer_name} ({vip_level}) 提交問題,需要立即關注和處理'
動作連結: '/admin/support/vip/{ticket_id}'完成條件
- 手動完成:VIP客服確認問題完全解決
- 客戶確認:客戶滿意度確認(必要)
- 主管確認:客服主管確認處理品質
業務規則
- 即時響應:5分鐘內需要專人回應
- 專屬服務:指派專屬VIP客服
- 主管關注:客服主管需要跟進處理過程
- 後續服務:問題解決後提供額外關懷服務
7. SECURITY_PERMISSION_CHANGED - 權限變更通知
基本資訊
yaml
類型: SECURITY_PERMISSION_CHANGED
分類: INFORMATIONAL
完成策略: MANUAL
優先級: MEDIUM
觸發頻率: 每次權限變更一次觸發條件
- 主要條件:用戶權限被修改
- 變更類型:包括角色變更、權限增減、帳戶狀態變更
- 安全等級:根據權限重要性調整優先級
接收者規則
yaml
主要接收者:
- 類型: USER
- 對象: 被變更權限的用戶
監控接收者:
- 類型: ROLE
- 角色: it_admin
- 部門: IT部
安全接收者:
- 類型: ROLE
- 角色: security_officer
- 條件: 高權限變更 OR 異常時間變更通知內容模板
yaml
標題: '🔐 您的帳戶權限已變更'
內容: '您的帳戶權限已由 {admin_name} 進行調整,變更內容:{permission_changes}'
動作連結: '/admin/profile/permissions'完成條件
- 手動完成:用戶確認已知悉權限變更
- 安全確認:IT管理員確認變更無異常
- 自動歸檔:30天後自動歸檔
業務規則
- 即時通知:權限變更立即通知相關人員
- 變更記錄:完整記錄權限變更歷史
- 異常檢測:檢測異常權限變更並告警
- 定期審查:定期審查權限變更的合理性
🔄 通知路由規則
路由配置表
sql
-- 完整的通知路由配置
INSERT INTO notification_routing_rules (
notification_type,
target_type,
target_criteria,
send_to_user,
priority_adjustment,
is_active
) VALUES
-- 訂單相關
('order_new', 'role', '{"roles": ["sales"], "department": "sales"}', FALSE, 'high', TRUE),
('order_high_value', 'role', '{"roles": ["sales_manager"], "department": "sales"}', FALSE, 'urgent', TRUE),
-- 庫存相關
('inventory_low_stock', 'role', '{"roles": ["warehouse_manager"], "department": "warehouse"}', FALSE, 'high', TRUE),
('inventory_out_of_stock', 'role', '{"roles": ["warehouse_manager", "purchasing"], "departments": ["warehouse", "purchasing"]}', FALSE, 'urgent', TRUE),
-- 客服相關
('customer_service_new_request', 'role', '{"roles": ["customer_service"], "department": "support"}', FALSE, 'medium', TRUE),
('customer_vip_issue', 'role', '{"roles": ["vip_customer_service"], "department": "support"}', FALSE, 'urgent', TRUE),
-- 安全相關
('security_permission_changed', 'custom', '{"user_affected": true, "roles": ["it_admin"], "department": "it"}', TRUE, 'medium', TRUE);路由邏輯
1. 角色路由 (ROLE)
typescript
// 根據用戶角色分發通知
function routeByRole(
notificationType: string,
targetRoles: string[],
): string[] {
return users
.filter((user) => targetRoles.includes(user.role) && user.isActive)
.map((user) => user.id)
}2. 部門路由 (DEPARTMENT)
typescript
// 根據部門分發通知
function routeByDepartment(
notificationType: string,
targetDepartments: string[],
): string[] {
return users
.filter(
(user) => targetDepartments.includes(user.department) && user.isActive,
)
.map((user) => user.id)
}3. 廣播路由 (BROADCAST)
typescript
// 全體廣播通知
function routeBroadcast(notificationType: string, criteria: any): string[] {
let targetUsers = users.filter((user) => user.isActive)
// 可以根據條件過濾
if (criteria.excludeRoles) {
targetUsers = targetUsers.filter(
(user) => !criteria.excludeRoles.includes(user.role),
)
}
return targetUsers.map((user) => user.id)
}4. 自定義路由 (CUSTOM)
typescript
// 自定義條件路由
function routeCustom(notificationType: string, criteria: any): string[] {
let targetUsers = []
// 直接指定用戶ID
if (criteria.userIds) {
targetUsers.push(...criteria.userIds)
}
// 根據複雜條件查詢
if (criteria.complexQuery) {
targetUsers.push(...executeComplexQuery(criteria.complexQuery))
}
return targetUsers
}⚡ 動態規則調整
優先級動態調整
yaml
規則:
- 條件: VIP客戶相關
動作: 優先級提升一級
- 條件: 業務高峰期
動作: 所有訂單通知提升為 HIGH
- 條件: 庫存緊急
動作: 庫存相關通知提升為 URGENT
- 條件: 系統維護期間
動作: 非緊急通知降級為 LOW通知頻率控制
yaml
規則:
- 類型: INVENTORY_LOW_STOCK
限制: 同一商品24小時內最多1次
- 類型: CUSTOMER_SERVICE_NEW_REQUEST
限制: 同一客戶1小時內最多3次
- 類型: SECURITY_PERMISSION_CHANGED
限制: 同一用戶1小時內最多5次業務時間規則
yaml
規則:
- 時間: 非營業時間 (22:00-08:00)
動作: 非緊急通知延遲到營業時間發送
- 時間: 週末和假日
動作: 僅發送 URGENT 等級通知
- 時間: 系統維護期間
動作: 暫停所有通知,維護結束後批量發送🔍 通知內容規範
標題規範
yaml
格式: '[圖示] 動作 - 對象'
長度: 10-30個字符
範例:
- '📦 庫存不足 - iPhone 14'
- '💬 新客服請求 - 張三'
- '🚨 系統異常 - 付款模組'內容規範
yaml
結構:
- 背景說明: 簡短描述發生什麼
- 影響範圍: 說明影響程度
- 建議動作: 明確的下一步行動
長度: 50-200個字符
語調: 專業、簡潔、明確動作連結規範
yaml
格式: '/admin/{模組}/{對象}/{動作}'
範例:
- '/admin/orders/12345/process'
- '/admin/inventory/product-456/restock'
- '/admin/support/tickets/789/respond'統計與監控規則
通知統計指標
yaml
業務指標:
- 通知發送量(按類型、時間)
- 通知完成率(按類型、用戶)
- 平均處理時間
- 智能建議接受率
性能指標:
- 通知發送延遲
- 系統響應時間
- 資料庫查詢性能
- 快取命中率告警規則
yaml
業務告警:
- 條件: 通知完成率 < 80%
動作: 發送告警給團隊主管
- 條件: 平均處理時間 > SLA 150%
動作: 升級告警等級
- 條件: 智能建議準確率 < 60%
動作: 檢查建議邏輯
系統告警:
- 條件: 通知發送失敗率 > 5%
動作: 立即通知技術團隊
- 條件: 資料庫連接異常
動作: 啟動備用服務配置管理規則
配置變更流程
yaml
步驟:
1. 配置提案: 提交配置變更需求
2. 影響評估: 評估變更對系統的影響
3. 測試驗證: 在測試環境驗證配置
4. 審批流程: 相關負責人審批
5. 上線部署: 分階段上線新配置
6. 監控回饋: 監控配置效果配置回滾機制
yaml
觸發條件:
- 配置導致系統異常
- 業務指標異常下降
- 用戶投訴增加
回滾步驟: 1. 停止新配置
2. 恢復之前配置
3. 清理異常數據
4. 重新載入配置
5. 驗證系統正常規則總結
本規則文件定義了通知系統的完整業務規則,包括:
- 7種核心通知類型的詳細規則定義
- 路由分發機制的配置和邏輯
- 動態調整規則的條件和動作
- 內容規範的標準化要求
- 監控告警的指標和閾值
所有規則都遵循可配置、可監控、可調整的原則,確保系統能夠靈活應對不同的業務場景和需求變化。