Media > AI活用ユースケース > 総務 > グランピング施設が予約の確定の通知を Make で受け、食材・アクティビティ・送迎の手配の一覧を作って、前日の準備の漏れを防ぐ

グランピング施設が予約の確定の通知を Make で受け、食材・アクティビティ・送迎の手配の一覧を作って、前日の準備の漏れを防ぐ

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

予約サイトから届く確定・変更・取消の通知を Make で拾い、Claude に人数・食事・アレルギー・アクティビティ・送迎の希望を抜き出させます。毎日決まった時刻に、調理・アクティビティ・送迎の担当ごとの手配の一覧ができます。

サマリー
生成AI
ChatGPT/Claude
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
その他/宿泊
対象部門
総務
対象業務
データ入力・転記/集計・分析
主な課題
人手が足りない/入力作業が多い/期限・対応漏れが起きる
AIで行う処理
抽出
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 予約の通知メールが届く。事務の担当が開いて読む
  2. 予約表のスプレッドシートに、予約番号・宿泊日・テント・人数・プラン・オプションを写す
  3. 備考の欄を読み、アレルギー・記念日・到着の時刻・ペットの記載を拾う
  4. 毎日夕方に、3日後の到着の予約を予約表から拾い、調理の表に人数とプランとアレルギーを書く
  5. 同じく、アクティビティの表に日時と人数を、送迎の表に駅の到着の時刻と人数を書く
  6. 変更・取消の通知が来たら、予約表と3つの表をそれぞれ直す
  7. 紙の表を調理場・アクティビティの小屋・送迎の運転手に渡す
導入後(After)
  1. 自動予約の通知メールが届くと、Make の Watch emails が拾う
  2. 自動Make が本文を Claude API に渡し、通知の種類・予約番号・宿泊日・人数・プラン・アレルギーの記載・アクティビティ・送迎の希望を原文つきで抜き出させる
  3. 自動ルーターで確定・変更・取消に分け、予約の台帳に行を足す・直す・取消の印を付ける
  4. 自動毎日15時に別のシナリオが動き、3日後の到着の予約を台帳から集める
  5. 自動Make が集計し、調理の人数表・アクティビティの枠の表・送迎の便の表を作る
  6. 自動枠の定員を超える、送迎の便が決まらない、アレルギーの記載がある、などのものに印を付ける
  7. 人事務の担当が、印の付いたものと台帳の新しい行を通知の原文と見比べる
  8. 人料理長がアレルギーの記載を読み、対応できるかを決めて、必要なら宿泊者に確かめる
  9. 人事務の担当が3つの表を確かめて各担当に渡し、食材の人数を仕入先に伝える
各工程の詳しい説明を読む
  1. 予約の通知メールが届く。事務の担当が開いて読む
  2. 予約表のスプレッドシートに、予約番号・宿泊日・テント・人数・プラン・オプションを写す
  3. 備考の欄を読み、アレルギー・記念日・到着の時刻・ペットの記載を拾う
  4. 毎日夕方に、3日後の到着の予約を予約表から拾い、調理の表に人数とプランとアレルギーを書く
  5. 同じく、アクティビティの表に日時と人数を、送迎の表に駅の到着の時刻と人数を書く
  6. 変更・取消の通知が来たら、予約表と3つの表をそれぞれ直す
  7. 紙の表を調理場・アクティビティの小屋・送迎の運転手に渡す

(a)変更が3つの表に届かない。 人数が1人増えた変更の通知を予約表には直しても、すでに作った調理の表を直し忘れることがあります。食材は3日前に注文しているので、気づくのは当日の夕方です。

(b)アレルギーの記載が散らばる。 自社の予約の仕組みでは専用の欄、予約サイトでは「ご要望」の欄、さらに予約の後に送られてくる問い合わせのメール。3つの場所を毎回見ないと、1つを落とします。

(c)オプションの書き方がばらばら。 「サウナ貸切(16:00〜)」「サウナ 1枠」「サウナ希望」と、同じ申込が別の書き方で届きます。時刻が書かれていない申込を、枠に入れたつもりで入れていないことがあります。

