グランピング施設が予約の確定の通知を Make で受け、食材・アクティビティ・送迎の手配の一覧を作って、前日の準備の漏れを防ぐ
予約サイトから届く確定・変更・取消の通知を Make で拾い、Claude に人数・食事・アレルギー・アクティビティ・送迎の希望を抜き出させます。毎日決まった時刻に、調理・アクティビティ・送迎の担当ごとの手配の一覧ができます。
- 生成AI
- ChatGPT/Claude
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- その他/宿泊
- 対象部門
- 総務
- 対象業務
- データ入力・転記/集計・分析
- 主な課題
- 人手が足りない/入力作業が多い/期限・対応漏れが起きる
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 予約の通知メールが届く。事務の担当が開いて読む
- 予約表のスプレッドシートに、予約番号・宿泊日・テント・人数・プラン・オプションを写す
- 備考の欄を読み、アレルギー・記念日・到着の時刻・ペットの記載を拾う
- 毎日夕方に、3日後の到着の予約を予約表から拾い、調理の表に人数とプランとアレルギーを書く
- 同じく、アクティビティの表に日時と人数を、送迎の表に駅の到着の時刻と人数を書く
- 変更・取消の通知が来たら、予約表と3つの表をそれぞれ直す
- 紙の表を調理場・アクティビティの小屋・送迎の運転手に渡す
- 自動予約の通知メールが届くと、Make の Watch emails が拾う
- 自動Make が本文を Claude API に渡し、通知の種類・予約番号・宿泊日・人数・プラン・アレルギーの記載・アクティビティ・送迎の希望を原文つきで抜き出させる
- 自動ルーターで確定・変更・取消に分け、予約の台帳に行を足す・直す・取消の印を付ける
- 自動毎日15時に別のシナリオが動き、3日後の到着の予約を台帳から集める
- 自動Make が集計し、調理の人数表・アクティビティの枠の表・送迎の便の表を作る
- 自動枠の定員を超える、送迎の便が決まらない、アレルギーの記載がある、などのものに印を付ける
- 人事務の担当が、印の付いたものと台帳の新しい行を通知の原文と見比べる
- 人料理長がアレルギーの記載を読み、対応できるかを決めて、必要なら宿泊者に確かめる
- 人事務の担当が3つの表を確かめて各担当に渡し、食材の人数を仕入先に伝える
各工程の詳しい説明を読む
- 予約の通知メールが届く。事務の担当が開いて読む
- 予約表のスプレッドシートに、予約番号・宿泊日・テント・人数・プラン・オプションを写す
- 備考の欄を読み、アレルギー・記念日・到着の時刻・ペットの記載を拾う
- 毎日夕方に、3日後の到着の予約を予約表から拾い、調理の表に人数とプランとアレルギーを書く
- 同じく、アクティビティの表に日時と人数を、送迎の表に駅の到着の時刻と人数を書く
- 変更・取消の通知が来たら、予約表と3つの表をそれぞれ直す
- 紙の表を調理場・アクティビティの小屋・送迎の運転手に渡す
(a)変更が3つの表に届かない。 人数が1人増えた変更の通知を予約表には直しても、すでに作った調理の表を直し忘れることがあります。食材は3日前に注文しているので、気づくのは当日の夕方です。
(b)アレルギーの記載が散らばる。 自社の予約の仕組みでは専用の欄、予約サイトでは「ご要望」の欄、さらに予約の後に送られてくる問い合わせのメール。3つの場所を毎回見ないと、1つを落とします。
(c)オプションの書き方がばらばら。 「サウナ貸切(16:00〜)」「サウナ 1枠」「サウナ希望」と、同じ申込が別の書き方で届きます。時刻が書かれていない申込を、枠に入れたつもりで入れていないことがあります。
(d)夕方の表づくりが重い。 4番と5番は、チェックインの受付の時間に重なります。到着の受付をしながら3つの表を作るので、写し間違いが出ます。
- 【自動】 予約の通知メールが届くと、Make の Watch emails が拾う
- 【自動】 Make が本文を Claude API に渡し、通知の種類・予約番号・宿泊日・人数・プラン・アレルギーの記載・アクティビティ・送迎の希望を原文つきで抜き出させる
- 【自動】 ルーターで確定・変更・取消に分け、予約の台帳に行を足す・直す・取消の印を付ける
- 【自動】 毎日15時に別のシナリオが動き、3日後の到着の予約を台帳から集める
- 【自動】 Make が集計し、調理の人数表・アクティビティの枠の表・送迎の便の表を作る
- 【自動】 枠の定員を超える、送迎の便が決まらない、アレルギーの記載がある、などのものに印を付ける
- 【人】 事務の担当が、印の付いたものと台帳の新しい行を通知の原文と見比べる
- 【人】 料理長がアレルギーの記載を読み、対応できるかを決めて、必要なら宿泊者に確かめる
- 【人】 事務の担当が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 |
| 生成AI | Claude 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どうやって実装するのか
処理の起点を決める
シナリオは2つに分けます。 1つ目は通知ごとに動くシナリオ、2つ目は毎日決まった時刻に3つの表を作るシナリオです。
1つ目は Gmail の Watch emails で通知を拾います。 フィルターには、条件を選ぶ簡単なフィルターと、Gmail の検索の書き方で指定する方法があり、1回に扱う上限は500件以下とされています。Gmail の検索の書き方で、2つの予約サイトと自社の予約の仕組みの送信元だけに絞ります。 15分ごとに動かします。
拾ったメールにはラベルを付けます。 「処理済み」のラベルは、予約の台帳への書き込みまで通ったときだけ Update email labels で付けます。既読にする設定は使いません。 事務の担当が先にメールを開いても拾えるようにするためです。
2つ目は、Make のスケジュールで毎日15時に動かします。 スケジュールには、一定の間隔、1回だけ、毎日、平日、毎週、毎月、日付の指定、手動の実行の設定があるとされています。「毎日」を選びます。 15時にしているのは、仕入先に人数を伝える締めが夕方だからです。時刻の設定がどのタイムゾーンで動くかは、組織とシナリオの設定で確かめます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 通知のメール | 件名、送信元、受信日時、本文 | Gmail の Watch emails |
| 予約の台帳 | 予約番号、サイト、宿泊日、テント、人数、プラン、アレルギーの原文、アクティビティ、送迎、状態 | Google スプレッドシート |
| プランと枠と便の表 | サイトごとの表示名、施設のコード、枠と便の時刻と定員 | Google スプレッドシート |
| 予約の後の問い合わせ | アレルギーや到着の時刻の追加の連絡(メールで届いたもの) | Gmail(事務の担当が転送) |
質を決めるのは、プランと枠と便の表の表示名の列です。 予約サイトのプランの名前は、季節の宣伝の言葉が付いて長くなり、同じプランでもサイトによって名前が違います。 表示名を並べておけば、抜き出した名前から施設のコードを引けます。
予約の後の問い合わせは、事務の担当が転送します。 宿泊者が後から「子どもがそばアレルギーでした」と連絡してくることがあります。このメールを、件名に予約番号を入れて決まったアドレスに転送すると、1つ目のシナリオが変更として拾います。
データの取得方法を決める
通知のメールは Watch emails が本文ごと渡します。本文が HTML のときは、Make の側で改行を残す形で文字にしてから渡します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 通知の本文と件名 | Watch emails | Claude に渡す |
| プランとオプションのコード | Search Rows(サイトと表示名で検索) | 抜き出した表示名をコードにする |
| 同じ予約の行 | Search Rows(サイトと予約番号で検索) | 変更・取消で直す行を探す |
| 3日後の到着の行 | Search Rows(宿泊日と状態で検索。2つ目のシナリオ) | 3つの表を作る |
変更と取消は、サイトの名前と予約番号の2つで引きます。 番号の形はサイトごとに違い、番号だけで引くと、別のサイトの同じ番号に当たることがあります。 Search Rows の Limit は1にせず、2つ以上返ったら要確認に回します。
送迎の便は、Make が決めます。 抜き出した駅の到着の時刻より後で、最も早い便です。便の時刻と定員は便の表から引き、到着の時刻が書かれていなければ便を決めずに印を付けます。
AIへ渡す前に整形する
- 送信元の確認 … 予約サイトと自社の予約の仕組みの送信元か確かめます
- 本文を文字にする … HTML を改行つきの文字にし、広告や署名を外します
- 転送のメールの確認 … 転送されたメールは、件名の予約番号を Make が読み、本文と一緒に渡します
- 連絡先を伏せる … 電話番号とメールアドレスは「[連絡先]」に置き換えてから渡します
- 同じメールの二度目を外す … メールの ID が処理済みの一覧にあれば処理しません
4番目は、抜き出しに連絡先が要らないためです。 宿泊者への確かめは、予約サイトのメッセージか、台帳から事務の担当が電話で行います。
アレルギーの記載は、前処理で手を加えません。 改行や句読点も含めて、本文のまま渡します。
AIに処理させる
させるのは、通知のメールから予約の中身を抜き出すことだけです。
| 抜き出すもの | 抜き出し方 | 書かれていないとき |
|---|---|---|
| 通知の種類 | 確定・変更・取消・その他 | 判断がつかなければ unknown |
| サイトと予約番号 | 本文の表記のまま | null |
| 宿泊日とテント | 日付は年月日、テントは表示名のまま | null |
| 人数 | 大人・子ども・幼児を分けて、本文の数字のまま | null |
| 食事のプラン | プランの表示名のまま、人数ごと | 空の配列 |
| アレルギーの記載 | 本文の文のまま、全部 | 空の配列 |
| アクティビティ | 表示名、希望の日時、人数 | 空の配列 |
| 送迎の希望 | 駅の名前、到着の予定の時刻、人数 | null |
| 変更の前後 | 変更の通知なら、何が何から何に変わったか | 空の配列 |
アレルギーの記載は、要約も分類もさせません。 「卵」「乳」のような品目に分けさせると、「加熱したものも不可」「同じ鉄板で焼いたものも避けたい」といった程度の記載が落ちます。 料理長が対応を決めるのに要るのは、品目の名前より、その程度の記載です。
子ども・幼児の区分は、サイトの書き方のまま写させます。 予約サイトによって「子ども(小学生)」「子ども(3歳〜12歳)」「添い寝」と区分が違います。区分の名前を child_labels に写させ、どの区分を子ども向けのプランに数えるかは、プランと枠と便の表に施設が書いておきます。 AI に年齢から区分を決めさせると、サイトごとの決まりとずれます。
| させないこと | 理由 |
|---|---|
| アレルギーの記載を要約・分類する | 程度の記載が落ちる。料理長が原文を読む |
| アレルギーに対応できるかを判断する | 料理長が決める |
| 枠や便を決める | 枠と便の表から Make が決める |
| 定員を超えるかを判断する | Make が定員と比べる |
| プランの表示名をコードに直す | 表で照合する。似た名前に寄せない |
指示内容を固定する
あなたはグランピング施設の事務所で、予約の通知メールを読む担当です。
渡されたメールの本文だけを読み、予約の中身を抜き出してください。
書かれていないことを推測で埋めないでください。
【通知の種類】
- 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つを分けて見せます。
出力形式を固定する
次の形の 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 | バーベキューA | 12 | 4 | 1 | 2件(原文は台帳のリンク先) | 未 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Gmail | Watch emails、Update email labels | 通知を拾い、処理済みのラベルを付ける |
| Claude API | Anthropic 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つ目のシナリオが台帳を直し、「表を作った後の変更」の印を付けます。 事務の担当が朝に見て、調理・アクティビティ・送迎の担当に口頭で伝えます。
人が確認する
- 要確認の一覧を先に見る … 表示名が表に無いプラン、
unknownの通知、同じ予約番号の行が2つ以上あるもの - 新しい行を通知の原文と見比べる … 宿泊日・人数・プランを見ます
- 料理長がアレルギーの記載を読む … 原文の文を読み、対応できるか、宿泊者に確かめるかを決めます
- 枠と便の超過を決める … 定員を超えた枠は時刻をずらす案を、送迎は増便か別の便を決め、宿泊者に連絡します
- 3つの表を各担当に渡す … 食材の人数は事務の担当が仕入先に伝えます
3番目を省かないでください。 アレルギーの対応は、宿泊者の健康に関わります。抜き出しが正しくても、対応できるかは料理長にしか決められません。 料理長の確認の列が「未」のままの予約がある日は、表を渡さない決まりにします。
4番目の送迎の連絡は、到着の前日までに済ませます。 便が変わったことを宿泊者が知らないと、駅で待つことになります。連絡したかどうかを送迎の便の表の列に残し、運転手はその列を見て乗る人を確かめます。
目標は、300件をならして1件4分です。 取消は印を確かめるだけ、確定は行と原文を見比べる数分、アレルギーや枠の超過のあるものはさらにかかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| プランの表示名が表に無い | 要確認へ。予約サイトでプランの名前を変えたのに表を直していないことが多い |
| アクティビティの時刻が書かれていない | 枠を決めずに印を付け、事務の担当が宿泊者に確かめる |
| アクティビティの枠の定員を超える | 印を付け、事務の担当がずらす案を決める |
| 送迎の到着の時刻が書かれていない | 便を決めずに印を付ける |
| 送迎の便の定員を超える | 印を付け、増便か別の便を決める |
| 表を作った後に変更が来た | 「表を作った後の変更」の印。翌朝に担当へ伝える |
| 変更・取消の通知に元の行が無い | 要確認へ。確定の通知の取りこぼしを疑う |
| AI の応答が形に合わない | 1回だけ送り直し、だめなら要確認へ |
| 人数が合計しか書かれていない | 大人・子どもの内訳を事務の担当が確かめる |
| 連泊で夜ごとのプランが分からない | 1泊目のプランを仮に置かず、印を付けて確かめる |
| ペットの同伴・記念日の演出などの要望 | 抜き出さずに台帳の「要望の原文」の欄へ。担当が読んで振り分ける |
下から3行目は、調理の人数表で効いてきます。 子ども向けのプランがあるので、内訳が分からないと食材の量が決まりません。
最後の行は、抜き出す項目を増やしすぎないための行です。 要望はさまざまで、項目を足すほど指示が長くなり、肝心のアレルギーと人数の抜き出しがぶれます。 要望は原文のまま1つの欄に置き、人が読みます。
記録を残す
- 拾った通知のメールの ID、受信日時、送信元、件名
- Claude が返した JSON の全文
- 予約の台帳の行に加えた変更と、その前の値
- 毎日の3つの表と、作った時刻
- 料理長のアレルギーの確認の結果と、宿泊者に確かめた内容
- 要確認に回した理由
3つ目で「直す前の値」を残すのは、人数が何度も変わる予約があるためです。 食材を注文した時点の人数と、当日の人数を比べられます。
5つ目は、事務所の台帳とは別の場所に保存してもよい情報です。 アレルギーの対応の記録は、料理長と事務所が見られれば足ります。
04実装レベルの3段階
本記事の想定は半自動化です。 予約1件を4つの表に写す作業が消え、見比べる作業だけが残ります。15時の集計は AI を使わないので、表の数字は台帳の数字と必ず一致します。 表がおかしいときは、台帳の行を直せば翌日の表も直ります。 本格構成では、通知のメールを読む作業そのものが要らなくなることがあります。 予約の仕組みが予約データを外に出せるなら、メールより確かです。ただし、予約サイトの側の備考の欄は、予約データにも自由記述で入るので、アレルギーの記載を原文で取る作業は残ります。
05工数削減シミュレーション
導入後 300件 × 4分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- テントやドームを十数棟持ち、夕食の食材を予約の人数に合わせて仕入れ、アクティビティと最寄り駅からの送迎を予約の時に受け付けているグランピング施設。予約サイトが2つ以上あり、通知メールの書き方がサイトごとに違う場合。事務の担当が通知を読んで、調理・アクティビティ・送迎の担当にそれぞれ表を作って渡している場合。
- 食事の提供が無く、送迎もアクティビティも予約時に受けていない施設。予約の仕組みから調理・送迎の担当がそのまま一覧を出せていて、通知を読む作業が無い場合。なお、食物アレルギーへの対応の可否と献立の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の通知メールから30通を選ぶ(サイトごとに10通。変更・取消と、アレルギーの記載のあるものを入れる)
- その30通について、当時の予約表と3つの表の内容を並べておく
- 電話番号とメールアドレスを消し、Claude の画面に本文を1通ずつ貼り、第7章の指示文を渡す
- 出てきた人数・プラン・アレルギーの記載・アクティビティ・送迎を、2番の内容と見比べる
アレルギーの記載は、一字ずつ見比べます。 要約されていないか、程度の記載が落ちていないかを見ます。料理長にも同じ30通の結果を見てもらい、この形で届けば対応を決められるかを聞きます。
| 出てきた内容 | 判断 |
|---|---|
| 人数・プラン・アレルギーの原文がそろって出た | Watch emails と台帳のつなぎに進む |
| アレルギーが品目だけに要約された | 指示を強める。構成は有効 |
| プランの名前が表と合わない | 表示名の表の作り込みが先 |
3行目は、AIの問題ではありません。 予約サイトのプランの名前を全部書き出し、表に足してから試し直します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| アレルギーの記載が要約される | 指示で禁じ、料理長が原文を読む |
| 空と「なし」が区別されない | 「なし」の文を写させる |
| 予約の後の追加の連絡が台帳に届かない | 件名に予約番号を入れて転送する決まりにする |
| プランの表示名が表と合わない | サイトのプランの名前を全部表に書き出す |
| 時刻の無いアクティビティが枠に入ったつもりになる | time が null なら枠を決めずに印 |
| 表を作った後の変更が担当に届かない | 「表を作った後の変更」の印を翌朝に見る |
| 番号だけで行を引いて別の予約を直す | サイトと予約番号の2つで引く |
| Watch emails で拾い漏れる | 既読ではなくラベルで処理済みを持つ |
| スケジュールの時刻がずれる | タイムゾーンの設定を確かめる |
| 仕入先への連絡が自動で飛ぶ | 下書きまでにする。送るのは人 |
| 連泊の2泊目の食材が集計から漏れる | 夜ごとの行に分けて台帳に書く |
| 子どもの区分がサイトごとに違う | 区分の名前を写させ、数え方は表で決める |
上の2行が、この構成の失敗のほとんどです。 どちらも、アレルギーの記載を「きれいに」しようとすると起きます。料理長が読むのは原文、と決めておけば防げます。
3行目は、始めてから気づくことが多いものです。 アレルギーの追加の連絡は、予約の通知とは別のメールで、予約の直前に来ることがあります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 宿泊者の名前、宿泊日、人数、子どもを含む宿泊者のアレルギーや体質の記載、駅の到着の時刻。健康に関わる情報と、子どもについての情報が含まれます。
- 外部に渡す範囲を、抜き出しに要る本文までに限る … 電話番号とメールアドレスは前処理で伏せます
- 使う製品の利用の条件を確かめる … 子どもの情報が入りうるので、18歳未満が関わる利用に制限のある製品を選ばないことを、契約の前に確かめます
- アレルギーの対応を AI に決めさせない … 対応できるか、宿泊者に何を確かめるかは料理長が決めます
- アレルギーの記載を見られる人を限る … 予約の台帳の共有を、事務所と料理長に限ります。アクティビティと送迎の表には載せません
- 料理長の判断を記録に残す … どの記載を読み、どう対応すると決め、宿泊者に何を確かめたかを残します。後で問い合わせがあったときに、何を根拠に決めたかを示せます
- 保存の期間を決める … 宿泊が終わった予約のアレルギーの記載は、決めた期間を過ぎたら消します
誤りが起きた場合のリスクで重いのは、アレルギーの記載が料理長に届かないことです。 抜き出しの誤りより、要約や分類で程度の記載が落ちることのほうが起きやすく、気づきにくいので、原文を写す設計にしています。
10まず何から始めるか
1週目:プランと枠と便の表を作る
予約サイトごとのプランとオプションの表示名を全部書き出し、施設のコードを付けます。アクティビティの枠と送迎の便の時刻と定員も書きます。
2週目:30通で試す
先月の通知30通で、人数・プラン・アレルギーの原文がそろうかを見ます。アレルギーが要約されていないかを最優先で見ます。
3週目:料理長と表の形を決める
調理の人数表に、アレルギーの記載のある予約をどう並べるかを料理長と決めます。料理長の確認の列を足し、「未」のままの日は表を渡さない決まりにします。
4週目:1つ目のシナリオをつなぐ
Watch emails から Claude を呼び、予約の台帳に書くところまで作ります。この時点では、今の予約表と並べて、手で写した結果と見比べます。
2か月目: 2つ目のシナリオで3つの表を作り、紙の表と並べて1か月使います。調理・アクティビティ・送迎の担当に、紙の表と違う数字が出た日を書き留めてもらい、原因が台帳か表の作り方かを週に一度見ます。3か月目以降: 紙の表をやめ、1件12分が何分になったかを実測します。表を作った後の変更が、翌朝の要確認だけで担当に届くようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Watch emails のフィルターが簡単なフィルターと Gmail の検索の書き方の2つで、1回の上限が500件以下であること。既読にする設定があること。Update email labels のモジュール | Make: Gmail modules | 2026-10-29 |
| Anthropic Claude アプリのモジュール(Simple Text Prompt、Create a Prompt、Make an API Call など)。構造化出力の記載が無いこと | Make: Anthropic Claude | 2026-10-29 |
| ルーターがルートを順に処理し、フォールバックのルートがほかの条件に合わないものを処理すること | Make: Router | 2026-10-29 |
| 集約のモジュールが複数のバンドルを1つにまとめること。Group by で値ごとに1つのバンドルを出すこと。Array aggregator が代表の例であること | Make: Aggregator | 2026-10-29 |
| シナリオのスケジュールの設定(一定の間隔、1回、毎日、平日、毎週、毎月、日付の指定、手動)。最短の間隔がプランによること | Make: Schedule a scenario | 2026-10-29 |
| Google Sheets の Search Rows・Add a Row・Update a Row のモジュールと、Search Rows の Limit | Make: Google Sheets modules | 2026-10-29 |
構造化出力が output_config.format で使えること | Claude: Structured outputs | 2026-10-29 |
アレルギーへの対応の可否は、料理長が宿泊者に確かめて決めてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2276)についてのご相談はこちらから。
