Skip to content

S12 排程通知

S12-scheduled-notifications 流程圖

概述

系統依照預設的時間軸自動發送各類通知,確保乘客與相關方在重要時間點收到行程資訊。通知涵蓋行程提醒、司機動態、未到警示及週期性摘要。


觸發條件

  • 預約/行程確立後,系統自動建立通知排程
  • 司機狀態變更時(接近、到站),觸發即時通知
  • 週期排程(每週固定時間)觸發摘要通知

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 推播、SMSLINE Flex MessageLINE Flex Message、App 推播
接收者乘客本人家長+通知鏈接接收者家長+校方+通知鏈接接收者
週期通知每週行程概覽每週行程概覽+學期報告
前一天提醒有(簡要)有(含上車碼、會面點、司機資訊)有(含點名資訊)
護送提醒不適用回程到站時通知家長回程到站時通知家長

所屬主流程

  • M3 — 供需媒合與排程:行程確立後建立通知排程
  • M4 — 行程執行:執行中觸發即時通知(接近、到站、未到)
  • 關聯子流程:S11 上車驗證(觸發接近中、到站、未到等即時通知)