酒蔵が見学・試飲の予約を Make で受け、AI で人数・言語・日時から受入の可否を判定して案内のメールを作る
酒蔵に届く蔵見学・試飲の予約の依頼を Make で受け、人数の内訳・言語・希望の日時を読み取って蔵の受入の条件に照らします。受け入れられるか、別の回を勧めるか、担当が見るかを決め、案内のメールを下書きします。
- 生成AI
- ChatGPT/Claude
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- その他/製造
- 対象部門
- 営業
- 対象業務
- 内容確認・チェック/問い合わせ対応
- 主な課題
- 人手が足りない/判断に時間がかかる/問い合わせが多い
- AIで行う処理
- 判定
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 直売所の担当が代表アドレスとフォームの通知メールを開き、依頼を読む
- 希望の日時と人数を拾い、枠の台帳でその回の残りを数える
- 造りの時期か、英語の回か、車いすやベビーカーの対応が要るかを確かめる
- 人数の内訳が書かれていなければ、運転する人と20歳未満の人数を聞き返す
- 受け入れられれば台帳に書き込み、確定の案内を書いて送る。無理なら別の回を探して勧める
- 英文の依頼は、英語の話せる社員が出勤する日にまとめて返す
- 自動依頼フォームの送信(Webhook)と、代表アドレスへの依頼のメールをきっかけに、Make のシナリオが動く
- 自動依頼の記録のシートを引き、同じ依頼をすでに扱っていれば止める
- 自動希望の日付の季節の区分(通常/造りの時期)と、その日の回ごとの案内の言語を、枠の台帳から引く
- 自動Claude API が、依頼の文から人数の内訳・言語・希望の日時・特記事項を読み取り、受入の条件に1項目ずつ照らす
- 自動ワークフローが、人数の内訳の足し算が合うかと、希望の回の残りの人数を枠の台帳で数える
- 自動条件の結果と残りの人数から、受入・別の回の提案・担当が見るのどれにするかを規則で決める
- 自動受入のときは台帳に仮の予約を書き、案内のメールを下書きする
- 人直売所の担当が下書きを確かめて送る。決まった型の依頼は自動で送る
- 自動送ったことと、台帳の仮の予約を確定に変えたことを記録する
各工程の詳しい説明を読む
- 直売所の担当が代表アドレスとフォームの通知メールを開き、依頼を読む
- 希望の日時と人数を拾い、枠の台帳でその回の残りを数える
- 造りの時期か、英語の回か、車いすやベビーカーの対応が要るかを確かめる
- 人数の内訳が書かれていなければ、運転する人と20歳未満の人数を聞き返す
- 受け入れられれば台帳に書き込み、確定の案内を書いて送る。無理なら別の回を探して勧める
- 英文の依頼は、英語の話せる社員が出勤する日にまとめて返す
(a)枠の残りを毎回数え直している。 台帳には回ごとに予約の名前と人数が並んでいるだけで、残りの人数は担当がその場で足し算しています。 2人が同時に依頼を受けると、同じ残りを2組に案内してしまうことがあります。
(b)運転する人と20歳未満の人数を聞き漏らす。 フォームには人数の欄が1つしかなく、内訳は自由記述です。聞き返しを忘れると、当日の受付で「運転する方はどなたですか」と尋ねることになり、家族連れの受付が混みます。
(c)英文の依頼の返事が遅れる。 英語の話せる社員は週3日の出勤です。月曜に届いた英文の依頼は、火曜まで返事が出ません。 旅行の日程が決まっていない海外の旅行者は、その間に別の蔵を予約します。
(d)人によって条件の確かめ方が違う。 造りの時期の決まり、車いすで回れる範囲、大型バスの駐車場の有無を、担当によって案内したりしなかったりします。 当日になって「聞いていない」と言われるのは、たいていこの型です。
- 【自動】 依頼フォームの送信(Webhook)と、代表アドレスへの依頼のメールをきっかけに、Make のシナリオが動く
- 【自動】 依頼の記録のシートを引き、同じ依頼をすでに扱っていれば止める
- 【自動】 希望の日付の季節の区分(通常/造りの時期)と、その日の回ごとの案内の言語を、枠の台帳から引く
- 【自動】 Claude API が、依頼の文から人数の内訳・言語・希望の日時・特記事項を読み取り、受入の条件に1項目ずつ照らす
- 【自動】 ワークフローが、人数の内訳の足し算が合うかと、希望の回の残りの人数を枠の台帳で数える
- 【自動】 条件の結果と残りの人数から、受入・別の回の提案・担当が見るのどれにするかを規則で決める
- 【自動】 受入のときは台帳に仮の予約を書き、案内のメールを下書きする
- 【人】 直売所の担当が下書きを確かめて送る。決まった型の依頼は自動で送る
- 【自動】 送ったことと、台帳の仮の予約を確定に変えたことを記録する
6番目が、この設計の分かれ目です。 AIが返すのは「この条件は満たす/満たさない/書かれていない」という条件ごとの結果だけで、受け入れるかどうかは規則で決めます。 季節の決まりや定員を変えたときに、直すのは規則の表だけになります。
5番目をAIに任せないのも、意図してのことです。 「大人3名と子ども2名、運転は1名」を合計5名と数えるのはAIにもできますが、枠の台帳の残りとの足し引きは、毎回同じ答えが出る計算で行います。 足し算が合わない依頼は、聞き返しの対象にします。
02今回想定するシステム構成
見学・試飲の予約の依頼(自社サイトのフォーム/代表アドレスへのメール) ▼【トリガー】Webhooks:Custom webhook / Gmail:Watch emails Make のシナリオ(Process data in order を有効) ├──▶ Google Sheets:Search Rows(依頼の記録・枠の台帳・受入の条件) ├──▶ Claude API(Make an API Call):内訳・言語・日時の読み取りと条件の照合 ├──▶ 人数の足し算と、枠の残りの計算 ├──▶ Router │ ├ 担当が見る(団体・旅行会社・決まりの例外・読み取れない) → 担当へ通知 │ ├ 別の回の提案・聞き返し → Gmail:Create a draft email │ ├ 決まった型の受入 → Google Sheets:Update a Row + Gmail:Send an email │ └ フォールバック → 担当へ └──▶ Google Sheets:Add a Row(依頼の記録)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make(シナリオ。Webhooks、Gmail、Google Sheets、ルーター) | Zapier、n8n、Power Automate |
| 生成AI | Claude API(Messages API、構造化出力) | OpenAI API |
| 保管 | Google スプレッドシート(枠の台帳・受入の条件・依頼の記録) | Airtable |
| メール | Gmail(直売所の代表アドレス) | Microsoft Outlook |
新しく足すのは、シナリオと、受入の条件と依頼の記録のシートだけです。 枠の台帳はいまのスプレッドシートに「残り」と「案内の言語」と「季節の区分」の列を足して使います。この構成が書き込むのは、枠の台帳の仮の予約、依頼の記録、Gmail の送信と下書きだけです。
入口のフォームは Webhooks で受けます。 Make の Webhooks は、外のサービスから HTTPS でデータを送ると、すぐにシナリオを動かす仕組みです。公式のページでは、即時の Webhook のシナリオは既定で並列に処理され、前の実行が終わるのを待たないとされています。シナリオの設定で Process data in order を選ぶと、前の実行が終わるまで次を始めません。 最後の数席に2組の依頼が同時に届いたとき、両方に「お受けできます」と返さないために、この設定を最初に入れます。
判定は Claude API で行います。 Make の Anthropic Claude のアプリには Create a Prompt と Make an API Call などがあり、この構成では Make an API Call で Messages API を呼び、output_config.format に JSON スキーマを書きます。 公式のページでは、構造化出力は数値の minimum・maximum のような制約に対応せず、使うと 400 のエラーになるとされています。人数の範囲や足し算の確かめは、スキーマではなくワークフローで行います。
03どうやって実装するのか
処理の起点を決める
自社サイトの依頼フォームの送信と、代表アドレスへの依頼のメールの2つを起点にします。 フォームは送信のたびに Make の Custom webhook の URL へ項目を送ります。メールは Gmail の Watch emails で、「見学の依頼」のラベルを見張ります。ラベルは Gmail のフィルタで、件名や本文に「見学」「tour」「visit」が含まれるものに付けます。
フォームの側は即時、メールの側は15分おきにします。 フォームは送った人がその場で受付の確認を待っているので、すぐに受付の控えを返したいからです。メールは15分おきでも、英語の話せる社員の出勤日を待っていたいまよりずっと早く返ります。
Webhook には待ち行列があります。 公式のページでは、即時に処理されなかったデータは Webhook の待ち行列にため、その上限は契約のクレジット1万ごとに667件、最大1万件で、あふれた分は受け取らないとされています。また、受け取れる要求は10秒あたり300件までです。シナリオを止めたまま放置すると、その間の依頼は待ち行列にたまり続けます。 止めるときは、フォームの側に受付の停止を出します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼 | フォームの項目(名前・メールアドレス・希望の日時3つ・人数・内訳の自由記述・言語・特記事項)/メールの件名と本文(返信の引用を除いたもの)・送信元・受信日時 | Webhook/Gmail |
| 枠の台帳 | 日付、回、定員、予約済みの人数、残り、案内の言語、季節の区分、休みの日 | 枠の台帳のシート |
| 受入の条件 | 条件の番号と本文、季節の区分、担当へ回すかどうか | 受入の条件のシート |
| 依頼の記録 | これまでの依頼と、同じ送信元とのやり取り | 依頼の記録のシート |
質を決めるのは、受入の条件の書き方です。 条件は、例えば次のような表で持ちます。1行に1つの条件を書き、AIにはこの番号で結果を返させます。
| 番号 | 条件 | 季節 | 満たさないとき |
|---|---|---|---|
| C1 | 1回の人数は定員15名まで。16名以上は団体として担当が受ける | 通年 | 担当へ |
| C2 | 英語の案内は英語の案内がある回だけ。ほかの回は日本語の案内と英語の説明の紙 | 通年 | 別の回の提案 |
| C3 | 造りの時期は仕込み蔵の中に入らず、外の通路から見る | 造りの時期 | 案内に書き添える |
| C4 | 造りの時期は、当日の朝に納豆を食べないでお越しいただく | 造りの時期 | 案内に書き添える |
| C5 | 小学生未満は造りの時期の仕込み蔵の通路に入らない | 造りの時期 | 案内に書き添える |
| C6 | 車いすで回れるのは直売所と一部の通路まで | 通年 | 担当へ |
| C7 | 大型バスは蔵の駐車場に入れない | 通年 | 担当へ |
| C8 | 試飲は20歳以上で、運転しない方だけ。ほかの方には仕込み水と甘酒をお出しする | 通年 | 案内に書き添える |
季節の列があるのは、造りの時期の決まりを通常の時期の依頼に書き添えないためです。 希望の日付の季節の区分は、枠の台帳から引いてAIに渡します。AIに日付から季節を決めさせません。 造りの時期の始まりと終わりは年によって数日ずれ、台帳の側で決めているからです。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| フォームの依頼 | 自社サイトのフォーム | Custom webhook(項目を JSON で受ける) |
| メールの依頼 | Gmail | Watch emails(ラベル「見学の依頼」) |
| 希望の日の枠 | 枠の台帳のシート | Search Rows(日付で引く。希望の日付が3つなら3回) |
| 受入の条件 | 受入の条件のシート | Search Rows(全件を読む) |
| これまでのやり取り | 依頼の記録のシート | Search Rows(送信元のアドレス) |
メールの依頼は、日付が「11月の週末」のような幅で届きます。 まず希望の日付の候補をAIに読み取らせ、その日付で枠の台帳を引いてから、条件の照合を呼びます。 呼び出しは2回になりますが、枠の情報なしで判定させるより確かです。
枠の台帳は、日付と回の2つで1行です。 残りの人数は台帳のシートの式で出しておき、シナリオはその値を読むだけにします。残りを Make の中で数え直さないのは、担当が台帳に手で書き込んだ電話の予約も、同じ式に入るからです。
AIへ渡す前に整形する
- 重複の確認 … フォームは送信の時刻とメールアドレス、メールはメッセージIDで依頼の記録を引き、記録があれば止めます
- 返信の引用を落とす … メールの返信では、前に送った案内の全文が下に付いてきます。引用の部分を落とし、依頼した人が書いた部分だけにします
- 言語の印 … 本文の言語をAIに見分けさせる前に、フォームの言語の欄があればそれを優先します
- 枠と季節の用意 … 希望の日付ごとに、回・残り・案内の言語・季節の区分を表にして渡します
- AIに渡す範囲を絞る … 電話番号と住所は渡しません。名前は案内のメールの宛名にだけ使い、判定の呼び出しには渡しません
2番目を落とすと、前の案内に書いた条件を、依頼した人の要望として読みます。 前の案内に「大型バスは駐車場に入れません」と書いてあると、引用を残したまま渡すと、大型バスで来るという依頼に見えてしまいます。
5番目で名前を判定に渡さないのは、名前から年齢や国籍を推し量らせないためです。 人数の内訳は、依頼の文に書かれた数字だけから読み取らせます。
AIに処理させる
させるのは、依頼の文を読み取ることと、受入の条件に1つずつ照らすことの2つです。
| 項目 | させること | 判断できないときの扱い |
|---|---|---|
| 人数の内訳 | 20歳以上・20歳未満・運転する人・小学生未満の数を、文に書かれた数字から写す | 書かれていなければ null |
| 希望の日時 | 第1〜第3の希望を日付と回に直す | 回が決められなければ time_slot を空 |
| 言語 | 依頼の言語と、案内に望む言語 | 迷えば unknown |
| 特記事項 | 車いす・ベビーカー・大型バス・アレルギー・団体・旅行会社を拾う | 文のとおりに写す |
| 条件ごとの結果 | 条件の番号ごとに met(満たす)/not_met(満たさない)/not_stated(書かれていない)/not_applicable(季節が違う) | 迷えば not_stated |
not_stated を用意するのが、この構成でいちばん大事な区別です。 運転する人の数が書かれていない依頼は、条件 C8 を満たさないのではなく、まだ聞いていないだけです。 not_met と混ぜると、聞き返せば受けられる依頼を断ることになります。
運転する人の数は、とくに推し量らせません。 「家族4人で車で行きます」とあれば、運転する人は少なくとも1人いそうに見えます。それでも数は書かれていないので null にし、案内のメールで聞き返します。 道路交通法は、酒気を帯びて運転するおそれのある者に酒類を提供することを禁じています。誰が運転するかを決めるのは依頼した人で、AIではありません。
| させないこと | 理由 |
|---|---|
| 枠の残りを数える | 台帳の式とワークフローの計算で行う |
| 受け入れるかを決める | 条件ごとの結果から規則で決める |
| 年齢を推し量る | 「子ども」「学生」の書き方から20歳未満かを決めない。書かれた数字だけを写す |
| 決まりの例外を認める | 「少しなら仕込み蔵に入れます」は蔵の判断 |
| 団体の料金を答える | 旅行会社との取り決めは担当が行う |
指示内容を固定する
あなたは酒蔵の直売所で、蔵見学・試飲の予約の依頼を受け付ける担当です。
下に渡す依頼の文を読み、受入の条件に1つずつ照らしてください。
受け入れるかどうかは決めないでください。条件ごとの結果だけを返します。
【すること】
1. 人数の内訳を、依頼の文に書かれた数字だけから写す。
adults_20plus(20歳以上)、under_20(20歳未満)、
drivers(運転する人)、preschool(小学生未満)、total(合計)。
2. 希望の日時を、第1〜第3希望の順に、日付と回に直す。
3. 依頼の言語と、案内に望む言語を書く。
4. 車いす・ベビーカー・大型バス・アレルギー・団体・旅行会社など、
特記事項を依頼の文のとおりに写す。
5. 受入の条件の番号ごとに、結果を次から選ぶ。
- met:依頼の内容がその条件を満たす
- not_met:依頼の内容がその条件に反する
- not_stated:判断に要る情報が依頼に書かれていない
- not_applicable:その条件の季節が、希望の日の季節と違う
【厳守事項】
- 数が書かれていない内訳は null にする。「家族」「車で」「子ども連れ」
などの言葉から、人数や運転する人の数を推し量らない。
- 「学生」「子ども」と書かれていても、20歳未満かどうかを決めない。
数字で書かれていなければ under_20 は null にする。
- 季節の区分は、渡した枠の表の値を使う。日付から自分で決めない。
- 情報が足りない条件を not_met にしない。not_stated にする。
- 枠の残りを数えない。受け入れるかを書かない。
- 決まりの例外を認める書き方をしない。
- 確認したいことは questions に、依頼した人への質問の形で書く。
【受入の条件】{conditions}
【希望の日の枠(回・残り・案内の言語・季節の区分)】{slots}
【これまでのやり取り】{history}
【今回の依頼】{request}
「推し量らない」を言葉の例まで挙げて書くのは、AIが親切に埋めようとするからです。 「家族4人で車で」とあれば drivers: 1 と書きたくなります。1と書かれた依頼は、聞き返しの対象から外れてしまいます。 例を挙げて禁じると、null が返る割合がはっきり上がります。
「受け入れるかを書かない」も同じ理由です。 枠の表を渡すのは条件の照合のためで、結論は規則の側にあります。
出力形式を固定する
次の形の JSON を返させます。
{
"request_id": "",
"language": { "request": "ja | en | other", "guide_wanted": "ja | en | unknown" },
"party": {
"total": 5, "adults_20plus": 3, "under_20": 2,
"drivers": null, "preschool": 0
},
"preferred": [
{ "rank": 1, "date": "2026-11-14", "time_slot": "10:00" }
],
"special": ["wheelchair"],
"checks": [
{ "condition_id": "C8", "result": "met | not_met | not_stated | not_applicable", "evidence": "" }
],
"questions": ["当日運転される方は何名でしょうか。"],
"is_group_or_agency": false
}
1つ目の理由は、checks と判定を別の層に置けることです。 checks はAIが埋め、受け入れるかはワークフローが規則で決めます。規則は次のとおりです。
| 判定 | 条件 |
|---|---|
| 担当が見る | is_group_or_agency が true、special に車いす・大型バス、「担当へ」の条件が not_met、内訳の足し算が合わない |
| 別の回の提案 | 第1希望の回の残りが合計に足りない、または C2 が not_met で、ほかの希望か同じ日の別の回に空きがある |
| 聞き返し | not_stated が1つでもある(運転する人の数など) |
| 受入 | 上のどれにも当たらず、希望の回の残りが合計以上 |
2つ目は、数の確かめをワークフローで行えることです。 total と内訳の足し算が合うか、total が定員を超えないかを、Make の式で確かめます。構造化出力は数値の範囲の制約を持てないので、範囲の確かめはここで行うしかありません。
3つ目は、選んだ値の照らし方を決めておけることです。 公式のページでは、構造化出力は文字列の enum の大文字・小文字までは保証せず、スキーマと大文字・小文字だけが違う値が返ることがあるとされています。met と Met が混ざってもルーターが落とさないように、比べるときは小文字にそろえてから比べます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 依頼フォーム | Webhooks の Custom webhook | 依頼の項目を受ける |
| Gmail | Watch emails/Send an email/Create a draft email | メールの依頼を受け、案内を送り、下書きを置く |
| 枠の台帳 | Google Sheets の Search Rows/Update a Row | 枠を引き、仮の予約と確定を書く |
| 受入の条件・依頼の記録 | Google Sheets の Search Rows/Add a Row | 条件を読み、依頼を記録する |
| Claude API | Anthropic Claude の Make an API Call | 内訳・日時・言語の読み取りと条件の照合 |
ルーターのルートは、担当が見る→別の回の提案と聞き返し→受入→フォールバックの順に並べます。 公式のページでは、ルートは同時ではなく1本ずつ順に処理され、どの条件にも当たらないデータはフォールバックのルートが処理するとされています。担当が見るルートを先頭に置くのは、旅行会社の団体の依頼が、受入のルートまで流れないようにするためです。
受入のルートでは、先に枠の台帳に仮の予約を書いてから案内を送ります。 書き込みに失敗したら案内を送りません。仮の予約は48時間で消える印を付け、依頼した人が返事をくれたら確定にします。 聞き返しのルートでも仮の予約を書き、返事を待つ間に別の依頼が入って枠が埋まらないようにします。
案内のメールは、決まった型の受入だけを自動で送ります。 決まった型とは、個人で6名まで、日本語の回か英語の回への英語の依頼、特記事項なし、not_stated なしのものです。それ以外はすべて下書きにします。
人が確認する
直売所の担当が確かめるのは、下書きに回ったものと担当へ回ったものです。
- 担当へ回ったものを先に見る … 団体・旅行会社・車いす・大型バスの依頼です。枠をまとめて押さえるか、別の日を勧めるかを決めます
- 聞き返しの下書きを確かめる …
questionsが依頼の文に合っているかを見ます。運転する人の数の聞き返しは、必ず残します - 別の回の提案を確かめる … 勧める回の残りを台帳で見ます
- 送る … Gmail の画面から送り、依頼の記録の送り方を書き換えます
自動で送った分は、毎晩、件数と宛先を流し見ます。 受入の条件を書き換えた日と、造りの時期の始まりの週は、自動送信を止めてすべてを下書きにします。 季節の決まりが案内に正しく書き添えられるかを確かめるためです。
当日の受付では、依頼の記録の内訳をもとに試飲の札を配り分けます。 二十歳未満ノ者ノ飲酒ノ禁止ニ関スル法律は、酒類を供与する営業者に年齢の確認その他の必要な措置を求めています。依頼の時点の内訳は事前の目安で、試飲の前の年齢の確認は当日の人の仕事です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 内訳の足し算が合わない | 判定せず、聞き返しの下書きに回す |
| 希望の日が休みの日 | 同じ週の別の日の空きを3つまで添えて、別の回の提案に回す |
| 英語以外の言語の依頼 | 依頼の言語と英語の両方で返す下書きにし、担当が確かめる |
| 日付が「来月の週末」のように幅を持つ | 1回目の呼び出しで候補の日付を読み取り、2回目で照合する |
| 同じ人から日程の変更が届く | 依頼の記録で前の仮の予約を引き、前の予約を外してから新しい日で判定する |
| 2つの依頼が同じ回の最後の数席に重なる | Process data in order で1件ずつ処理し、後の依頼は残りで判定する |
stop_reason が refusal か max_tokens | JSON を読まずに担当へ回す |
| Claude API が応答しない | 依頼の記録に「未処理」と書き、ラベルを残して次の実行で拾い直す |
上の3行が大半を占めます。 どれもAIの誤りではなく、フォームの欄の作り方と枠の台帳の持ち方の問題です。 内訳の足し算が合わない依頼が多いなら、フォームの人数の欄を内訳ごとに分けるほうが早く効きます。
記録を残す
- 依頼の元の項目とメールの本文(引用を落とす前のもの)
- AIに渡した受入の条件の版と、枠の表
- 返ってきた JSON の全文と
stop_reason - 規則が出した判定と、そのときの枠の残り
- 送った案内の本文と、送り方(自動送信/下書き/担当へ)
- 仮の予約を書いた日時と、確定・取り消しの日時
2つ目で条件の版を残すのは、造りの時期の決まりが年ごとに変わるからです。 「去年は仕込み蔵に入れた」と言われたとき、そのときどの条件で案内したかが分かります。
最後の行は、聞き返しの書き方を見直す材料になります。 48時間で消えた仮の予約が多いなら、質問が1回で答えにくい形になっています。
04実装レベルの3段階
最小構成では件数がさばけません。 月180件を1件ずつ貼るのは続きません。内訳を推し量らずに返せるかを確かめるための段階です。 半自動化で、1件10分が3分になり、この段階が本記事の想定です。 依頼の読み取り、枠の確認、条件の照合、案内の下書き、台帳の記入が自動になり、人に残るのは、団体と特記事項のある依頼と、聞き返しの下書きの確認です。 本格構成は、半自動化を2か月回してからにします。 返事の文を読み違えると、確定していない予約を確定にします。 返事の書き方を集めてから進めます。
05工数削減シミュレーション
導入後 180件 × 3分 ÷ 60 = 9 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 蔵見学と試飲を予約制で受けていて、Web のフォームとメールで依頼が月に百件以上届く酒蔵・ワイナリー・醸造所。見学の回ごとの定員と案内できる言語が決まっていて、枠の残りを台帳で数え、運転する人や20歳未満の人数を聞き返すやり取りに直売所の担当の時間が取られている場合。海外の個人や旅行会社から英文の依頼が混ざる場合。
- 見学の依頼が月に数十件で、電話で受けて手帳で回せている蔵。見学の回や定員が決まっておらず、その日の仕込みの都合で毎回決めている場合(先に枠を決める必要があります)。予約サイトや予約の専用システムで枠の管理と確定まで済んでいる場合。なお、団体の料金の取り決め、決まりの例外の許可、当日の試飲の提供の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いた依頼から30件を選ぶ(英文、旅行会社、造りの時期、内訳の書かれていない家族連れを混ぜる)
- 30件について、直売所の担当が当時どう返したか、何を聞き返したかを書き出す
- 受入の条件の表と第7章の指示を、手元の Claude の画面に貼る
- 30件の依頼を1件ずつ貼り、人数の内訳と条件ごとの結果を書かせる
nullにすべき内訳を数字で埋めていないか、not_statedをnot_metにしていないかを1件ずつ確かめる
30件は必ずやってください。 シナリオを組む前に、書かれていない内訳を書かれていないと返せるかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
当時の聞き返しと同じ項目が not_stated になった | シナリオの組み立てに進む |
| 「車で」から運転する人の数を埋めた | 禁止の例を指示に足す。構成は有効 |
| 条件の結果が担当の判断と大きく違う | 条件の表の書き方が先。 1行に2つの条件が入っていないかを見る |
3行目が出たら、条件の表を先に直してください。 1行に2つの話が入っていると、AIはどちらか一方だけで結果を決めます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 最後の数席に2組を受けてしまう | Process data in order を有効にし、仮の予約を書いてから送る |
| 「車で」から運転する人の数を埋める | 推し量りを例で禁じ、書かれていなければ null |
| 聞けば受けられる依頼を断る | not_stated と not_met を分ける |
| 造りの時期の決まりが通常の時期の案内に入る | 季節の区分は台帳から渡し、AIに日付から決めさせない |
Met が返ってルーターから落ちる | 小文字にそろえてから比べる |
| 数値の範囲をスキーマに書いて 400 になる | 範囲の確かめはワークフローの式で行う |
| 返信の引用を依頼として読む | 引用を落としてから渡す |
| 旅行会社の団体の依頼が自動で送られる | 担当が見るルートを先頭に置く |
| 仮の予約が残り続けて枠が埋まる | 48時間で消える印を付ける |
| シナリオを止めている間の依頼が届かない | 止めるときはフォームに受付の停止を出す |
上の2行が、この構成の失敗のほとんどです。 前者は枠の数え方、後者は内訳の読み方で、どちらも当日の受付で初めて分かります。 2組が同じ席に来るか、運転する人に試飲の札が渡りかけるかです。
4行目は造りの時期の始まりの週に効いてきます。 季節を日付から推し量らせていると、境目の数日で案内が入れ替わります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 依頼した人の名前、メールアドレス、人数の内訳(20歳未満と運転する人の数を含む)、希望の日時、車いすなどの特記事項です。
- 判定に渡すのは、依頼の文と条件と枠だけにする … 名前、電話番号、住所は判定に要りません。宛名は案内のメールを組み立てるときに、ワークフローが差し込みます
- 試飲の提供の判断を、依頼の内容だけで決めない … 依頼の時点の内訳は事前の目安です。20歳未満かどうかと運転するかどうかは、当日の受付で人が確かめます。 法律が求めているのは、酒類を供与する営業者としての確認と措置です
- 決まりの例外を、自動の案内で約束しない … 「今回は仕込み蔵に入れます」は蔵の判断です。例外を求める依頼は、担当が見るルートに回します
- 車いすなどの特記事項は、受け入れるための情報として扱う … 担当が見るのは、回れる範囲を相談するためです。特記事項を理由に断る規則を作らないでください
- 依頼の記録の保存期間を決める … 見学が終わった依頼の連絡先を、いつまで残すかを決めます。直売所の案内を送るのに使うなら、依頼のときにそのことを示して同意を取ります
誤りが起きた場合のリスクは、席を二重に約束することと、運転する人や20歳未満の人の内訳を取り違えることの2つです。 前者は処理の順と仮の予約で、後者は推し量りを禁じることと当日の確認で防ぎます。どちらもAIの賢さではなく、設計の側で守ります。
10まず何から始めるか
1週目:受入の条件を表にする
直売所の担当と英語の話せる社員で、いま案内している決まりを1行1条件で書き出します。 定員、言語、造りの時期の決まり、車いす、大型バス、試飲です。季節の列と「満たさないとき」の列も埋めます。
2週目:30件で試す
先月の依頼から30件を選び、手元の Claude の画面に条件の表と一緒に貼ります。内訳を推し量っていないか、not_stated を not_met にしていないかを最優先で見ます。
3週目:枠の台帳を整える
枠の台帳に「残り」「案内の言語」「季節の区分」の列を足し、残りを式で出します。電話で受けた予約も同じ台帳に書く決まりにします。 あわせて、依頼フォームの人数の欄を内訳ごとに分けます。
4週目:受付から下書きまでをつなぐ
Make で Webhook と Gmail の依頼を受け、条件を照らし、すべてを下書きにするところまで作ります。 Process data in order を有効にし、仮の予約の書き込みを確かめます。
2か月目: 決まった型の受入だけを自動で送ります。下書きに回った依頼と担当へ回った依頼の件数を毎週数えます。3か月目以降: 1件10分が何分になったかを実測し、造りの時期の始まりの週を自動送信を止めたまま越えられたら、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Webhooks が HTTPS で受けたデータですぐにシナリオを動かすこと。即時の Webhook のシナリオは既定で並列に処理され、Process data in order で前の実行の完了を待つこと。待ち行列の上限がクレジット1万ごとに667件・最大1万件で、あふれた分を受け取らないこと。受け取れる要求が10秒あたり300件までであること | Make: Webhooks | 2026-10-15 |
| Gmail のアプリに Watch emails・Send an email・Create a draft email があること。Watch emails がフォルダまたはラベルを見張り、送信元・件名で絞り込めること | Make: Gmail modules | 2026-10-15 |
| Google Sheets のアプリに Search Rows・Update a Row・Add a Row などがあること | Make: Google Sheets modules | 2026-10-15 |
| ルーターのルートが同時ではなく1本ずつ順に処理され、どの条件にも当たらないデータをフォールバックのルートが処理すること | Make: Router | 2026-10-15 |
| Anthropic Claude のアプリに Create a Prompt と Make an API Call などがあること | Make: Anthropic Claude | 2026-10-15 |
構造化出力がスキーマを output_config.format に渡して使うこと。数値の minimum・maximum などの制約に対応せず 400 になること。stop_reason が refusal・max_tokens のときは出力がスキーマに合わないことがあること。文字列の enum の大文字・小文字が保証されないこと | Claude: Structured outputs | 2026-10-15 |
| 酒類を販売・供与する営業者が、20歳未満の者の飲用に供することを知って酒類を販売・供与してはならず、年齢の確認その他の必要な措置を講ずるものとされること(第1条) | e-Gov 法令API: 二十歳未満ノ者ノ飲酒ノ禁止ニ関スル法律 | 2026-10-15 |
| 何人も、酒気を帯びて車両等を運転することとなるおそれがある者に対し、酒類を提供し、又は飲酒をすすめてはならないこと(第65条第3項) | e-Gov 法令API: 道路交通法 | 2026-10-15 |
試飲の提供の可否と年齢の確認は、当日の受付で人が判断してください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1726)についてのご相談はこちらから。