(d)夕方の表づくりが重い。 4番と5番は、チェックインの受付の時間に重なります。到着の受付をしながら3つの表を作るので、写し間違いが出ます。

  1. 【自動】 予約の通知メールが届くと、Make の Watch emails が拾う
  2. 【自動】 Make が本文を Claude API に渡し、通知の種類・予約番号・宿泊日・人数・プラン・アレルギーの記載・アクティビティ・送迎の希望を原文つきで抜き出させる
  3. 【自動】 ルーターで確定・変更・取消に分け、予約の台帳に行を足す・直す・取消の印を付ける
  4. 【自動】 毎日15時に別のシナリオが動き、3日後の到着の予約を台帳から集める
  5. 【自動】 Make が集計し、調理の人数表・アクティビティの枠の表・送迎の便の表を作る
  6. 【自動】 枠の定員を超える、送迎の便が決まらない、アレルギーの記載がある、などのものに印を付ける
  7. 【人】 事務の担当が、印の付いたものと台帳の新しい行を通知の原文と見比べる
  8. 【人】 料理長がアレルギーの記載を読み、対応できるかを決めて、必要なら宿泊者に確かめる
  9. 【人】 事務の担当が3つの表を確かめて各担当に渡し、食材の人数を仕入先に伝える

7番目と8番目を省かないでください。 抜き出しの結果は全件、人が原文と見比べます。アレルギーは料理長が必ず読みます。 12分が4分になるのは、写す作業が「見比べる作業」に置き換わるからです。

4番目を確定の通知とは別のシナリオにしているのは、3つの表は「その日の締め」で作るものだからです。 通知のたびに表を作り直すと、調理の担当が見ている表が1日に何度も変わります。表は毎日15時に作り、それより後の変更は印を付けて当日の朝に知らせます。

02今回想定するシステム構成

構成図
予約サイト(2つ)・自社の予約の仕組みの通知 ── 確定/変更/取消
   ▼【トリガー】Gmail の Watch emails(送信元で絞る)
Make(シナリオ1:通知ごと)
   ▼
Claude API(Make an API Call で Messages API)
   │   通知の種類・予約番号・宿泊日・テント・人数・プラン
   │   アレルギーの記載(原文)・アクティビティ・送迎の希望
   ▼ ルーター
   ├── 確定 ── 予約の台帳に Add a Row
   ├── 変更 ── 同じ予約の行を Update a Row(変更の前後を記録)
   ├── 取消 ── 行に取消の印
   └── フォールバック ── 要確認の一覧
───────────────────────────
Make(シナリオ2:毎日15時)
   ▼ Search Rows(3日後の到着・取消でないもの)
   ▼ Array aggregator(Group by でプラン・枠・便ごとにまとめる)
   ├── 調理の人数表(アレルギーの記載は原文のまま)
   ├── アクティビティの枠の表(定員の超過に印)
   └── 送迎の便の表(便の定員の超過に印)
   ▼
【人】事務の担当が確かめる ── 料理長がアレルギーを読む ── 各担当へ
役割想定する製品代替候補
ワークフローMake(シナリオ。Gmail、Google Sheets、ルーター、Array aggregator)Zapier、n8n、Power Automate
生成AIClaude API(Messages API、構造化出力)OpenAI API
保管Google スプレッドシート(予約の台帳・プランと枠と便の表・3つの手配の表)Airtable
メールGmail(予約の通知を受けるアドレス)Microsoft Outlook

新しく作るのは、プランと枠と便の表です。 予約サイトごとのプランとオプションの表示名、施設の側のコード、アクティビティの枠の時刻と定員、送迎の便の時刻と定員を書きます。通知に書かれるのはサイトの表示名なので、表示名からコードを引く表が要ります。

