Appearance
S12 排程通知
概述
系統依照預設的時間軸自動發送各類通知,確保乘客與相關方在重要時間點收到行程資訊。通知涵蓋行程提醒、司機動態、未到警示及週期性摘要。
觸發條件
- 預約/行程確立後,系統自動建立通知排程
- 司機狀態變更時(接近、到站),觸發即時通知
- 週期排程(每週固定時間)觸發摘要通知
Happy Path
步驟 1:預約確認,建立排程
- 預約建立後,系統自動計算所有相關通知的排程時間
- 每筆通知排入排程佇列,狀態為「待發送」
步驟 2:排程時間到達
- 排程處理器定期檢查佇列中的待發送通知
- 到達排程時間 → 開始處理該筆通知
步驟 3:準備通知內容
- 載入對應的通知範本
- 將範本中的動態參數替換為實際值(乘客姓名、會面時間、司機資訊、車輛資訊等)
步驟 4:確定接收者
- 查找主要接收者(乘客本人或家長)
- 查找關聯接收者(透過通知鏈接機制關聯的其他監護人或相關方)
步驟 5:發送通知
- 透過對應管道發送通知
- 記錄發送結果,狀態更新為「已發送」
步驟 6:記錄日誌
- 每條通知的發送時間、接收者、發送結果寫入通知日誌
- 可供管理員事後查詢與追蹤
通知時間軸
| 時間點 | 觸發時機 | 通知內容 |
|---|---|---|
| 前一天晚間 | 行程前一天 | 行程資訊確認(乘客、時間、地點、司機) |
| 出發前 1 小時 | 行程當天 | 提醒通知(司機資訊、車牌、預估到達時間) |
| 接近中 | 司機 GPS 接近站點 | 司機即將到達通知 |
| 到站 | 司機到達站點 | 司機已到站通知 |
| 護送接送 | 回程司機到達 | 提示家長前來接回 |
| 未到 | 等候逾時 | 乘客未到通知 |
| 週期提醒 | 每週固定時間 | 本週/下週行程概覽 |
Worst Case
WC-1:通知發送失敗
- 情境:通知管道暫時不可用或接收者端異常
- 處理:進入重試佇列,依遞增間隔重試(最多 3 次),全部失敗後標記異常並通知管理員
WC-2:排程時間計算錯誤
- 情境:因時區、日光節約時間或資料異常導致排程時間不正確
- 處理:系統偵測到排程時間已過期 → 標記為「已過期」,不再發送過期通知以避免混淆
WC-3:接收者未綁定通知管道
- 情境:接收者尚未綁定任何通知管道
- 處理:該通知跳過,狀態標記為「已跳過」,記錄原因至日誌
WC-4:預約取消
- 情境:預約在通知發送前被取消
- 處理:所有相關的排程通知自動取消,狀態更新為「已取消」
WC-5:通知範本參數缺失
- 情境:某些動態參數在實際資料中不存在
- 處理:使用預設值替代或跳過該欄位,記錄異常供管理員排查
場景差異表
| 項目 | C2C 共乘 | B2B 接駁 | 校車 |
|---|---|---|---|
| 通知類型 | 行程提醒、司機動態 | 每日接送提醒、司機動態、護送提醒 | 每日接送提醒、護送提醒、學期週報 |
| 通知管道 | App 推播、SMS | LINE Flex Message | LINE Flex Message、App 推播 |
| 接收者 | 乘客本人 | 家長+通知鏈接接收者 | 家長+校方+通知鏈接接收者 |
| 週期通知 | 無 | 每週行程概覽 | 每週行程概覽+學期報告 |
| 前一天提醒 | 有(簡要) | 有(含上車碼、會面點、司機資訊) | 有(含點名資訊) |
| 護送提醒 | 不適用 | 回程到站時通知家長 | 回程到站時通知家長 |
所屬主流程
- M3 — 供需媒合與排程:行程確立後建立通知排程
- M4 — 行程執行:執行中觸發即時通知(接近、到站、未到)
- 關聯子流程:S11 上車驗證(觸發接近中、到站、未到等即時通知)