飲食店の無断キャンセルと直前の取消を Make で拾い、事情に合わせて再来店の案内とキャンセル料の案内の文面を作り分ける
飲食店の予約台帳から、無断キャンセルと前日・当日の取消を毎朝拾います。店長が選んだ方針と予約客の事情に合わせて、再来店の案内・キャンセル料の案内・事情の確認の文面を作り分けます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- その他/宿泊/飲食
- 対象部門
- カスタマーサポート/営業
- 対象業務
- 問い合わせ対応/書類作成
- 主な課題
- 人手が足りない/属人化している/期限・対応漏れが起きる
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/工数削減/機会損失防止
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 店長が朝、予約台帳を開き、前日の無断キャンセルと取消の行を探す
- 予約客の名前と電話番号で顧客の一覧を引き、来店の回数と前回の来店日を見る
- 予約の備考と、スタッフが残した電話のメモ(「前日夜に電話あり、子どもが発熱」など)を読む
- キャンセル規定の表を開き、コース・人数・取消の時期から規定上の額を計算する
- 請求するか、免除するか、まず事情を聞くかを決める
- 予約客へのメールを一から書く。請求する場合は額と支払の方法を書く
- 送ったことを予約台帳の備考に書く。書き忘れると、本部の予約担当が同じ予約客に二度目の連絡をする
- 自動毎朝9時に Make のシナリオが動き、予約台帳から前日の無断キャンセルと取消の行を拾う
- 自動対応表を引き、同じ予約をすでに拾っていれば飛ばす
- 自動顧客の一覧から来店の回数と前回の来店日を引き、キャンセル規定の表から規定上の額を計算する
- 自動拾った予約を、規定上の額・来店の履歴・備考と電話のメモと一緒に対応表に1行ずつ書く
- 人店長が開店前に対応表を開き、予約ごとに方針を「規定どおり案内」「免除して再来店の案内」「事情の確認」から選ぶ
- 自動15分ごとに別のシナリオが動き、方針が選ばれて下書きの無い行を拾う
- 自動OpenAI API が、方針・事情・来店の履歴・規定上の額から文面を書く
- 自動ルーターで方針ごとに分け、メールの連絡先がある予約は Gmail の下書きに置き、無い予約は対応表に文面を残す
- 人店長が下書きを開き、額と事情の書き方を確かめて送る。電話しか連絡先が無い予約は、対応表の文面を見て電話する
- 人送ったら対応表の状態を「連絡済み」にする
各工程の詳しい説明を読む
- 店長が朝、予約台帳を開き、前日の無断キャンセルと取消の行を探す
- 予約客の名前と電話番号で顧客の一覧を引き、来店の回数と前回の来店日を見る
- 予約の備考と、スタッフが残した電話のメモ(「前日夜に電話あり、子どもが発熱」など)を読む
- キャンセル規定の表を開き、コース・人数・取消の時期から規定上の額を計算する
- 請求するか、免除するか、まず事情を聞くかを決める
- 予約客へのメールを一から書く。請求する場合は額と支払の方法を書く
- 送ったことを予約台帳の備考に書く。書き忘れると、本部の予約担当が同じ予約客に二度目の連絡をする
(a)連絡が後回しになる。 朝は仕込みと発注、夜は営業で、メールを書く時間はランチとディナーの間の数十分しかありません。 宴会の予約が多い週は、無断キャンセルの連絡が数日たまります。たまった分を週末にまとめて書くと、最初の1件は1週間前の出来事になっています。
(b)文面と扱いが店長ごとに違う。 ある店長は常連でも規定どおりの額を書き、別の店長は初めての予約客でも免除します。同じ系列の店で扱いが違うと、予約客どうしの口コミで食い違いが表に出ます。 文面も、丁寧すぎて請求の文だと分からないものから、事務的すぎて角が立つものまでばらつきます。
(c)事情のメモを見落とす。 電話のメモは予約の備考に1行で入っていることが多く、「前日夜に電話あり」を見落とすと、連絡をくれた予約客に「無断キャンセル」として請求の文面が届きます。 予約客にとっては、電話したのに伝わっていない店に見えます。
- 【自動】 毎朝9時に Make のシナリオが動き、予約台帳から前日の無断キャンセルと取消の行を拾う
- 【自動】 対応表を引き、同じ予約をすでに拾っていれば飛ばす
- 【自動】 顧客の一覧から来店の回数と前回の来店日を引き、キャンセル規定の表から規定上の額を計算する
- 【自動】 拾った予約を、規定上の額・来店の履歴・備考と電話のメモと一緒に対応表に1行ずつ書く
- 【人】 店長が開店前に対応表を開き、予約ごとに方針を「規定どおり案内」「免除して再来店の案内」「事情の確認」から選ぶ
- 【自動】 15分ごとに別のシナリオが動き、方針が選ばれて下書きの無い行を拾う
- 【自動】 OpenAI API が、方針・事情・来店の履歴・規定上の額から文面を書く
- 【自動】 ルーターで方針ごとに分け、メールの連絡先がある予約は Gmail の下書きに置き、無い予約は対応表に文面を残す
- 【人】 店長が下書きを開き、額と事情の書き方を確かめて送る。電話しか連絡先が無い予約は、対応表の文面を見て電話する
- 【人】 送ったら対応表の状態を「連絡済み」にする
5番目が、この設計の分かれ目です。 店長は文面を書かずに、方針だけを選びます。 1件あたり数十秒で、開店前の短い時間でも、前日の分を全部選び終えられます。方針の選び方は店長に残し、書く作業だけを外に出します。
9番目を自動の送信にしないのも、意図してのことです。 金額の入った1通は、送った時点で店の請求になります。
02今回想定するシステム構成
予約システム │ 毎晩の閉店後、その日の予約と来店の状況を書き出す ▼ Google スプレッドシート(予約台帳) ▼【トリガー1】毎朝9時(シナリオ1) Make ├──▶ Google Sheets:Search Rows(前日の無断キャンセル・取消) ├──▶ Google Sheets:Search Rows(顧客の一覧/キャンセル規定) ├──▶ 規定上の額の計算(シナリオの関数) └──▶ Google Sheets:Add a Row(対応表) ▼【人】店長が方針を選ぶ ▼【トリガー2】15分ごと(シナリオ2) Make ├──▶ Google Sheets:Search Rows(方針あり・下書きなし) ├──▶ HTTP:Make a request(OpenAI API・Responses API) ├──▶ Router:方針と連絡先で分岐 │ ├ 規定どおり案内 → Gmail:Create a draft email │ ├ 免除して再来店の案内 → Gmail:Create a draft email │ ├ 事情の確認 → Gmail:Create a draft email │ └ フォールバック(メールの連絡先なし)→ 対応表に文面だけ書く └──▶ Google Sheets:Update a Row(対応表の状態) ▼【人】店長が確かめて送る
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make(シナリオ。Google Sheets、Gmail、HTTP、ルーター) | Zapier、n8n、Power Automate |
| 生成AI | OpenAI API(Responses API、Structured Outputs) | Claude API、Gemini API |
| 保管 | Google スプレッドシート(予約台帳・顧客の一覧・キャンセル規定・対応表) | Airtable |
| メール | Gmail(店の代表アドレス) | Microsoft Outlook |
新しく足すのは、2本のシナリオと対応表のシートだけです。 予約システム、予約台帳の書き出し、顧客の一覧、キャンセル規定の表は、いま使っているものをそのまま読みます。この構成が書き込むのは、対応表と Gmail の下書きだけです。 予約システムにも予約台帳にも書き込みません。
シナリオを2本に分けるのは、店長の方針の選択を間に挟むためです。 公式のページでは、シナリオは決まった間隔のほか、毎日・平日・毎週・毎月・指定した日に動かせ、既定では15分ごとに動くとされています。最短の間隔はプランによって違うので、利用中のプランで確かめます。シナリオ1は毎朝の1回、シナリオ2は既定の15分ごとにします。
OpenAI API は HTTP の Make a request で呼びます。 公式のページでは、Make a request は任意のサーバーへ HTTP のリクエストを送るモジュールで、URL は https:// で始まる必要があり、本文に JSON を書け、認証の種類に API キーを選べます。API キーは本文やヘッダーに直接書かず、専用の Credentials の欄に置くよう勧められています。
下書きは Gmail の Create a draft email で置きます。 公式のページでは、Gmail のモジュールに Create a draft email と Send an email などがあり、下書きはフォルダを選ばなければ下書きのフォルダに入るとされています。この構成では Send an email を使いません。
03どうやって実装するのか
処理の起点を決める
シナリオ1は、毎朝9時に1回動かします。 予約台帳の書き出しは前日の閉店後に終わっているので、朝には前日分がそろっています。閉店直後に動かさないのは、来店の状況の付け直しが閉店後に入ることがあるからです。 遅れて来店した予約客を「無断キャンセル」から「来店」に直す作業が、片付けの後に行われます。
シナリオ2は、15分ごとに動かします。 店長が方針を選んだ行を拾って下書きにします。店長が開店前に選び終えれば、遅くとも15分後には下書きがそろいます。 シナリオ2は対応表だけを読むので、方針が選ばれていない時間帯は何もせずに終わります。
店長が方針を選ばないまま2日たった行は、シナリオ1が翌朝に印を付けます。 対応表の「経過日数」の列を毎朝更新し、2日を超えたものは本部の予約担当にもメールで知らせます。 第3章の(a)のように連絡が積み上がるのを、ここで止めます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 予約台帳 | 予約番号、店、予約日時、人数、予約の種類(コース名/席のみ)、経路、来店の状況、予約客の名前・電話番号・メールアドレス、備考 | 予約台帳のシート |
| 電話のメモ | 前日・当日にかかってきた電話の内容(スタッフが備考に書いたもの) | 予約台帳の備考の列 |
| 顧客の一覧 | 電話番号、名前、来店の回数、前回の来店日、過去の無断キャンセルの回数 | 顧客の一覧のシート |
| キャンセル規定 | 店、予約の種類、取消の時期(前日/当日/無断)、率または1名あたりの額、予約の時に示した文言 | キャンセル規定のシート |
| 店長の方針 | 規定どおり案内/免除して再来店の案内/事情の確認、店長のひとこと | 対応表のシート |
| 店の情報 | 店名、署名、支払の方法の案内文、次回の予約の受付の方法 | 店の情報のシート |
質を決めるのは、電話のメモと店長のひとことです。 「前日夜に電話あり、子どもが発熱」と書かれていれば、方針が「規定どおり案内」でも、文面の最初に「お子さまのご体調はいかがでしょうか」が入るかどうかで受け取られ方が変わります。 店長のひとこと(「いつもありがとうございます、とだけ添えて」)は、方針を選ぶときに対応表の欄に書けるようにします。
キャンセル規定の表には、予約の時に予約客へ示した文言も持たせます。 予約サイトの画面や予約の確認メールで示した規定の文を、そのまま列に入れておきます。キャンセル料の案内の文面には、この文言をそのまま引用させます。 AIに規定を言い換えさせないためです。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| 前日の無断キャンセル・取消 | 予約台帳 | Search Rows(予約日が前日、かつ来店の状況が無断キャンセル・当日取消・前日取消のいずれか) |
| 取り込み済みか | 対応表 | Search Rows(予約番号で探す) |
| 来店の履歴 | 顧客の一覧 | Search Rows(電話番号で探す) |
| 規定 | キャンセル規定 | Search Rows(店・予約の種類・取消の時期で探す) |
| 方針が選ばれた行 | 対応表 | Search Rows(方針が空でなく、下書きの状態が「未作成」) |
顧客の一覧は、電話番号で引きます。 名前で引くと、漢字とカナ、旧姓、家族の名前での予約で当たりません。電話番号でも当たらない予約客は「初めての予約客」として扱い、来店の回数を0にします。 来店の回数が分からないまま常連として扱うより、初めてとして店長に見せたほうが誤りが小さく済みます。
規定上の額は、シナリオの中で計算します。 コースの予約なら「コースの単価×人数×率」、席のみの予約なら「1名あたりの額×人数」です。計算に使った単価・人数・率は、額と一緒に対応表に並べます。 店長は額だけでなく、どの数字から出したかを見て方針を選べます。
人数の変更があった予約は、変更後の人数で計算し、「人数変更あり」の印を付けます。 どの人数を基準にするかは店の決まりで、印の付いた行は店長が額を確かめてから方針を選びます。
AIへ渡す前に整形する
- 重複の確認 … 予約番号で対応表を引き、記録があれば飛ばします
- 来店の状況の確認 … 無断キャンセル・当日取消・前日取消のどれかを確かめます。それ以外の値は飛ばします
- 電話のメモの切り出し … 備考の列から、スタッフが書いた電話の内容を取り出し、予約時の要望(アレルギー、記念日)と分けます
- 規定上の額の計算 … 上の計算式で出し、計算に使った数字を並べます
- 連絡先の確認 … メールアドレスがあるかを見ます。無ければ「電話のみ」の印を付けます
- AIに渡す範囲を絞る … 文面に使わない電話番号・予約経路の管理番号は外します。名前と事情のメモ、来店の回数、額だけを渡します
3番目は、文面の取り違えを防ぐための準備です。 備考の欄には「誕生日のケーキあり」と「前日夜に電話あり」が同じ欄に混ざって入ります。混ぜたまま渡すと、AIが記念日に触れた請求の文面を書きます。 予約時の要望は事情のメモから外して渡します。
6番目で電話番号を外すのは、文面に要らないからです。 来店の履歴を引くのには使いますが、引いた後の情報だけを渡せば、AIの側に電話番号が残りません。
AIに処理させる
させるのは1つだけです。 店長が選んだ方針に沿って、予約客への文面(件名と本文)を書きます。方針を選ぶこと、額を決めること、規定を解釈することはさせません。
| 方針 | 文面に入れること | 入れないこと |
|---|---|---|
| 規定どおり案内 | 予約の日時と人数、予約の時に示した規定の文言(そのまま)、規定上の額、支払の方法の案内、問い合わせの先 | 責める言い方、規定に無い手数料、支払の期限の新しい設定 |
| 免除して再来店の案内 | 予約の日時、来られなかったことへの気づかい、今回は請求しないこと、次回の予約の受付の方法 | 割引や特典の約束、規定の額 |
| 事情の確認 | 予約の日時、来店が無かったことの確認、事情を尋ねる一文、返信の方法 | 額、請求をにおわせる言い方 |
事情のメモがあるときは、方針にかかわらず最初にそれに触れさせます。 「お電話をいただいていたにもかかわらず」「お子さまのご体調は」のように、予約客が店に伝えたことが、店の中で伝わっていることを示します。 第3章の(c)のすれ違いを、文面の側でも防ぎます。
来店の回数は、言い回しの丁寧さだけに使わせます。 来店が10回を超える予約客には「いつもご来店いただき」と添えますが、回数を理由に額を変えたり、免除をほのめかしたりはさせません。 額と免除を決めるのは店長の方針です。
| させないこと | 理由 |
|---|---|
| 方針を選ぶ | 請求するかは店の判断。常連・事情・店の方針で変わる |
| 額を計算し直す | 額はワークフローが規定から出したものをそのまま使う |
| 規定を言い換える・解釈する | 予約の時に示した文言から離れると、示していない規定になる |
| 割引・特典を約束する | 適用の条件は店が決める |
| 支払の期限を決める | 店の決まりにない期限を書くと、店の約束になる |
| 事情を推し量る | 書かれていない病気や事故に触れない |
最後の行は、起きやすい失敗です。 事情のメモが無い無断キャンセルに、AIは「急なご事情があったのではと存じます」と書きがちです。一般的な気づかいとしては自然でも、予約客に何かを決めつけた文に読まれることがあります。 メモの無いときは、事情に触れずに確認だけを書かせます。
指示内容を固定する
あなたは飲食店の予約担当として、予約の日に来店されなかったお客さまへの
メールを書きます。店長が選んだ方針に沿って、件名と本文を書いてください。
方針・金額・規定の文言は、下に渡したものをそのまま使ってください。
【方針ごとに書くこと】
- policy が charge のとき:
予約の日時と人数、予約の時にお示ししたキャンセル規定(下の文言を
「」でそのまま引用)、規定上の金額(下の値をそのまま)、
支払の方法の案内(下の文をそのまま)、問い合わせの先。
- policy が waive のとき:
予約の日時、来店されなかったことへの気づかい、今回はキャンセル料を
いただかないこと、次回のご予約の方法。金額は書かない。
- policy が confirm のとき:
予約の日時、ご来店が確認できなかったこと、ご事情を伺いたいこと、
返信の方法。金額と規定は書かない。
【厳守事項】
- 金額は amount の値をそのまま書いてください。計算し直さないでください。
- 規定の文言は policy_text の文をそのまま引用してください。
要約・言い換えをしないでください。
- 割引・特典・次回の優遇を書かないでください。
- 支払の期限を新しく書かないでください。payment_note にある場合だけ写す。
- event_note(事情のメモ)がある場合は、本文の最初の段落でそれに触れて
ください。event_note が空なら、ご事情を推し量る言葉を書かないでください。
- visit_count は言い回しの丁寧さにだけ使ってください。金額や免除の理由に
しないでください。
- 「無断」という言葉を本文で使わないでください。
- 責める言い方、催促の言い方をしないでください。
- manager_note(店長のひとこと)があれば、その趣旨を本文に入れてください。
- 書けない、または情報が足りない場合は、needs_attention を true にして、
理由を attention_reason に書いてください。
【予約】{reservation}
【事情のメモ】{event_note}
【来店の回数】{visit_count}
【方針】{policy}
【規定上の金額と計算の根拠】{amount} / {amount_basis}
【予約の時にお示しした規定の文言】{policy_text}
【支払の方法の案内】{payment_note}
【店長のひとこと】{manager_note}
【店名と署名】{signature}
「無断」という言葉を使わせないのは、店の側から見た言葉だからです。 予約客が電話をしたつもりで伝わっていなかった場合、「無断キャンセル」と書かれた1通は、それだけで店への不信になります。 店の対応表の中では無断キャンセルと呼んでも、文面には出しません。
金額と規定の文言を「そのまま」と2か所に書いているのは、AIが整えたがるからです。 「料金の100%」を「全額」と書き換え、規定の文を短くまとめます。言い換えた1語が、予約の時に示した規定と食い違う原因になります。
出力形式を固定する
次の形の JSON を返させます。
{
"reservation_id": "",
"policy": "charge | waive | confirm",
"subject": "",
"body": "",
"quoted_policy_text": "",
"amount_in_body": "",
"mentions_event_note": true,
"needs_attention": false,
"attention_reason": ""
}
構造化出力にする1つ目の理由は、ルーターの条件にそのまま使えることです。 policy と needs_attention の値で分岐させるので、決まった値の外の文字が返ると、下書きがフォールバックに落ちます。 OpenAI API の Structured Outputs は、Responses API の text.format に type: "json_schema" と strict: true を付けてスキーマを渡す仕組みです。
2つ目は、文面の中身をワークフローが確かめられることです。 quoted_policy_text に引用した規定の文、amount_in_body に本文に書いた金額を別の欄で返させ、ワークフローがキャンセル規定の表の文言と、計算した額とに一致するかを比べます。 一致しなければ下書きを作らず、対応表に「要確認」と書きます。policy が waive や confirm なのに amount_in_body が空でなければ、それも止めます。
3つ目は、応答が途中で切れたときに気づけることです。 公式のページでは、拒否のときは refusal が返り、出力が上限で止まったときは status と incomplete_details で分かるとされています。どちらのときも下書きを作らず、対応表に「未作成」のまま残します。
対応表には、次の列を持たせます。
| 列 | 中身 |
|---|---|
| 予約番号・店・予約日時・人数・来店の状況 | 予約台帳から写したもの |
| 来店の回数・事情のメモ | 顧客の一覧と備考から |
| 規定上の額・計算の根拠 | シナリオ1が計算したもの |
| 方針・店長のひとこと | 店長が選ぶ欄(選択肢の入力規則を付ける) |
| 下書きの状態 | 未作成/下書きあり/電話のみ/要確認/連絡済み |
| 経過日数 | 予約日からの日数。2日を超えたら色を付ける |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 予約台帳 | Google Sheets の Search Rows | 前日の無断キャンセルと取消を拾う(読むだけ) |
| 顧客の一覧・キャンセル規定・店の情報 | Google Sheets の Search Rows | 来店の履歴、規定、署名を引く(読むだけ) |
| 対応表 | Google Sheets の Add a Row/Update a Row | 取り込みと状態の更新 |
| OpenAI API | HTTP の Make a request(API キーは Credentials に置く) | 文面の作成 |
| Gmail | Create a draft email | 予約客宛ての下書きを置く |
ルーターのルートは、次の順に並べます。 1本目は needs_attention が true のもの(対応表に「要確認」と書くだけ)、2本目から4本目は方針ごとの下書き、最後にメールの連絡先が無いもののフォールバックです。公式のページでは、ルートは同時ではなく1本ずつ順に処理され、どの条件にも当たらないデータはフォールバックのルートが受け持つとされています。要確認を先に置くのは、問題のある文面が下書きのルートに流れるのを防ぐためです。
予約システムには書き込みません。 予約客の記録に「無断キャンセル1回」を足すかどうか、予約の受付を止めるかどうかは、店の判断で、予約システムの画面で人が行います。
人が確認する
店長が、すべての下書きを送る前に確かめます。 下書きのまま送られることはありません。
- 方針を選ぶ … 対応表で、来店の回数・事情のメモ・規定上の額と計算の根拠を見て選びます。「人数変更あり」の印が付いた行は、額を確かめてから選びます
- 額と規定の文言を見る … 下書きを開き、本文の金額と引用した規定が対応表と同じかを見ます
- 事情の書き方を見る … 電話のメモに触れた一文が、予約客が言ったことと合っているかを見ます
- 送る … Gmail の画面から送り、対応表の状態を「連絡済み」にします
- 電話のみの予約 … 対応表の文面を見ながら電話をかけ、話した内容を備考に書きます
本部の予約担当が見るのは、要確認の行と、経過日数が2日を超えた行だけです。 店長が休みの日の分を引き取り、方針は店長に電話で確かめてから選びます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 来店の状況が後から「来店」に直された | シナリオ2の前に予約台帳を引き直し、来店に変わっていれば対応表を「取り消し」にする |
| 顧客の一覧に当たらない | 来店の回数を0として扱い、「初めての予約客」と対応表に書く |
| キャンセル規定の表に当たる行が無い | 額を空にし、方針の欄に「規定なし」と出して店長に選ばせない |
| 人数の変更があった | 変更後の人数で計算し、「人数変更あり」の印を付ける |
| 本文の金額・規定の文言が対応表と合わない | 下書きを作らず「要確認」にする |
| メールアドレスが無い | 文面を対応表に残し、「電話のみ」にする |
| 予約サイト経由で、店から直接連絡できない | 経路の列で見分け、予約サイトの管理画面からの連絡に回す |
| OpenAI API が応答しない | 状態を「未作成」のまま残し、次の15分で拾い直す |
| 同じ予約客が同じ週に二度無断キャンセル | 2件をまとめて店長に見せ、1通にまとめるかを店長が決める |
上の3行が大半を占めます。 どれもAIの誤りではなく、予約台帳と規定の表の整え方の問題です。 規定の無い行が多い店は、コースの追加のたびに規定の表を足す決まりを作るほうが効きます。
予約サイト経由の予約では、店から予約客へ直接連絡してよいか、どの手段で連絡するかが予約サイトとの取り決めで決まっていることがあります。 経路の列を持たせているのは、その取り決めに合わせて経路ごとに扱いを変えられるようにするためです。
記録を残す
- 対応表の行(予約番号、規定上の額、計算の根拠、方針、状態)
- AIに渡した入力と、返ってきた JSON の全文
- ワークフローが比べた結果(規定の文言と金額が一致したか)
- 下書きの本文と、店長が送る前に直した箇所
- 方針を選んだ店長の名前と日時
- 予約客からの返信と、その後の支払・取り消しの記録
5つ目を残すのは、店ごとの扱いのばらつきを見るためです。 月ごとに、店長ごと・来店の回数ごとに「規定どおり」「免除」の割合を並べると、第3章の(b)のような扱いの違いが数字で見えます。 扱いをそろえるかどうかは本部が決めます。
4つ目は、指示の見直しの材料になります。 同じ直しが続くなら(「規定の文言の前置きが長い」など)、指示の書き方か、規定の表の文言そのものを直します。
04実装レベルの3段階
最小構成では件数がさばけません。 月240件を1件ずつ貼り付けるのは続きません。書き分けられるかを確かめるための段階です。 半自動化で、1件10分が3分になり、この段階が本記事の想定です。 洗い出し、履歴の確認、額の計算、文面、記録が自動になり、店長に残るのは方針を選ぶことと、下書きを確かめて送ることです。
05工数削減シミュレーション
導入後 240件 × 3分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- コース料理や席のみの予約を受け、店舗が複数あって、無断キャンセルと前日・当日の取消が月に数十件から数百件出ている飲食店。予約の記録を毎日 Google スプレッドシートに書き出せていて、来店しなかった予約客への連絡を店長が営業の合間に1件ずつ書いているため、連絡しないまま日が過ぎたり、店長ごとに文面と請求の扱いがばらばらになったりしている場合。
- 無断キャンセルが月に数件で、店長が電話で直接話せている店。予約サイトや予約システムの側でキャンセル料の請求と連絡が自動で行われ、店から連絡する場面が無い場合。予約客の連絡先を電話番号しか持たず、メールで連絡する手段が無い場合。なお、キャンセル料を請求するかどうか、その額が妥当かどうかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の無断キャンセルと取消から20件を選ぶ(常連・初めての予約客・電話のメモがあるものを混ぜる)
- その20件について、店長が当時どの方針で、どんな文面を送ったかを書き出す
- 予約の日時・人数・事情のメモ・来店の回数・方針・規定上の額・規定の文言を、手元の ChatGPT の画面に1件ずつ貼り付ける
- 第7章の指示を貼り、件名と本文を書かせる
- 出てきた文面を、当時の文面と並べて店長に読んでもらう
20件は必ずやってください。 シナリオを組む前に、方針ごとに書き分けられるか、金額と規定を言い換えずに写せるかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の文面より角が立たず、額と規定が正しい | シナリオの組み立てに進む |
| 規定の文を短くまとめてしまう | 指示に「そのまま引用」を足せば直る。構成は有効 |
| 事情のメモが無いのに事情に触れる | メモが空のときの書き方を指示に足す |
3行目が出ることは珍しくありません。 気づかいの一文は書き慣れた形なので、指示で止めないと入ります。 店長が読んで違和感が無いかで判断してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 電話をくれた予約客に請求の文面が届く | 備考から電話のメモを切り出して渡し、最初の段落で触れさせる |
| 規定の文を言い換えて、示した規定と食い違う | 規定の文言の列を引用させ、ワークフローが一致を比べる |
| 額を計算し直して書く | 額はワークフローの値を使い、本文の金額を別の欄で返させて比べる |
| 免除の文面に「次回10%引き」が入る | 割引・特典を禁じ、下書きに「%」「割引」が含まれるものに印を付ける |
| 「無断キャンセル」と書かれる | 文面で使わない言葉として指示に書く |
| 遅れて来店した予約客に連絡してしまう | シナリオ2の前に予約台帳の来店の状況を引き直す |
| 方針が選ばれないまま日が過ぎる | 経過日数の列を毎朝更新し、2日を超えたら本部へ知らせる |
| 予約サイト経由の予約客に直接送ってしまう | 経路の列で分け、予約サイトとの取り決めに沿った経路に回す |
| 同じ予約を二度拾う | 予約番号で対応表を引き、記録があれば飛ばす |
| 規定の無いコースで額が空になる | 「規定なし」と出し、コースを足すときに規定の表も足す決まりにする |
上の3行が、この構成の失敗のほとんどです。 どれも、予約客に店の約束として届く文が、店の記録からずれることです。ずれを人の目だけに頼らず、ワークフローが比べる段を置きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 予約客の名前、電話番号、メールアドレス、予約の日時と人数、来店の履歴、そして電話のメモに書かれた家族の体調や仕事の事情です。
- AIに渡す範囲を絞る … 文面づくりに電話番号は要りません。前処理で外し、事情のメモと名前と額だけを渡します。 事情のメモに病名などが書かれていたら、店長が方針を選ぶときに「体調不良」程度に書き直す運用にします
- 下書きを自動で送らない … 送るのは店長です。金額の入った1通は、送った時点で店の請求になります
- キャンセル料の額は、店の規定と法令に沿って店が決める … 消費者契約法第9条では、解除に伴う損害賠償の額の予定や違約金の条項について、同種の契約の解除に伴い事業者に生ずべき平均的な損害の額を超える部分は無効とされています。また、その支払を請求する場合に消費者から説明を求められたときは、算定の根拠の概要を説明するよう努めなければならないとされています。規定の額が妥当かは、この構成では判断しません。 規定を作るときに専門家に確かめてください
- 予約サイトとの取り決めを守る … 予約サイト経由の予約客への連絡の方法や、キャンセル料の扱いは、各サイトとの契約や規約に従います
- 対応表の閲覧の範囲を決める … 事情のメモと来店の履歴がまとまった表です。店長と本部の予約担当に限ります
誤りが起きた場合のリスクは、事情を伝えてくれた予約客に請求の文面を送ることと、規定と違う額を書いてしまうことの2つです。 前者は電話のメモの見落としで起き、後者は言い換えと計算のやり直しで起きます。どちらもワークフローの比較と店長の確認の二段で止めます。
10まず何から始めるか
1週目:キャンセル規定の表を整える
店・予約の種類・取消の時期ごとに、率または1名あたりの額と、予約の時に示した規定の文言を1行ずつ書きます。予約サイトの画面と予約の確認メールの文を写し、示していない規定が無いかをこの時点で確かめます。
2週目:20件で試す
先月の無断キャンセルと取消から20件を選び、手元の ChatGPT の画面で方針ごとの文面を書かせます。金額と規定の文言を言い換えずに写せているかを最優先で見ます。
3週目:対応表と電話のメモの書き方を決める
対応表のシートを作り、方針の欄に選択肢の入力規則を付けます。予約台帳の備考に電話のメモを書くときは「電話:」で始めると決め、スタッフに伝えます。前処理で切り出せるようにするためです。
4週目:シナリオ1をつなぐ
Make で毎朝の洗い出しから対応表への書き込みまでを作ります。この時点では文面を作らず、店長が方針を選ぶだけの運用を1週間続けます。 方針の選び方が店長ごとにどう違うかが、この1週間で見えます。
2か月目: シナリオ2を足し、方針に沿った下書きを置きます。要確認の件数を毎週数えます。3か月目以降: 1件10分が何分になったかを実測し、無断キャンセルの翌日までに連絡できた割合が上がったことを確かめた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| シナリオを決まった間隔・1回・毎日・平日・毎週・毎月・指定した日・必要なときに動かせること。既定では15分ごとに動き、最短の間隔がプランによること | Make: Schedule a scenario | 2026-10-15 |
| Google Sheets のアプリに Search Rows・Add a Row・Update a Row などがあり、Search Rows で AND と OR の条件と返す件数の上限を指定できること | Make: Google Sheets modules | 2026-10-15 |
| ルーターのルートが同時ではなく1本ずつ順に処理され、どの条件にも当たらないデータをフォールバックのルートが処理すること | Make: Router | 2026-10-15 |
HTTP の Make a request が任意のサーバーへリクエストを送り、URL が https:// で始まる必要があること。本文に JSON を書け、認証に API キーを選べ、認証の情報を Credentials の欄に置くよう勧められていること | Make: HTTP | 2026-10-15 |
| Gmail のアプリに Create a draft email・Send an email などがあり、下書きがフォルダを選ばなければ下書きのフォルダに入ること | Make: Gmail modules | 2026-10-15 |
Responses API で text.format に type: "json_schema" と strict: true を付けてスキーマを渡すこと。拒否のときに refusal が返り、出力が上限で止まったときは status と incomplete_details で分かること | OpenAI: Structured Outputs | 2026-10-15 |
| 消費者契約の解除に伴う損害賠償の額の予定・違約金の条項のうち、平均的な損害の額を超える部分が無効とされること。請求する場合に消費者から求められたときは算定の根拠の概要を説明するよう努めなければならないこと(第9条) | e-Gov 法令API: 消費者契約法 | 2026-10-15 |
キャンセル料を請求するか、その額が妥当かは、店の規定と専門家の確認に沿って店長と本部が判断してください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1646)についてのご相談はこちらから。
