【爆速構築】GASでチャットボット型予約システムを自作!完全無料・即使える実践ガイド

はじめに:「予約管理、まだ手動でやってるの?」

  • メールや電話での予約受付、管理がぐちゃぐちゃ…

  • ダブルブッキングや漏れが怖い…

  • もっとスマートに予約を取れたらいいのに…

そんなあなたに提案したいのが、
**Google Apps Script(GAS)を使った「チャットボット型予約システム」**です!

これを導入すれば——

✅ お客さんはチャット感覚でサクッと予約
✅ スプレッドシートに自動記録
✅ ダブルブッキング防止&24時間受付OK

この記事では、プログラミング初心者でもできる
GASを使った予約チャットボットの作り方を、ステップバイステップで解説します!


なぜ今「チャットボット×予約管理」なのか?

■ メール&電話はもう時代遅れ

顧客側も、運営側も、
予約に時間をかける時代はもう終わりです。

  • 顧客:すぐに予約したい

  • 運営:間違いなく管理したい

チャットボットを使えば、
両方のニーズを同時に満たせます!

■ GASなら「無料で・すぐに・自分で」作れる

チャットボット=難しい
と思い込んでいませんか?

GASを使えば、
スプレッドシート+簡単なスクリプトだけで、
今日から動く予約システムを作ることができます。

コストゼロ。スピード最速。これがGASの本気です。


ステップ1:ベースとなるスプレッドシートを作成

まずは、予約データを管理するスプレッドシートを作りましょう。

推奨するカラム:

  • 予約ID

  • 名前

  • メールアドレス

  • 希望日時

  • 希望メニュー(サービス名)

  • ステータス(受付中/確定/キャンセル)

ポイント:
1行=1予約の形式を守ること!

これだけで、あとが劇的に楽になります。


ステップ2:チャットボットを設計する

今回はシンプルなフォーム型チャットボットをGASで作成します。

【流れ例】
「こんにちは!ご予約ですね?お名前を教えてください。」

「ありがとうございます!次に希望日時を教えてください。」

「最後に希望メニューを教えてください。」

「ご予約を受け付けました!」

こういう簡単な対話シナリオを用意するだけでOK!


ステップ3:GASでチャットボットのロジックを書く

以下、GASエディターに貼り付ける基本コードです。

const SHEET_ID = 'あなたのスプレッドシートID';
const SHEET_NAME = '予約データ';

function doPost(e) {
  var params = JSON.parse(e.postData.contents);
  var userMessage = params.message.text; // ユーザーからの入力
  
  var replyText = handleUserInput(userMessage, params.userId);
  
  return ContentService.createTextOutput(JSON.stringify({
    'text': replyText
  })).setMimeType(ContentService.MimeType.JSON);
}

// ユーザー別セッション管理用
var session = {};

function handleUserInput(message, userId) {
  if (!session[userId]) {
    session[userId] = { step: 1 };
  }
  
  var userSession = session[userId];
  var reply = '';

  switch(userSession.step) {
    case 1:
      reply = 'こんにちは!お名前を教えてください。';
      userSession.step++;
      break;
      
    case 2:
      userSession.name = message;
      reply = 'ありがとうございます!希望日時を教えてください。';
      userSession.step++;
      break;
      
    case 3:
      userSession.date = message;
      reply = '最後に希望メニューを教えてください。';
      userSession.step++;
      break;
      
    case 4:
      userSession.menu = message;
      saveReservation(userSession);
      reply = 'ご予約ありがとうございます!内容を確認後、確定連絡します。';
      delete session[userId]; // セッション終了
      break;
      
    default:
      reply = 'もう一度最初からお願いします。';
      delete session[userId];
      break;
  }
  
  return reply;
}

function saveReservation(data) {
  var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME);
  sheet.appendRow([
    new Date(), 
    data.name, 
    '', // メールアドレス(省略)
    data.date, 
    data.menu, 
    '受付中'
  ]);
}

これだけで、
ユーザーとの対話→予約データ保存が一気に自動化できます!


ステップ4:チャットボットをWebアプリ化して公開

GASの「Webアプリとして公開」機能を使って、
チャットボットを誰でも使える形にしましょう。

手順:

  1. 「デプロイ」→「新しいデプロイ」

  2. 種類:「ウェブアプリ」

  3. 実行する関数:doPost

  4. アクセス権:「全員(匿名ユーザー含む)」に設定

  5. デプロイしてURLを取得!

このURLを、

  • サイトに貼る

  • QRコード化して店頭掲示

  • LINE Bot連携する

など、自由に展開できます!


ステップ5:さらに実用的にカスタマイズする方法

■ ダブルブッキング防止機能

希望日時が既に埋まっているかチェックするコードを追加すれば、
ダブルブッキングを防げます!

■ 予約確定・リマインド自動メール

予約受付後に「確認メール」「前日リマインドメール」も自動送信できるようにすれば、
顧客体験が一気にアップします!

■ 管理者用ダッシュボード作成

スプレッドシートに受信予約データを集計して、
管理者だけが見れる今日の予約リストを自動生成することも可能です。


実運用で注意すべきポイント

■ 同時セッション管理

簡易チャットボットはセッション管理が甘いと混乱するので、
できればユーザーごとのセッション保存をプロパティサービスに切り替えましょう。

■ スパム・なりすまし対策

Webアプリを一般公開する場合は、
reCAPTCHA連携など最低限のスパム対策も検討を!


まとめ:GASで「予約の未来」を作ろう!

今回紹介した内容をまとめると——

  • GASでチャットボット型予約受付が作れる

  • スプレッドシート連携でデータ管理も簡単

  • 自動応答・ダブルブッキング防止も可能

  • しかも完全無料!

これを導入すれば、
面倒な手動管理を卒業して、予約ミスゼロ・管理ラクラクの未来が手に入ります。

今日からあなたも、
GASでチャットボット型予約システム構築に挑戦してみませんか?

Shop now