AI の部品は Claude API です。 Make の Anthropic Claude アプリには Simple Text Prompt や Create a Prompt がありますが、公式のページに構造化出力の記載が無いため、Make an API Call で Messages API を呼び、output_config.format に JSON Schema を渡します。 子どもの宿泊者のアレルギーの記載を扱うので、代替候補にも、18歳未満が関わる利用に制限を設けている製品は挙げていません。 使う製品の利用の条件は、契約の前に確かめてください。

集計は Make の Array aggregator で行います。 集約のモジュールは、複数のバンドルを1つのバンドルにまとめるものとされ、Group by の欄に式を入れると、結果の値ごとに1つずつのバンドルを出すとされています。プランのコード、アクティビティの枠、送迎の便でまとめれば、それぞれの表の1行ができます。

03どうやって実装するのか

Step1

処理の起点を決める

シナリオは2つに分けます。 1つ目は通知ごとに動くシナリオ、2つ目は毎日決まった時刻に3つの表を作るシナリオです。

1つ目は Gmail の Watch emails で通知を拾います。 フィルターには、条件を選ぶ簡単なフィルターと、Gmail の検索の書き方で指定する方法があり、1回に扱う上限は500件以下とされています。Gmail の検索の書き方で、2つの予約サイトと自社の予約の仕組みの送信元だけに絞ります。 15分ごとに動かします。

拾ったメールにはラベルを付けます。 「処理済み」のラベルは、予約の台帳への書き込みまで通ったときだけ Update email labels で付けます。既読にする設定は使いません。 事務の担当が先にメールを開いても拾えるようにするためです。

2つ目は、Make のスケジュールで毎日15時に動かします。 スケジュールには、一定の間隔、1回だけ、毎日、平日、毎週、毎月、日付の指定、手動の実行の設定があるとされています。「毎日」を選びます。 15時にしているのは、仕入先に人数を伝える締めが夕方だからです。時刻の設定がどのタイムゾーンで動くかは、組織とシナリオの設定で確かめます。

Step2

入力データを集める

データ中身取得元
通知のメール件名、送信元、受信日時、本文Gmail の Watch emails
予約の台帳予約番号、サイト、宿泊日、テント、人数、プラン、アレルギーの原文、アクティビティ、送迎、状態Google スプレッドシート
プランと枠と便の表サイトごとの表示名、施設のコード、枠と便の時刻と定員Google スプレッドシート
予約の後の問い合わせアレルギーや到着の時刻の追加の連絡(メールで届いたもの)Gmail(事務の担当が転送)

質を決めるのは、プランと枠と便の表の表示名の列です。 予約サイトのプランの名前は、季節の宣伝の言葉が付いて長くなり、同じプランでもサイトによって名前が違います。 表示名を並べておけば、抜き出した名前から施設のコードを引けます。

予約の後の問い合わせは、事務の担当が転送します。 宿泊者が後から「子どもがそばアレルギーでした」と連絡してくることがあります。このメールを、件名に予約番号を入れて決まったアドレスに転送すると、1つ目のシナリオが変更として拾います。

Step3

データの取得方法を決める

通知のメールは Watch emails が本文ごと渡します。本文が HTML のときは、Make の側で改行を残す形で文字にしてから渡します。

取るものどこから何に使うか
通知の本文と件名Watch emailsClaude に渡す
プランとオプションのコードSearch Rows(サイトと表示名で検索)抜き出した表示名をコードにする
同じ予約の行Search Rows(サイトと予約番号で検索)変更・取消で直す行を探す
3日後の到着の行Search Rows(宿泊日と状態で検索。2つ目のシナリオ)3つの表を作る

変更と取消は、サイトの名前と予約番号の2つで引きます。 番号の形はサイトごとに違い、番号だけで引くと、別のサイトの同じ番号に当たることがあります。 Search Rows の Limit は1にせず、2つ以上返ったら要確認に回します。

送迎の便は、Make が決めます。 抜き出した駅の到着の時刻より後で、最も早い便です。便の時刻と定員は便の表から引き、到着の時刻が書かれていなければ便を決めずに印を付けます。

Step4

