訂位通知(LINE + 後台音效)
訂位通知系統涵蓋顧客通知與店家通知兩大方向,是降低 no-show 率與提升客流即時性的關鍵。
顧客通知(LINE Flex)
自動推播的時機
| 階段 | 觸發 | 內容 |
|---|---|---|
| 訂位送出 | 顧客提交訂位即時 | 綠色 Flex「訂位已送出,等待商家確認」,含訂位編號 / 日期時間 / 人數 / 桌位 + 「我的訂位(自動登入)」按鈕 |
| 店家確認 | 店家在訂位列表按「確認」(pending→confirmed) | 綠色 Flex「訂位已確認」,提示顧客店家已收件(不含桌位,見下方) |
| 前一天 18:00 | cron 每 5 分掃,台灣時區 18:00 觸發 | 藍色 Flex「明日訂位提醒」 |
| 當天 1 小時前 | cron 每 5 分掃,距訂位 50–70 分內 | 黃色 Flex「訂位提醒」 |
| 取消 | 顧客自己取消 / 店家在後台取消(兩張不同的卡) | 紅色 Flex「訂位已取消」 |
| 候補遞補 | 有空位釋出、候補自動或手動轉正 | 綠色 Flex「候補遞補成功」 |
| 復原取消 | 店員按「復原取消」把誤按的取消救回 | 綠色 Flex「訂位仍然有效」,見下方 |
注意:「訂位送出」那張的語意是「已送出、尚未確認」,不是「訂位成功」——線上訂位建立時是「待確認」狀態,改文案時不要寫成「已為您保留座位」。
「訂位已確認」那張卡刻意不寫桌位(2026-08-25 起)
內容管理 → 系統圖卡 找「餐飲訂位」分組的 訂位已確認,桌位變數(table_label)仍保留在可用變數清單裡,自行插入即可。加回去之前請先確認貴店的桌位在開店前不會再調整。
影響範圍僅限這一張顧客卡片:
- 訂位送出、前一天提醒、前 1 小時提醒 那幾張仍然有桌位。
- 推給店員的新訂位 / 取消通知不動 —— 店員要靠桌位到現場找人。開關設定(per-store)
訂位設定 → 訂位 tab 滑到底「會員 LINE 通知」區塊,五個獨立勾選(預設全開)。點每一列右側的「預覽」可看該張圖卡並直接前往編輯:
- 訂位送出成功時推播
- 店家確認後推播
- 店家取消訂位時推播(同時也管「復原取消」的通知,見下方)
- 用餐前一天提醒
- 用餐前 1 小時提醒
逐店覆寫 — 例如示範餐廳中山店可以全開,站前店想關掉確認推播也可以獨立設。
復原取消時也會通知客人
店員在 POS 誤按取消、再按 [復原取消](./10-pos-view.md#復原取消誤按救回) 把訂位救回來時,系統會推一則綠色圖卡「訂位仍然有效」給該筆訂位的會員。
「店家取消訂位時推播」這一個開關同時管取消與復原
推給客人的文案不會假設他知道發生過取消(誤按當下就救回來的話,他可能什麼都沒收到),也不會寫成「您先前取消的訂位已恢復」(取消是店家按錯的,不是客人取消的)。內容重點是「不用重新預約,準時來就好」。
內部備註不會外流給客人
[取消原因] ⋯⋯、[取消已復原] 由 ○○ 復原為「已確認」 這類內部標記,推播前會先濾掉。取消原因常常是「客人放鳥」「重複訂位」這種絕對不能讓客人看到的字。Flex 卡片可在 admin 編輯
「內容管理 → 系統圖卡」分組「餐飲訂位」下有 8 筆範本,點「編輯」可改文案、標題列顏色、變數插入。下次推播即生效,未自訂時使用內建版本。
| 範本 | 什麼時候推 |
|---|---|
pos_reservation_created | 顧客送出訂位(此時尚未確認) |
pos_reservation_confirmed | 店家確認後 |
pos_reservation_day_before | 用餐前一天 18:00 |
pos_reservation_one_hour | 用餐前約 1 小時 |
pos_reservation_cancelled | 顧客自己取消 |
pos_reservation_cancelled_by_store | 店家取消 |
pos_reservation_promoted | 候補遞補成功 |
pos_reservation_restored | 店家復原誤按的取消 |
注意:兩張取消卡不要改成一樣的文案。「顧客自己取消」那張是寫給主動取消的人看的; 對「被店家取消」的客人說「您的訂位已成功取消」,等於指控他自己取消 —— 而他其實是準備要去吃飯的人。文案錯置比不通知更傷。
注意:改「訂位取消已復原」那張時,請守住三件事: ① 不可假設客人收過取消通知(所以原文用「若您稍早曾收到取消通知」這種條件句); ② 不可寫成「您先前取消的訂位已恢復」(取消是店家誤按的,這樣寫等於指控客人); ③ 要講清楚客人該做什麼,答案是「什麼都不用做、準時來就好」。
推播條件
- 顧客必須已加 LINE 官方帳號為好友(LINE Push API 限制)
- 訂位時必須帶
line_user_id(LIFF 自動帶入,電話訂位無) - 重複推播保護:每個訂位每個階段只推一次(在
note加[reminded:stage]去重)
Flex 卡片 footer 按鈕
每張顧客卡片下方都有一顆按鈕,一律連到 `/reserve/my`(我的訂位) 頁。顧客點進去會用 LINE 自動登入,直接列出他名下所有的訂位,不必再輸入訂位編號或手機號碼驗證,也可在該頁一鍵取消。
按鈕文字依卡片而定:
| 卡片 | 按鈕文字 |
|---|---|
| 訂位送出 / 訂位已確認 / 前一天提醒 / 前 1 小時提醒 / 候補遞補 / 訂位仍然有效 | 我的訂位(自動登入) |
| 顧客自己取消 / 店家取消 | 查看我的訂位 |
兩張取消卡刻意用不同的字:客人剛被取消,「我的訂位(自動登入)」聽起來像是「你還有訂位」,是錯的訊號;「查看我的訂位」是中性的,點進去看到空清單也不衝突。
2026-08-25 起按鈕文字才全部統一
內容管理 → 系統圖卡。店家通知(LINE 文字 + 後台音效)
LINE 文字推播
對象 所有 line_id IS NOT NULL 且 notify_new_reservation = true 的後台管理員。
觸發 兩個入口:
- 顧客 LIFF 線上訂位
- 後台手動建單(讓店長 / 其他店員也知道)
訊息內容
新訂位
編號:R20260607-0001(線上)
日期:2026-06-10 18:00
姓名:王小明
人數:4 位
桌位:A03(若有指派)
備註:[偏好桌型] 包廂設定店員接收 進「系統 → 帳號管理」編輯帳號:
- 填寫
line_id(顧客掃 OA QR 加好友後給的 UID) - 勾選「新訂位通知」(預設 true)
多分店過濾 若帳號 store_ids 有指定分店,只會收到該分店的訂位通知;店長設「全部 / 無指定」則收全部。
後台 in-app 通知
訂位列表頁(admin + POS):
- 自動 30 秒 silent 刷新:頁面在背景偵測新訂位
- 新訂位即時提示:偵測到
source='online'的新訂位 → 跳右上角 toast「N 筆新線上訂位」+ 880Hz 蜂鳴音 0.4 秒 - 可關閉音效:右上角提示音按鈕可切換靜音
為什麼只對線上訂位響? 後台代訂或現場訂位(電話)是店員自己操作的,不需提醒自己。只有顧客主動從 LIFF 訂位才需要「叮咚!」吸引注意力。
設定 SOP
開通 LINE 通知(首次)
- 店長 / 老闆自己:
- 用手機開 LINE 加官方帳號為好友 - 進「會員管理」找到自己(或建假帳號)→ 抄 line_id - 進「系統 → 帳號管理」找自己的後台帳號 → 填 line_id + 勾「新訂位通知」
- 店員們(讓他們也收得到):
- 同樣的步驟,每個店員自己的後台帳號都填 line_id
- 測試:
- 從 LIFF 訂位頁送一筆假訂位 - 應該幾秒內收到 LINE 訊息 - 同時後台訂位列表會跳通知 + 音效
開通顧客提醒(自動)
無需設定,會自動生效。要求:
- 顧客必須加官方帳號為好友
- 訂位時是用 LIFF(不是直接打電話 / 後台代訂)
常見問題
Q1 收不到新訂位 LINE 通知
依序檢查:
- 後台帳號 line_id 是否填正確
- 「新訂位通知」是否勾選
- LINE Channel Access Token 是否還有效(系統 → LINE 參數)
- 該 line_id 是否已加官方帳號為好友(沒加 LINE 拒收 push)
Q2 通知音效一直叮怎麼辦
右上角點提示音按鈕切換靜音。靜音設定僅當前瀏覽器分頁。若整體流量太大,可考慮:
- 多人輪流收音效(一人關一人開)
- 改用 LINE 通知(不會打擾正在用後台的人)
Q3 前一天 18:00 提醒沒收到
cron 每 5 分鐘檢查一次,台灣時區 18:00(含 17:55–18:04)才會推。若該時段你 OA 正好掉 token 或租戶 channel 沒設好,會 silent fail(cron 不重試)。
Q4 提醒訊息文字可以改嗎
圖卡樣式可在「內容管理 → 系統圖卡」自行編輯(文案 / 標題列顏色 / 變數),共 8 張。未自訂時使用內建樣式。
利用通知壓低 no-show 率
其他問題協助