全国オンライン対応受付 平日 9:00-18:00
お問い合わせ

開発記録 / toi-toi-toi制作記 / Vol.12 toi-toi-toi制作記 Vol.1

記事 04

LINE通知設計:予約確認・前日リマインド・キャンセル通知の3本柱

「設定が終わったので、テストしてみてください」と伝えた。オーナーが予約フォームから試し予約を入れた。数秒後、スマートフォンにLINEの通知が来た。

2026-06-07 公開

「設定が終わったので、テストしてみてください」と伝えた。オーナーが予約フォームから試し予約を入れた。数秒後、スマートフォンにLINEの通知が来た。

「来た!」という反応が返ってきた。

この「来た」という体験は、システムが完成したということより大きい。「自分のLINEに、自分が作ったフォームからの通知が来る」という体験は、口で説明するよりもずっとリアルにシステムの価値を伝える。


通知は3種類、宛先は2パターン

予約システムでは通知を3種類用意した。

予約確認はお客さんとオーナー(オーナー)の両方に送る。前日リマインドはお客さんのみ。キャンセル通知は将来の実装として後回しにした。

お客さんへの通知とオーナーへの通知は、同じLINE Messaging APIのpushMessageを使うが、内容が違う。お客さんには「予約できた安心」を、オーナーには「誰が・いつ・何のために来るか」を届ける。


1行ずつ考えた通知文

お客さんへの予約確認メッセージを書くとき、「ビジネスメールを書いてはいけない」と自分に言い聞かせた。

「この度はご予約いただき誠にありがとうございます」から始まるメッセージは、LINEの画面に浮かぶと浮いて見える。LINEはカジュアルな場所だ。

✅ 予約が確定しました!

📌 片づけレッスン
📅 2026/06/15(月) 10:00
👤 田中花子 様

ご質問はこちらのチャットでどうぞ。
当日お会いできることを楽しみにしています。

最初に「確定した」という事実。次に「何のサービスがいつあるか」。最後に「迷ったら連絡していい」という安心感。絵文字は文字列の中で視覚的なランドマークになる。

オーナー向けにはお客さんの連絡先も添える。

📩 新規予約が入りました!

📌 片づけレッスン
📅 2026/06/15(月) 10:00
👤 田中花子
📞 090-XXXX-XXXX
✉️ hanako@example.com

予約ID: abc123
📅 カレンダーに追加:
https://yoyaku.example.jp/gcal/abc123

カレンダー追加リンクはオーナー通知だけに含めた。これについては別の記事で詳しく書く。


前日リマインドをGASのタイムトリガーで実装

予約日の前日に「明日です」というリマインドを送る機能は、GASのタイムベーストリガーで実装した。

毎日午前9時に実行される関数が、翌日分の予約を全件取得してリマインドを送信する。

function sendReminders() {
  const tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);
  tomorrow.setHours(0, 0, 0, 0);

  const rows = SpreadsheetApp.openById(SHEET_ID)
    .getSheetByName('slots').getDataRange().getValues();

  rows.slice(1).forEach(r => {
    if (r[4] !== 'booked') return;
    const slotDate = new Date(r[2]);
    slotDate.setHours(0, 0, 0, 0);
    if (slotDate.getTime() !== tomorrow.getTime()) return;

    const lineUserId = r[10];
    if (!lineUserId) return;

    pushMessage(lineUserId, `⏰ 明日の予約のご確認\n\n${r[2]} ${r[3]}\nのサービスです。\n\nご不明な点はこちらのチャットでどうぞ。`);
  });
}

このトリガーはEC2が止まっていても動く。GASのサーバーはGoogleが管理しているからだ。「毎日動き続ける定期処理」をゼロコストで持てることが、GASの大きな強みの一つだ。


「自分のLINEを自分で友だち追加」という盲点

実装中に一つ気づいたことがある。LINE Messaging APIのpushMessageは、「LINE公式アカウントと友だちになっているユーザー」にしか送れない。

オーナーが自分自身のLINE公式アカウントを友だち追加しているかどうか、確認が必要だった。自分のアカウントを自分で友だち追加することは普通やらない。

案の定、友だち追加していなかった。QRコードを読み込んでもらい、友だち追加してもらった上でテストした。

技術的な問題ではなく、オペレーション上の確認事項だ。しかしこれを見落とすと「オーナーへの通知だけが来ない」という謎のバグとして現れる。設定時のチェックリストに入れておいた。


通知は「システムの気配」

予約システムを使い続けてもらうには、存在を感じさせ続けることが必要だ。

前日リマインドが届く。その瞬間、お客さんは「ああ、明日だ」と思う。オーナーは「明日△時に◯◯さんが来る」と思う。スプレッドシートを開かなくても、両者の頭の中でスケジュールが更新される。

通知は情報を届けるというより、「このシステムは今日も動いている」という証拠を届ける。機能の一つではなく、信頼関係を育てる手段だと思っている。


*次回は「LP設計——コーチング系サービスのトップページに何を置くか」*

*シンプルシステム株式会社 代表 伊藤勝彦*