AIへ渡す前に整形する

  1. 送信元の確認 … 予約サイトと自社の予約の仕組みの送信元か確かめます
  2. 本文を文字にする … HTML を改行つきの文字にし、広告や署名を外します
  3. 転送のメールの確認 … 転送されたメールは、件名の予約番号を Make が読み、本文と一緒に渡します
  4. 連絡先を伏せる … 電話番号とメールアドレスは「[連絡先]」に置き換えてから渡します
  5. 同じメールの二度目を外す … メールの ID が処理済みの一覧にあれば処理しません

4番目は、抜き出しに連絡先が要らないためです。 宿泊者への確かめは、予約サイトのメッセージか、台帳から事務の担当が電話で行います。

アレルギーの記載は、前処理で手を加えません。 改行や句読点も含めて、本文のまま渡します。

Step5

AIに処理させる

させるのは、通知のメールから予約の中身を抜き出すことだけです。

抜き出すもの抜き出し方書かれていないとき
通知の種類確定・変更・取消・その他判断がつかなければ unknown
サイトと予約番号本文の表記のままnull
宿泊日とテント日付は年月日、テントは表示名のままnull
人数大人・子ども・幼児を分けて、本文の数字のままnull
食事のプランプランの表示名のまま、人数ごと空の配列
アレルギーの記載本文の文のまま、全部空の配列
アクティビティ表示名、希望の日時、人数空の配列
送迎の希望駅の名前、到着の予定の時刻、人数null
変更の前後変更の通知なら、何が何から何に変わったか空の配列

アレルギーの記載は、要約も分類もさせません。 「卵」「乳」のような品目に分けさせると、「加熱したものも不可」「同じ鉄板で焼いたものも避けたい」といった程度の記載が落ちます。 料理長が対応を決めるのに要るのは、品目の名前より、その程度の記載です。

子ども・幼児の区分は、サイトの書き方のまま写させます。 予約サイトによって「子ども(小学生)」「子ども(3歳〜12歳)」「添い寝」と区分が違います。区分の名前を child_labels に写させ、どの区分を子ども向けのプランに数えるかは、プランと枠と便の表に施設が書いておきます。 AI に年齢から区分を決めさせると、サイトごとの決まりとずれます。

させないこと理由
アレルギーの記載を要約・分類する程度の記載が落ちる。料理長が原文を読む
アレルギーに対応できるかを判断する料理長が決める
枠や便を決める枠と便の表から Make が決める
定員を超えるかを判断するMake が定員と比べる
プランの表示名をコードに直す表で照合する。似た名前に寄せない
Step6

指示内容を固定する

あなたはグランピング施設の事務所で、予約の通知メールを読む担当です。
渡されたメールの本文だけを読み、予約の中身を抜き出してください。
書かれていないことを推測で埋めないでください。

【通知の種類】
- confirmed ... 新しい予約が確定した通知
- modified .... 日付・人数・プラン・オプションなどが変わった通知、
                 予約の後の追加の連絡
- cancelled ... 予約が取り消された通知
- other ....... 予約の中身を含まない通知
- unknown ..... 判断がつかない
件名だけで決めず、本文の書き方で判断してください。

【厳守事項】
- アレルギー・食べられないもの・体質についての記載は、本文の文のまま、
  全部を allergy_notes に写してください。要約しない、品目に分けない、
  言い換えない。誰についての記載か書かれていれば、それも含めて写してください。
- アレルギーについての記載が無ければ allergy_notes は空にしてください。
  「なし」と書かれていれば、その文を写してください。
- プラン・オプション・アクティビティの名前は本文の表記のまま写してください。
- 人数は大人・子ども・幼児を分けて、本文の数字をそのまま入れてください。
  合計しか書かれていなければ guests_total だけに入れてください。
- 日付は YYYY-MM-DD にしてください。年が無いときは受信日時より後で
  最も近い日付にし、year_inferred を true にしてください。
