予約管理アプリでは、予約完了メールを送っていても、利用者がメールを見落とすことがあります。そこで考えられるのが、メール通知を残しながら、希望者にはLINEでも予約情報を届ける仕組みです。
この記事は、今治Excel教室 予約管理アプリへLINE通知を追加する場合の、まだ実装前の構想・アイデア整理です。現在のアプリにLINE通知機能が実装済みという意味ではありません。

基本通知はメール、LINEは希望者向けにする
この構想で大切にしたいのは、LINE通知へ完全移行しないことです。
予約者全員にLINE公式アカウントの友だち追加や連携操作を求めると、予約完了までの手順が増えます。LINEを使っていない人や、公式アカウントを追加したくない人もいます。
そこで、通知手段を次のように分けます。
- 予約完了後は、従来どおり確認メールを送る
- 予約完了画面や確認メールに「LINEでも通知を受け取る」導線を置く
- 希望者だけLINE公式アカウントを友だち追加して連携する
- 連携後は、予約確定・変更・キャンセル・前日リマインドをLINEでも送る
- LINE送信に失敗しても、メールで予約内容を確認できるようにする
LINEは便利ですが、ブロックや連携失敗で届かない可能性があります。予約控えとして残しやすいメールを基本通知にし、LINEを見落とし防止の補助通知として扱う方が、運用上のトラブルを抑えやすくなります。
想定する全体構成
既存の予約アプリでは、Next.jsの画面から予約内容を送り、Google Apps ScriptのWeb APIを経由してGoogleスプレッドシートへ保存する構成を採用しています。
LINE連携を追加する場合も、予約画面はNext.js、予約保存と通知処理はGASという役割分担を維持すると整理しやすくなります。
予約者
↓ 予約フォームを送信
Next.js / 予約Webアプリ
↓
GAS Web API
├─ Googleスプレッドシートへ予約を保存
├─ 確認メールを送信
└─ LINE Messaging APIで通知
LINE公式アカウント
↓ Webhook
GAS Webアプリ
↓
予約番号・メールアドレス・LINE userIdを紐づけて保存
この分担では、Webアプリ側は予約日時の選択やLINE連携ボタンの表示に集中できます。GAS側には、予約保存、メール送信、Webhook受信、LINE通知、定期リマインドといった自動処理を集約できます。
予約アプリ本体の構成は、Next.jsとGASスプレッドシートDBで予約アプリを作る構成で詳しく整理しています。
LINE通知で難しいのは顧客との紐づけ
メールは予約フォームへ入力されたメールアドレスに送れます。一方、LINEで予約者本人へ通知するには、その人のLINE userIdが必要です。
LINE公式アカウントを友だち追加してもらうだけでは、予約表のどの顧客と結びつくのか判断できません。そのため、予約情報とLINE userIdを安全に紐づける手順が必要です。
初期案: 予約番号をLINEで送ってもらう
初期実装では、予約完了画面で予約番号を案内し、友だち追加後にその番号をLINEへ送ってもらう方法が考えられます。
予約完了
↓
予約番号「R-20260611-001」を表示
↓
予約者がLINE公式アカウントを友だち追加
↓
予約番号をLINEで送信
↓
Webhookで予約番号とLINE userIdを受信
↓
予約データと紐づける
この方法は、利用者に予約番号を送ってもらう手間がある一方、仕組みを小さく始めやすい点が利点です。まずは連携の利用率や問い合わせ内容を確認し、その後に操作を減らす判断ができます。
発展案: LIFFやLINEログインで自動連携する
より滑らかな操作にする場合は、予約完了画面のボタンからLIFFやLINEログインを使う連携ページを開き、予約情報とLINE userIdを自動で紐づける方法があります。
ただし、この方法では認証処理、状態管理、連携失敗時の復旧など、設計する範囲が広がります。最初から作り込まず、手動の予約番号連携で運用を確かめてから検討する方が現実的です。
GASへ通知処理を集約する理由
今回のような小規模予約アプリでは、GASを通知処理の中継役として使うと、既存構成を活かせます。
- 予約データを保存しているスプレッドシートを直接読み書きできる
- Webアプリとして公開し、LINEのWebhook受信先にできる
- UrlFetchAppからLINE Messaging APIを呼び出せる
- 時間主導型トリガーで前日リマインドを実行できる
- 予約保存、メール送信、LINE通知のログをまとめやすい
一方で、LINEのチャネルアクセストークンやチャネルシークレットは、ブラウザへ公開してはいけません。GASのスクリプトプロパティなど、外部から見えない場所で管理する必要があります。
また、Webhookを受け取る場合は、受信した内容をそのまま信用せず、署名検証、入力値検証、重複イベントへの対処、実行ログの保存を含めて設計します。
段階的に追加する
通知機能は、一度にすべて実装するよりも、運用を確認しながら段階的に追加する方が安全です。
| 段階 | 追加する機能 | 確認すること |
|---|---|---|
| 1 | 予約完了メールの安定化 | 予約受付・変更・キャンセル時に正しい内容が届くか |
| 2 | 講師側へのLINE通知 | 新規予約を固定の通知先へ確実に届けられるか |
| 3 | 希望する予約者へのLINE通知 | 予約番号とLINE userIdを正しく紐づけられるか |
| 4 | 前日リマインド | 二重送信や送信漏れを防げるか |
| 5 | LIFF・LINEログイン連携 | 操作を減らしても安全に本人を識別できるか |
講師側への通知は送信先が固定なので、予約者ごとの紐づけが必要な通知より先に試せます。先に送信処理と運用ルールを確認しておけば、顧客向け通知へ進む際の不確定要素を減らせます。
想定する通知
LINEへ送る候補は、利用者が次の行動を判断するために必要な情報です。
- 予約受付・予約確定
- 予約日時や受講方法の変更
- キャンセル完了
- 前日リマインド
通知には、日時、受講方法、変更後の内容、問い合わせ先などを簡潔に載せます。氏名、電話番号、相談内容などの個人情報を必要以上にメッセージへ含めない設計も重要です。
また、予約変更やキャンセルをLINEの返信だけで受け付けるか、予約アプリの専用画面へ案内するかも決める必要があります。最初は通知専用にし、変更操作は既存の予約管理フローへ誘導する方が、処理の責務を分けやすくなります。
実装前に決めること
構想から実装へ進む前に、少なくとも次を整理します。
- LINE通知を受け取れる利用者と、連携解除の方法
- 予約者本人とLINE userIdを紐づける方法
- メールとLINEのどちらを正式な通知として扱うか
- 予約確定、変更、キャンセル、リマインドの送信タイミング
- LINE送信失敗時の再送・記録・運営者確認の方法
- チャネルアクセストークンなどの秘密情報の管理方法
- Webhookの検証と重複イベントへの対応
- 個人情報の保存範囲と利用案内
- LINE公式アカウント側の利用料金・送信上限・最新仕様
予約枠そのものには同時予約対策も必要です。スプレッドシートを予約データの保存先にする際の注意点は、GASでGoogleスプレッドシートを簡易DB化し外部WebアプリからCRUDする構成も参考になります。
まとめ
予約管理アプリへLINE通知を追加する場合は、メールを置き換えるのではなく、希望者向けの補助通知として併用する構成が現実的です。
要点は、予約者とLINE userIdを正しく紐づけること、秘密情報を外部へ出さないこと、送信失敗時にも予約内容を確認できることです。最初は講師側通知や予約番号による連携から小さく試し、利用状況を見ながら前日リマインドや自動連携へ広げます。
この仕組みは、現時点では今治Excel教室 予約管理アプリに対する構想・アイデア段階です。実装時には、LINE Developersの最新仕様、利用条件、送信上限を確認したうえで設計します。
