最近在弄的 LINE 預約機器人...
嗯... 最近有朋友開店,一直在抱怨說每天回 LINE 預約回到手軟。我想說,這東西應該可以自動化吧? 🤔 所以就跳下去研究了一下,想說做個 LINE Bot 來處理預約。
弄了幾個晚上,算是跑出一個很陽春的版本。可以直接在 LINE 裡面選時段、填資料,然後自動把預約寫進 Google Calendar。感覺... 好像有那麼一回事了。🤯
先說結論
老實說,這東西比我想像中還麻煩一點。簡單講,你有三條路可以選:
- 完全自己來 (DIY):寫程式串接 LINE 的 API,彈性最大,但最花時間,適合懂技術或想學的人。
- 用半自動化工具:像是 Make (以前的 Integromat) 這種,用拖拉的方式設定流程,不用寫太多程式碼,但還是要有點邏輯概念。
- 直接用現成服務 (SaaS):花錢買別人做好的預約系統,像是 SimplyBook.me 或 TinyBook,它們通常都有整合 LINE。最快,但也最沒彈性,而且要持續付錢。
沒有哪個是絕對最好的,完全看你的需求、預算還有... 耐心。😅
為什麼要做?... 還不就是為了省事
一開始的出發點很單純,就是要把我朋友從手動回訊息的地獄裡救出來。每天都有人問「明天下午有空嗎?」、「我想約下週三」、「可以幫我改時間嗎?」,這些重複性的工作,超級浪費生命。
一個好的預約機器人,理論上可以做到 24 小時自動接單、減少預約撞期的可能、甚至自動發送行前提醒,降低客人爽約的機率。 這就是目標,雖然我目前只做到了第一點。😂
最大的抉擇:要自己刻還是花錢了事?
這大概是第一個,也是最重要的一個問題。我掙扎了很久,也研究了一下市面上的方案。從國際知名的 Calendly 到台灣在地的 SimplyBook.me 或 ezPretty,選擇真的很多。 這些 SaaS 服務通常整合得很好,有的還能串金流,像是 LINE Pay。 如果你在美國或歐洲,可能會考慮跟 Stripe 這類金流整合,但在台灣,能串 LINE Pay 或綠界,還是比較接地氣。
不過呢,這些服務通常是算月費或年費,而且功能都包得好好的,你想改個小地方可能都不行。所以我最後還是決定... 不如自己來玩玩看吧。下面是我整理的一個簡單比較,給也在猶豫的人參考。
| 方案 | 優點 | 缺點 | 適合誰 |
|---|---|---|---|
| 從零開始 (DIY) | 彈性最大,想怎麼改就怎麼改;長期來看可能最省錢(只算主機費的話)。 | 嗯... 技術門檻最高,超花時間;要自己處理維護、資安、更新,很瑣碎。 | 有技術背景、想學程式、或是需求非常特殊,市面上找不到合用服務的人。 |
| 半自動化工具 (Make/Zapier) | 不用寫太多程式碼,用視覺化介面兜起來;比 SaaS 彈性一點。 | 還是有學習曲線;太複雜的邏輯很難實現;費用是按執行次數算,用量大也不便宜。 | 有點技術概念,但不想管伺服器;需求不算太複雜,只是想串接幾個服務的人。 |
| 現成 SaaS 服務 (SimplyBook.me 等) | 最快、最穩定,註冊完設定一下就能用;有專人客服可以問。 | 彈性最小,功能被綁死;長期來看是一筆固定開銷;客戶資料放在別人平台上。 | 絕大多數的店家、工作室... 基本上,不想為技術煩惱,只想專心做生意的人。 |
自己動手的大致步驟... 真的只是大致
好,既然選了最硬的路,就稍微紀錄一下過程。我不會寫太細的程式教學,因為網路上很多,而且... 老實說我也還在摸索中。這更像是一個心得分享。
1. 準備 LINE 開發者帳號
這一步最簡單。就是去 LINE Developers 網站,用你的 LINE 帳號登入,然後建立一個 Provider (供應商),再建立一個 Channel (頻道)。 類型要選「Messaging API」。 建立好之後,你會拿到最重要的兩樣東西:`Channel access token` 和 `Channel secret`。這兩個東西就像是你 Bot 的鑰匙和密碼,絕對不能外洩。
2. 搞定後端伺服器
這就是痛苦的開始。你的 Bot 需要一個「大腦」,也就是一個 24 小時運作的後端伺服器,用來接收跟回應 LINE 傳來的訊息。這個機制叫做 "Webhook"。
簡單說,當使用者傳訊息給你的 Bot,LINE 平台會把這個訊息(包含誰傳的、傳了什麼內容等等)打包起來,送到你指定的「Webhook URL」。 你的伺服器收到了,就要判斷怎麼回應,然後再透過 Messaging API 把回覆訊息傳還給使用者。
我一開始是用 Python + Flask 這個組合,然後部署到 Heroku。不過 Heroku 免費方案在 2022 年底結束了,現在要找其他替代品,像是 Google Cloud、AWS 或是一些新的平台。總之,你需要一個能穩定跑程式的地方。
3. 串接預約的「資料庫」
Bot 總要知道哪些時段被約走了吧?所以需要一個地方存預約資料。最簡單、最土炮的方式就是用 Google Sheets,LINE Bot 每次收到預約,就透過 Google Sheets API 把資料寫進去。網路上有很多用 Google Apps Script (GAS) 做的免費教學,這招很適合小量預約的情境。
但如果想做得更像樣一點,可以直接串 Google Calendar API。好處是預約成功後,可以直接在老闆跟客人的行事曆上都建立一個事件,甚至設定自動提醒。不過... Google API 的驗證機制有點繞,要花點時間看文件。😅
4. 讓介面好看一點:LIFF 的魔法
如果只是讓使用者用打字的來預約,體驗其實滿差的。萬一格式打錯,Bot 就看不懂了。這時候就要用 LIFF (LINE Front-end Framework)。
LIFF 基本上就是在 LINE 聊天室裡開一個小網頁。你可以用 HTML、CSS、JavaScript 做出漂亮的介面,例如一個視覺化的日期時間選擇器。 使用者點一點就選好,送出後,這個小網頁再把選好的資料傳回給你的 Bot 大腦。這樣體驗就好非常多。很多市面上的 SaaS 服務,其實也是用 LIFF 來實現預約畫面的。
所以... 自己弄值得嗎?
嗯... 怎麼說呢。老實說,如果你的需求很單純,而且你對搞這些技術性的東西沒興趣,那我會建議你直接花錢買個現成的服務。像是 SimplyBook.me 或 TinyBook 都很成熟了,而且有客服可以幫你解決問題。 省下來的時間拿去做生意,可能更划算。
但如果你像我一樣,有點控制狂,喜歡什麼都自己掌握,或者你的預約邏輯比較特別(例如要判斷不同老師、不同房間的空擋),那自己動手就很有趣。過程中會學到很多東西,從 API 串接到雲端主機部署,算是一個滿完整的專案經驗。
不過真的要有點心理準備,這不是一個週末就能搞定的東西。而且弄好之後的維護,也是一個隱形成本。像是 LINE 的 API 改版、你用的主機平台政策變更... 都可能讓你的 Bot 突然罷工。最近 LINE 台灣自己也開始推 AI 代理 (Agent) 的概念,未來可能會有更官方、更智慧的解決方案出現,值得關注。
總之,我的小小心得是:先從最小的功能開始做,能動最重要。不要一開始就想做一個超完美、功能超多的系統,那樣很容易就放棄了。😅
你覺得呢?
如果今天你要為自己的店或工作室弄一個預約機器人,你最不能妥協的功能是什麼?是「一定要能線上收訂金」、還是「一定要能處理多人預約」?在下面留言分享看看吧。👇