- 時刻が書かれていないアクティビティは、time を null にしてください。
- 送迎の希望は、駅の名前と到着の予定の時刻が書かれていれば写してください。
- 変更の通知では、何が何から何に変わったかを changes に並べてください。
- [連絡先]の伏せ字を戻そうとしないでください。

【受信日時】{received_at}
【送信元】{from}
【件名】{subject}
【本文】{body}

「『なし』と書かれていれば、その文を写す」を入れているのは、空と「なし」を分けるためです。 自社の予約の仕組みでは、アレルギーの欄が必須で「なし」と書かれます。予約サイトでは欄が無いことがあり、空は「聞いていない」という意味です。 料理長の表で、この2つを分けて見せます。

Step7

出力形式を固定する

次の形の JSON で受け取ります。

{
  "notice_type": "confirmed",
  "channel": "サイトA",
  "reservation_no": "",
  "check_in": "2026-11-21",
  "nights": 1,
  "year_inferred": false,
  "tent": "ドームC",
  "adults": 2, "children": 2, "infants": 0, "guests_total": null,
  "child_labels": ["子ども(小学生)"],
  "meal_plans": [ { "name": "", "count": 4 } ],
  "allergy_notes": ["娘(7歳)が卵アレルギーです。加熱したものも食べられません。"],
  "activities": [ { "name": "サウナ貸切", "date": "2026-11-21", "time": "16:00", "people": 2 } ],
  "shuttle": { "station": "", "arrival_time": "14:32", "people": 4 },
  "changes": []
}

1つ目の理由は、notice_type でルーターを分けられることです。 Make のルーターは各ルートを順に処理し、ほかのどの条件にも合わないものをフォールバックのルートで処理するとされています。確定・変更・取消の3つのルートを置き、other と unknown はフォールバックで要確認に落とします。

2つ目は、allergy_notes が配列で残ることです。 予約の台帳には原文の文を1つのセルに並べ、料理長の表にはそのセルをそのまま写します。 変更で追加の連絡が来たら、前の文を消さずに後ろに足します。

連泊の予約は、泊まる夜ごとに分けて台帳に書きます。 nights が2以上なら、Make が夜ごとの行を作り、2泊目の夕食のプランが1泊目と違う予約は、meal_plans に夜の日付を付けて返させます。 1つの行のままだと、2泊目の食材が3日前の集計から漏れます。

3つ目は、2つ目のシナリオで Group by を使えることです。 予約の台帳の行を Search Rows で取り、Array aggregator の Group by にプランのコードを入れれば、プランごとの人数の合計の表ができます。

スキーマには、範囲の制約を書きません。 Claude の構造化出力は、数値の minimum・maximum や文字列の長さの制約に対応しておらず、使うと400のエラーになるとされています。人数が0より大きいか、宿泊日が今日より後かは、ルーターの条件で確かめます。 オブジェクトには additionalProperties: false を付けます。

調理の人数表の1行は次の形にします。

到着日プラン大人子ども幼児アレルギーの記載のある予約料理長の確認
11/21バーベキューA12412件(原文は台帳のリンク先)未
Step8

システムへ連携する

つなぎ先方式内容
GmailWatch emails、Update email labels通知を拾い、処理済みのラベルを付ける
Claude APIAnthropic Claude アプリの Make an API Call予約の中身を抜き出す
予約の台帳Google Sheets の Search Rows、Add a Row、Update a Row行を足す・直す・取消の印を付ける
プランと枠と便の表Google Sheets の Search Rows表示名をコードにし、定員を引く
3つの手配の表Google Sheets の Add a Row(2つ目のシナリオ)毎日の表を書く
要確認の一覧Google Sheets の Add a Row確かめるものを並べる

仕入先への人数の連絡は、自動で送りません。 調理の人数表を事務の担当が確かめてから、いつもの方法で伝えます。取消の通知で行を消さず、印を付けるだけにするのも、後で経緯を追えるようにするためです。

15時より後に届いた変更は、翌朝の要確認に載せます。 3日後の到着の予約に変更が入ったら、2つ目のシナリオの後でも1つ目のシナリオが台帳を直し、「表を作った後の変更」の印を付けます。 事務の担当が朝に見て、調理・アクティビティ・送迎の担当に口頭で伝えます。

Step9

人が確認する

  1. 要確認の一覧を先に見る … 表示名が表に無いプラン、unknown の通知、同じ予約番号の行が2つ以上あるもの
  2. 新しい行を通知の原文と見比べる … 宿泊日・人数・プランを見ます
  3. 料理長がアレルギーの記載を読む … 原文の文を読み、対応できるか、宿泊者に確かめるかを決めます
  4. 枠と便の超過を決める … 定員を超えた枠は時刻をずらす案を、送迎は増便か別の便を決め、宿泊者に連絡します
  5. 3つの表を各担当に渡す … 食材の人数は事務の担当が仕入先に伝えます

3番目を省かないでください。 アレルギーの対応は、宿泊者の健康に関わります。抜き出しが正しくても、対応できるかは料理長にしか決められません。 料理長の確認の列が「未」のままの予約がある日は、表を渡さない決まりにします。

4番目の送迎の連絡は、到着の前日までに済ませます。 便が変わったことを宿泊者が知らないと、駅で待つことになります。連絡したかどうかを送迎の便の表の列に残し、運転手はその列を見て乗る人を確かめます。

目標は、300件をならして1件4分です。 取消は印を確かめるだけ、確定は行と原文を見比べる数分、アレルギーや枠の超過のあるものはさらにかかります。

Step10

例外に対処する

起きること対応
プランの表示名が表に無い要確認へ。予約サイトでプランの名前を変えたのに表を直していないことが多い
アクティビティの時刻が書かれていない枠を決めずに印を付け、事務の担当が宿泊者に確かめる
アクティビティの枠の定員を超える印を付け、事務の担当がずらす案を決める
送迎の到着の時刻が書かれていない便を決めずに印を付ける
送迎の便の定員を超える印を付け、増便か別の便を決める
表を作った後に変更が来た「表を作った後の変更」の印。翌朝に担当へ伝える
変更・取消の通知に元の行が無い要確認へ。確定の通知の取りこぼしを疑う
AI の応答が形に合わない1回だけ送り直し、だめなら要確認へ
人数が合計しか書かれていない大人・子どもの内訳を事務の担当が確かめる
連泊で夜ごとのプランが分からない1泊目のプランを仮に置かず、印を付けて確かめる
ペットの同伴・記念日の演出などの要望抜き出さずに台帳の「要望の原文」の欄へ。担当が読んで振り分ける

下から3行目は、調理の人数表で効いてきます。 子ども向けのプランがあるので、内訳が分からないと食材の量が決まりません。

最後の行は、抜き出す項目を増やしすぎないための行です。 要望はさまざまで、項目を足すほど指示が長くなり、肝心のアレルギーと人数の抜き出しがぶれます。 要望は原文のまま1つの欄に置き、人が読みます。

Step11

記録を残す

  • 拾った通知のメールの ID、受信日時、送信元、件名
  • Claude が返した JSON の全文
  • 予約の台帳の行に加えた変更と、その前の値
  • 毎日の3つの表と、作った時刻
  • 料理長のアレルギーの確認の結果と、宿泊者に確かめた内容
  • 要確認に回した理由

3つ目で「直す前の値」を残すのは、人数が何度も変わる予約があるためです。 食材を注文した時点の人数と、当日の人数を比べられます。

5つ目は、事務所の台帳とは別の場所に保存してもよい情報です。 アレルギーの対応の記録は、料理長と事務所が見られれば足ります。

04実装レベルの3段階

最小構成:通知の本文を Claude の画面に貼り、予約の中身を抜き出させて予約表に貼る / 1通ごとの抜き出し
半自動化:上記+Watch emails で通知を拾って台帳に書き、毎日15時に3つの表を作る / 抜き出し・台帳・表の作成
本格構成:上記+予約の仕組みの予約データを直接読み、仕入先への人数の連絡の下書きと宿泊者への確かめの下書きまで作る / 通知から手配の連絡の下書きまで

本記事の想定は半自動化です。 予約1件を4つの表に写す作業が消え、見比べる作業だけが残ります。15時の集計は AI を使わないので、表の数字は台帳の数字と必ず一致します。 表がおかしいときは、台帳の行を直せば翌日の表も直ります。 本格構成では、通知のメールを読む作業そのものが要らなくなることがあります。 予約の仕組みが予約データを外に出せるなら、メールより確かです。ただし、予約サイトの側の備考の欄は、予約データにも自由記述で入るので、アレルギーの記載を原文で取る作業は残ります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
300 件
1件あたり現在時間
12 分
1件あたり導入後時間
4 分
現在  300件 × 12分 ÷ 60 = 60 時間/月
導入後 300件 × 4分 ÷ 60 = 20 時間/月
月間削減時間
40h
削減率
67%
年間削減時間
480h
年間金額換算(時間単価2,500円)
120万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. テントやドームを十数棟持ち、夕食の食材を予約の人数に合わせて仕入れ、アクティビティと最寄り駅からの送迎を予約の時に受け付けているグランピング施設。予約サイトが2つ以上あり、通知メールの書き方がサイトごとに違う場合。事務の担当が通知を読んで、調理・アクティビティ・送迎の担当にそれぞれ表を作って渡している場合。
向いていない
  1. 食事の提供が無く、送迎もアクティビティも予約時に受けていない施設。予約の仕組みから調理・送迎の担当がそのまま一覧を出せていて、通知を読む作業が無い場合。なお、食物アレルギーへの対応の可否と献立の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月の通知メールから30通を選ぶ(サイトごとに10通。変更・取消と、アレルギーの記載のあるものを入れる)
  2. その30通について、当時の予約表と3つの表の内容を並べておく
  3. 電話番号とメールアドレスを消し、Claude の画面に本文を1通ずつ貼り、第7章の指示文を渡す
  4. 出てきた人数・プラン・アレルギーの記載・アクティビティ・送迎を、2番の内容と見比べる

アレルギーの記載は、一字ずつ見比べます。 要約されていないか、程度の記載が落ちていないかを見ます。料理長にも同じ30通の結果を見てもらい、この形で届けば対応を決められるかを聞きます。

出てきた内容判断
人数・プラン・アレルギーの原文がそろって出たWatch emails と台帳のつなぎに進む
アレルギーが品目だけに要約された指示を強める。構成は有効
プランの名前が表と合わない表示名の表の作り込みが先

3行目は、AIの問題ではありません。 予約サイトのプランの名前を全部書き出し、表に足してから試し直します。

08実装時につまずきやすいポイント

問題対策
アレルギーの記載が要約される指示で禁じ、料理長が原文を読む
空と「なし」が区別されない「なし」の文を写させる
予約の後の追加の連絡が台帳に届かない件名に予約番号を入れて転送する決まりにする
プランの表示名が表と合わないサイトのプランの名前を全部表に書き出す
時刻の無いアクティビティが枠に入ったつもりになるtime が null なら枠を決めずに印
表を作った後の変更が担当に届かない「表を作った後の変更」の印を翌朝に見る
番号だけで行を引いて別の予約を直すサイトと予約番号の2つで引く
Watch emails で拾い漏れる既読ではなくラベルで処理済みを持つ
スケジュールの時刻がずれるタイムゾーンの設定を確かめる
仕入先への連絡が自動で飛ぶ下書きまでにする。送るのは人
連泊の2泊目の食材が集計から漏れる夜ごとの行に分けて台帳に書く
子どもの区分がサイトごとに違う区分の名前を写させ、数え方は表で決める

上の2行が、この構成の失敗のほとんどです。 どちらも、アレルギーの記載を「きれいに」しようとすると起きます。料理長が読むのは原文、と決めておけば防げます。

3行目は、始めてから気づくことが多いものです。 アレルギーの追加の連絡は、予約の通知とは別のメールで、予約の直前に来ることがあります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 宿泊者の名前、宿泊日、人数、子どもを含む宿泊者のアレルギーや体質の記載、駅の到着の時刻。健康に関わる情報と、子どもについての情報が含まれます。

  1. 外部に渡す範囲を、抜き出しに要る本文までに限る … 電話番号とメールアドレスは前処理で伏せます
  2. 使う製品の利用の条件を確かめる … 子どもの情報が入りうるので、18歳未満が関わる利用に制限のある製品を選ばないことを、契約の前に確かめます
  3. アレルギーの対応を AI に決めさせない … 対応できるか、宿泊者に何を確かめるかは料理長が決めます
  4. アレルギーの記載を見られる人を限る … 予約の台帳の共有を、事務所と料理長に限ります。アクティビティと送迎の表には載せません
  5. 料理長の判断を記録に残す … どの記載を読み、どう対応すると決め、宿泊者に何を確かめたかを残します。後で問い合わせがあったときに、何を根拠に決めたかを示せます
  6. 保存の期間を決める … 宿泊が終わった予約のアレルギーの記載は、決めた期間を過ぎたら消します

誤りが起きた場合のリスクで重いのは、アレルギーの記載が料理長に届かないことです。 抜き出しの誤りより、要約や分類で程度の記載が落ちることのほうが起きやすく、気づきにくいので、原文を写す設計にしています。

10まず何から始めるか

1週目:プランと枠と便の表を作る

予約サイトごとのプランとオプションの表示名を全部書き出し、施設のコードを付けます。アクティビティの枠と送迎の便の時刻と定員も書きます。

2週目:30通で試す

先月の通知30通で、人数・プラン・アレルギーの原文がそろうかを見ます。アレルギーが要約されていないかを最優先で見ます。

3週目:料理長と表の形を決める

調理の人数表に、アレルギーの記載のある予約をどう並べるかを料理長と決めます。料理長の確認の列を足し、「未」のままの日は表を渡さない決まりにします。

4週目:1つ目のシナリオをつなぐ

Watch emails から Claude を呼び、予約の台帳に書くところまで作ります。この時点では、今の予約表と並べて、手で写した結果と見比べます。

2か月目: 2つ目のシナリオで3つの表を作り、紙の表と並べて1か月使います。調理・アクティビティ・送迎の担当に、紙の表と違う数字が出た日を書き留めてもらい、原因が台帳か表の作り方かを週に一度見ます。3か月目以降: 紙の表をやめ、1件12分が何分になったかを実測します。表を作った後の変更が、翌朝の要確認だけで担当に届くようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-29/最終更新:2026-10-29
確認した内容情報源確認日
Watch emails のフィルターが簡単なフィルターと Gmail の検索の書き方の2つで、1回の上限が500件以下であること。既読にする設定があること。Update email labels のモジュールMake: Gmail modules2026-10-29
Anthropic Claude アプリのモジュール(Simple Text Prompt、Create a Prompt、Make an API Call など)。構造化出力の記載が無いことMake: Anthropic Claude2026-10-29
ルーターがルートを順に処理し、フォールバックのルートがほかの条件に合わないものを処理することMake: Router2026-10-29
集約のモジュールが複数のバンドルを1つにまとめること。Group by で値ごとに1つのバンドルを出すこと。Array aggregator が代表の例であることMake: Aggregator2026-10-29
シナリオのスケジュールの設定(一定の間隔、1回、毎日、平日、毎週、毎月、日付の指定、手動)。最短の間隔がプランによることMake: Schedule a scenario2026-10-29
Google Sheets の Search Rows・Add a Row・Update a Row のモジュールと、Search Rows の LimitMake: Google Sheets modules2026-10-29
構造化出力が output_config.format で使えることClaude: Structured outputs2026-10-29

アレルギーへの対応の可否は、料理長が宿泊者に確かめて決めてください。 本記事は公開仕様で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-2276)についてのご相談はこちらから。

AI活用について相談する
目次