Media > AI活用ユースケース > カスタマーサポート > リラクゼーションの店が予約の前日の案内と来店後のお礼の文を、予約の台帳とセラピストのメモから Apps Script と Claude で作り、送る前に店で確かめる

リラクゼーションの店が予約の前日の案内と来店後のお礼の文を、予約の台帳とセラピストのメモから Apps Script と Claude で作り、送る前に店で確かめる

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

リラクゼーションの店で、予約の台帳から翌日の来店客への前日の案内を Apps Script で作り、来店後はセラピストの短いメモから Claude でお礼の文を下書きします。受付は確認のシートで読んで、送ってよいものに印を付けるだけになります。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Google Apps Script/Make/Zapier
対象業界
その他/小売
対象部門
カスタマーサポート
対象業務
問い合わせ対応/書類作成
主な課題
人手が足りない/書類作成に時間がかかる/期限・対応漏れが起きる
AIで行う処理
生成
主な効果
品質標準化/工数削減/機会損失防止
導入難易度
★☆☆☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
20h/月
AI導入後
5h/月
想定削減
75%
年間削減
180h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 受付が夕方、翌日の予約を台帳で確かめ、メールアドレスのある客に前日の案内を Gmail で一通ずつ書く
  2. 初回の客には、受付の時間の目安、着替え、駐車場の案内を書き足す
  3. 施術が終わると、セラピストが施術メモを台帳に書く(書き忘れることもある)
  4. 翌日、受付が前日の来店客の施術メモを見て、お礼のメールを一通ずつ書く
  5. 次回の予約やキャンペーンの案内を足すかを、受付がその客の様子を思い出して決める
  6. 連絡の方法が電話だけの客には、前日に電話をかける
導入後(After)
  1. 人受付がこれまでどおり予約を台帳に入れる。セラピストは施術の後に施術メモを書く
  2. 自動毎日17時台、Apps Script が翌日の予約を拾い、前日の案内を店の定型と記号で組み立てる。初回の客と要望のある客には、Claude に一言を作らせる
  3. 自動毎朝10時台、Apps Script が前日の来店客の施術メモを拾い、Claude にお礼の文面を記号入りで作らせる
  4. 自動客の台帳の「案内の同意」の列を見て、同意の無い客には広告の段落を作らせない。記号を値に置き換えて検査する
  5. 自動確認のシートに、前日の案内とお礼の下書きを並べる
  6. 人受付が確認のシートで読み、送ってよいものに印を付ける。施術メモが空の客は、セラピストに一言を聞いて書き足す
  7. 自動印の付いたものを、店の Gmail のアカウントから送る
  8. 人連絡の方法が電話だけの客には、確認のシートの電話の一覧を見て電話する
各工程の詳しい説明を読む
  1. 受付が夕方、翌日の予約を台帳で確かめ、メールアドレスのある客に前日の案内を Gmail で一通ずつ書く
  2. 初回の客には、受付の時間の目安、着替え、駐車場の案内を書き足す
  3. 施術が終わると、セラピストが施術メモを台帳に書く(書き忘れることもある)
  4. 翌日、受付が前日の来店客の施術メモを見て、お礼のメールを一通ずつ書く
  5. 次回の予約やキャンペーンの案内を足すかを、受付がその客の様子を思い出して決める
  6. 連絡の方法が電話だけの客には、前日に電話をかける

(a)施術の合間に書くので漏れる。 受付は予約の電話と会計の合間に案内を書きます。夕方に予約の電話が重なった日は、前日の案内が何通か送られないままになり、その客の無断のキャンセルに気づくのは当日です。

(b)お礼の書き方が人によって違う。 施術メモを丁寧に拾って書く受付もいれば、定型の一文で済ませる受付もいます。メモの「張りが強い」を「お疲れが溜まっていたようで」と書くか「肩こりがひどく」と書くかも、人によってばらばらです。

(c)広告を入れてよい客かが分からない。 店のメールでキャンペーンの案内を受け取りたいかを、Webの予約のページで聞いていますが、その答えは台帳の別の列にあり、お礼を書くときに見落とします。 案内を断った客にキャンペーンの段落を書いてしまったことがあります。

(d)施術メモが空のまま。 セラピストが次の施術に追われて書き忘れると、受付は何を書けばよいか分からず、お礼が定型だけになります。

  1. 【人】 受付がこれまでどおり予約を台帳に入れる。セラピストは施術の後に施術メモを書く
  2. 【自動】 毎日17時台、Apps Script が翌日の予約を拾い、前日の案内を店の定型と記号で組み立てる。初回の客と要望のある客には、Claude に一言を作らせる
  3. 【自動】 毎朝10時台、Apps Script が前日の来店客の施術メモを拾い、Claude にお礼の文面を記号入りで作らせる
  4. 【自動】 客の台帳の「案内の同意」の列を見て、同意の無い客には広告の段落を作らせない。記号を値に置き換えて検査する
  5. 【自動】 確認のシートに、前日の案内とお礼の下書きを並べる
  6. 【人】 受付が確認のシートで読み、送ってよいものに印を付ける。施術メモが空の客は、セラピストに一言を聞いて書き足す
  7. 【自動】 印の付いたものを、店の Gmail のアカウントから送る
  8. 【人】 連絡の方法が電話だけの客には、確認のシートの電話の一覧を見て電話する

6番目で受付が見るのは、印の付いた下書きと、施術メモが空のものです。 前日の案内は店の定型が中心で、読むのは初回の客の一言と、宛先と日時の行だけです。 1通ずつ書く時間が、読む時間に置き換わります。

4番目の同意の切り替えは、AIではなく Apps Script が行います。 AIには「広告の段落を書くか」を状況として渡すだけで、同意の無い客の分に広告が混ざっていないかは、送る前の検査で語を見て確かめます。

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

構成図
予約の台帳 + 客の台帳(案内の同意)+ 施術メモ + 店の定型(Google スプレッドシート)
   │
   ├─▶【トリガー1】毎日17時台:翌日の予約 → 前日の案内
   └─▶【トリガー2】毎朝10時台:前日の来店 → お礼
   ▼
Google Apps Script
   ├──▶ 宛先・日時・担当・コースを記号にする(氏名・電話は外す)
   ├──▶ 案内の同意を見て、広告の段落の有無を決める
   ▼
Claude API(Messages API、構造化出力)
   │   前日の案内の一言/お礼の文面を記号入りで返す
   ▼
Google Apps Script ── 記号を値に置き換え、言葉の決まりと同意を検査
   ▼
確認のシート ──【人】読んで「送ってよい」に印
   ▼
Gmail(店のアカウント)── 客へ送る
役割想定する製品代替候補
実行環境Google Apps ScriptMake、Zapier
生成AIClaude API(Messages API、構造化出力)OpenAI API、Gemini API
保管Google スプレッドシート(予約の台帳、客の台帳、店の定型、言葉の決まり、確認のシート、処理ログ)-
メールGmail(店のアカウントから送る)-

新しく足すのは、Apps Script と、店の定型・言葉の決まり・確認のシート・処理ログの4つのシートです。 予約の台帳には「施術メモ」の列がすでにあり、客の台帳に「案内の同意」と「同意の日」の列を足します。

Apps Script を実行環境にしているのは、予約の台帳がスプレッドシートにあるからです。 時間主導型のトリガーで毎日の決まった時刻の前後に動かせ、店の Gmail のアカウントから送れます。新しいサーバーも、予約サービスの乗り換えも要りません。

前日の案内の大半を店の定型にしているのは、間違えてはいけない情報だからです。 日時・店舗・担当・所要時間・キャンセルの決まりは、どの客にも同じ形で、台帳の値をそのまま差し込みます。AIが書くのは、初回の客への一言と、要望のある客への一言だけです。

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

Step1

処理の起点を決める

時間主導型のトリガーを2つ作ります。 1つは毎日17時台に翌日の予約を拾って前日の案内を作るもの、もう1つは毎朝10時台に前日の来店客のお礼を作るものです。ClockTriggerBuilder の everyDays(1) と atHour() で時刻を決めます。nearMinute() を呼ばないと分はランダムに決まり、呼んでも前後15分の幅があるとされています。

17時台にしているのは、夕方の来店のピークの前に確認を終えるためです。 公式の説明では、毎日9時のトリガーは9時から10時の間のどこかで動き、その時刻が日ごとに保たれます。17時台のどこかで下書きがそろい、受付は18時までに確認して送るという流れにします。

お礼を翌朝にしているのは、施術メモが前日の閉店までにそろうからです。 閉店の後にまとめて書くセラピストもいるので、当日の夜に作ると、遅い時間の客のメモが入っていません。

トリガーは店の Gmail のアカウントで作ります。 インストール型のトリガーは作った人のアカウントで動くので、受付の個人のアカウントで作ると、差出人が受付の名前になります。 失敗すると「Summary of failures for Apps Script」の件名のメールがそのアカウントに届くので、店長が毎朝そのアカウントの受信を見ることを手順に入れます。

トリガーの数にも上限があります。 公式の上限は1つのスクリプトにつき1人20個です。店舗ごとにトリガーを分けると数が増えるので、2つのトリガーで両店舗をまとめて処理します。

Step2

入力データを集める

データ中身取得元
予約の台帳予約番号、日時、店舗、担当のセラピスト、コース、所要時間、初回か、客の要望、施術メモ、来店の状態(来店・キャンセル・無断)スプレッドシート
客の台帳客番号、氏名、メールアドレス、連絡の方法(メール/電話)、案内の同意と同意の日スプレッドシート
店の定型店舗ごとの住所・駐車場・受付の時間の目安・キャンセルの決まり、送信者の名称、配信の停止の連絡先スプレッドシート(新しく作る)
言葉の決まり書かない言葉(治る・改善・治療・効く・症状・マッサージ など)と、言い換えの例スプレッドシート(新しく作る)

質を決めるのは、施術メモと案内の同意の2つの列です。 施術メモが「圧は中、肩甲骨まわり重点、次は足も希望」くらいに書かれていれば、お礼はその客に向けた文になります。 メモが空なら定型のお礼だけを作り、受付に知らせます。

案内の同意は「同意あり」「同意なし」「未確認」の3つで持ちます。 Webの予約のページで聞いた答えと、店頭で口頭で聞いた答えを、同意の日と一緒に入れます。「未確認」は「同意なし」と同じに扱います。

氏名・電話番号・メールアドレスはAIに渡しません。 宛名と連絡先は、送るときに Apps Script が差し込みます。

Step3

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

すべて同じスプレッドシートの中にあるので、Apps Script のスプレッドシートのサービスで読むだけです。

取るものどこから何に使うか
翌日の予約予約の台帳(日付が翌日、状態がキャンセルでない)前日の案内の対象
前日の来店予約の台帳(日付が前日、状態が来店)お礼の対象と施術メモ
客の連絡先と同意客の台帳(客番号で引く)宛先、連絡の方法、広告の段落の有無
店舗の情報店の定型住所・駐車場・キャンセルの決まり・送信者の表示

キャンセルと無断の予約は対象から外します。 前日の案内を作った後にキャンセルが入ることもあるので、送る直前にもう一度台帳の状態を見ます。 確認のシートで印を付けてから送るまでの間にキャンセルが入れば、送らずに処理ログに書きます。

同じ客の予約が同じ日に2つあれば、前日の案内は1通にまとめます。 夫婦や友人と続けて受ける予約は、別々の客番号なら別々に送ります。

言葉の決まりのシートは、検査とAIへの指示の両方から読みます。 書かない言葉を1か所で持ち、店長が1行足せば、翌日から指示にも検査にも効くようにします。指示の文に言葉を直接書き込むと、検査の側と食い違っていきます。

Step4

AIへ渡す前に整形する

  1. 対象の予約を拾う … 前日の案内は翌日の予約、お礼は前日に来店した予約です
  2. 連絡の方法で分ける … メールの客は下書きの対象、電話だけの客は電話の一覧に並べます
  3. 記号にする … 日時、店舗、担当、コース、所要時間を {{日時}} {{担当}} などの記号にします
  4. 施術メモの下ごしらえ … メモの中に、客の体の状態を表す言葉(言葉の決まりの「書かない言葉」)があれば印を付けて渡します。メモそのものは直しません
  5. 広告の段落を決める … 案内の同意が「同意あり」の客だけ ad_allowed: true にし、その月のキャンペーンの記号を添えます
  6. 送信者の表示を添える … 店の名称と、配信の停止の連絡先を記号にして最後の段落に差し込みます

4番目でメモを直さないのは、セラピストの書いたことを残すためです。 「張りが強い」はセラピストにとっては施術の記録です。直すのはメモではなく、お礼の文面に出る言葉です。

6番目は、特定電子メール法の表示義務を意識したものです。 法は、広告・宣伝のための電子メールを送るときに、送信者の氏名又は名称と、送信をしないよう求める通知を受けるための電子メールアドレスなどを表示するよう定めています。広告の段落を入れるお礼には、店の名称と配信の停止の連絡先を必ず付けます。

Step5

AIに処理させる

させるのは、2種類の文面を記号入りで組み立てることだけです。

文面渡すものAIが書くこと
前日の案内の一言初回か、客の要望、コース初回の客への歓迎の一言、要望を受け止めた一言(1〜2文)
お礼施術メモ、コース、ad_allowed、キャンペーンの記号来店のお礼、メモに沿った一言、次回の要望の受け止め、広告の段落(許されたときだけ)

お礼の「メモに沿った一言」が、この構成でAIに任せたい部分です。 「肩甲骨まわり重点、次は足も希望」から「肩まわりを中心にお手入れさせていただきました。次回は足もとのコースもご用意できます」のような一文を作ります。受付が一通ずつ考えていた部分です。

させないこと理由
体の状態や不調について書く(肩こり・腰痛・むくみが改善、など)店の施術を治療のように見せる。言葉の決まりで禁じる
施術を「マッサージ」「指圧」「治療」と呼ぶあはき法は、医師以外があん摩・マッサージ・指圧を業とするには免許が要ると定めている。この店のセラピストの施術をそう呼ばない
セルフケアや体の使い方の助言体の状態についての助言になる
ad_allowed が false の客に次回の予約やキャンペーンを書く同意の無い客への広告になりうる
日時・料金・キャンペーンの値引きの額を書く記号で差し込む

1行目がいちばん起きやすい失敗です。 メモに「張りが強い」とあると、AIは気を利かせて「お疲れが少しでも和らいでいれば」と書き、さらに「肩こりの改善に」と書き足すことがあります。前者は店として許せる範囲でも、後者は許せません。 どこまでを許すかは言葉の決まりのシートで店長が決め、検査で語を見ます。

Step6

指示内容を固定する

あなたはリラクゼーションの店の受付として、来店されたお客さまへのお礼のメールの文面を作ります。
渡された情報だけで書いてください。渡されていないことを足さないでください。

【書く順番】
1. ご来店のお礼({{来店日}} と {{店舗}} は記号のまま)
2. 施術メモに沿った一言(1〜2文。メモに無いことは書かない)
3. 次回のご要望の受け止め(メモに次回の希望があるときだけ)
4. ご案内(ad_allowed が true のときだけ。{{キャンペーン}} {{期間}} は記号のまま)
5. 結びの挨拶

【言葉の決まり】
- 体の状態や不調の言葉(肩こり、腰痛、むくみ、冷え、不調、症状 など)を書かないでください。
  メモにそうした言葉があっても、文面では「お疲れ」「お体」のように言い換えてください。
- 「治る」「改善」「効く」「効果」「治療」「施術で〜が良くなる」と書かないでください。
- 施術を「マッサージ」「指圧」と呼ばないでください。「お手入れ」「トリートメント」「コース」と書いてください。
- セルフケア、ストレッチ、体の使い方の助言を書かないでください。

【厳守事項】
- ad_allowed が false のときは、次回の予約のおすすめ、キャンペーン、割引について
  一切書かないでください。次回の希望の受け止め(3)も、予約を促す書き方にしないでください。
- 日付・金額・割引の数字は、必ず渡された記号のまま書いてください。
- お客さまの名前は書かないでください。宛名はこちらで入れます。
- 本文は300字以内にしてください。
- メモが空のときは、2と3を書かず、notes に "memo_empty" と書いてください。

【情報】
course: {course}
first_visit: {first_visit}
therapist_memo: {memo}
flagged_words_in_memo: {flagged}
ad_allowed: {ad_allowed}

「メモに体の言葉があっても言い換える」と書くのは、メモをそのまま写させないためです。 flagged_words_in_memo で前処理が見つけた語を渡し、どの語に気を付ければよいかをAIにも知らせます。 それでも書いてしまうことはあるので、検査で同じ語を見ます。

前日の案内の一言の指示は、これを短くしたものです。 初回の客には「はじめてのご来店をお待ちしております」の趣旨、要望のある客には「ご要望を担当に伝えております」の趣旨で、体の状態には触れません。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Claude API の構造化出力を使い、output_config.format に type: "json_schema" でスキーマを渡します。

{
  "booking_ref": "R-2611-0418",
  "message_type": "thanks",
  "subject": "{{来店日}}のご来店ありがとうございました",
  "body": "",
  "ad_paragraph": "",
  "used_placeholders": ["{{来店日}}", "{{店舗}}"],
  "notes": []
}

1つ目の理由は、広告の段落を本文と分けて持てることです。 ad_paragraph は ad_allowed が true のときだけ中身が入り、Apps Script は同意の無い客の分で ad_paragraph が空でなければ、送らずに赤の印を付けます。 本文の中に広告が紛れ込んでいないかは、語の検査で見ます。

2つ目は、notes で施術メモが空だったことが分かることです。 memo_empty の下書きは確認のシートの上の方に並べ、受付がセラピストに一言を聞きます。

3つ目は、message_type で前日の案内とお礼を1つの確認のシートで扱えることです。

Claude の構造化出力は、文字列の長さ(minLength・maxLength)や数値の範囲の制約に対応しておらず、使うと400のエラーになります。 オブジェクトには additionalProperties: false を付けます。300字は指示で書き、Apps Script で長さを測ります。組み立てたスキーマは最後の利用から24時間キャッシュされるので、毎日動かすこの構成では、2日目からは組み立ての待ちがほとんどありません。

検査引っかかったときの扱い
言葉の決まりの「書かない言葉」が本文にある赤。言い換えて送る
ad_allowed が false なのに、ad_paragraph が空でない、または本文に「予約」「キャンペーン」「割引」赤。送らない
置き換えた後の本文に、置き換え前の数字が残る赤
渡していない記号がある置き換えずに赤
本文が300字を超える黄
Step8

システムへ連携する

つなぎ先方式内容
Google スプレッドシートApps Script のスプレッドシートのサービス予約・客・定型・言葉の決まりを読み、確認のシートと処理ログに書く
Claude APIApps Script の UrlFetchApp で Messages API を呼ぶ一言とお礼の文面を JSON で返す
GmailGmailApp確認の印の付いたものを、店のアカウントから送る

送るときは name と replyTo のオプションを使います。 name で差出人の表示を店の名前に、replyTo で返信の先を受付のアドレスにします。客が返信で予約の変更を伝えてきたときに、受付に届くようにするためです。

1日の送信先の数に気を付けます。 公式の上限は、メールの受信者の数が個人の Google アカウントで1日100、Google Workspace で1日1,500です。2店舗で前日の案内とお礼を合わせると1日に40通前後ですが、キャンペーンの時期に別の配信を同じアカウントから送ると、個人のアカウントでは足りなくなります。 店のアカウントは Google Workspace にし、送った数を処理ログで数えます。

送るのは確認のシートで印の付いたものだけです。 前日の案内は、18時半を過ぎても印が付かなければ、店の定型だけの文面(AIの一言なし)を店長に知らせて判断を仰ぎます。 印の付かないまま自動で送ることはしません。

Step9

人が確認する

受付が確認のシートで次の順に見ます。

  1. 赤の印のものを直す … 体の言葉、同意の無い客への広告、数字の残りを直します
  2. 施術メモが空のお礼を片付ける … 担当のセラピストに一言を聞き、書き足すか、定型のお礼のまま送るかを決めます
  3. 初回の客の前日の案内を読む … 日時・店舗・駐車場の行を見ます
  4. 残りを流し読みして印を付ける … 宛先と件名と日時の行を確かめます
  5. 電話の一覧の客に電話する … 前日の確認の電話です

前日の案内とお礼で、見るところを分けます。 前日の案内で間違えて困るのは日時と店舗で、これは台帳の値の差し込みなので、台帳が正しければ正しく出ます。 お礼で間違えて困るのは言葉と広告で、こちらは検査の赤を見ます。

店長は週に1回、送ったお礼から10通ほどを読みます。 言葉の決まりで拾えない言い回し(「すっきりしていただけたら」が多すぎる、など)があれば、言葉の決まりのシートか指示に足します。

目標は、600通をならして1通0.5分です。 印の無い下書きは数秒で、時間を使うのは赤の印と、施術メモが空のお礼です。

Step10

例外に対処する

起きること対応
施術メモが空定型のお礼の下書きにし、memo_empty で上に並べる
前日の案内を作った後にキャンセルが入った送る直前に台帳の状態を見て、送らない
当日の無断のキャンセルお礼を作らない。状態を「無断」にする
案内の同意が「未確認」同意なしとして扱う。次の来店のときに受付が聞く
客から配信の停止の連絡が来た客の台帳の同意を「同意なし」にし、日を入れる。以後の広告の段落は作らない
メールアドレスが届かない(不達)連絡の方法を電話に変え、受付が次の来店で確かめる
Claude API がエラーを返す前日の案内は定型だけで下書きを作る。お礼は翌朝もう一度試す
1日の送信先が上限に近づく続きを翌日に回し、店長に知らせる
施術メモに客の持病や通院のことが書かれているAIに渡さず、定型のお礼にする。メモの書き方を店長がセラピストと見直す

5行目を確実に回すことが、この構成の約束です。 特定電子メール法は、送らないよう求める通知を受けたときは、その意思に反して送ってはならないと定めています。停止の連絡を受けた受付が、その場で客の台帳を直すことを手順にします。

Step11

記録を残す

  • 実行の日時、対象の日付、作った下書きの数、送った数
  • Claude API に渡した情報(氏名・連絡先なし)と、返ってきた JSON
  • 検査の結果(赤・黄の理由)と、受付が直したかどうか
  • 送った文面の全文と、そのとき見た案内の同意の値
  • 客の案内の同意の記録 … 同意した日、どの経路で聞いたか、停止の連絡を受けた日

最後の行は、法の求めに沿うためのものです。 特定電子メール法は、あらかじめ同意の通知を受けた者は、その同意があったことを証する記録を保存しなければならないと定めています。客の台帳の「同意の日」と「経路」は消さずに残します。

04実装レベルの3段階

最小構成:手で情報を書き出し、Claude の画面でお礼を作る / お礼の下書き
半自動化:上記+Apps Script で前日の案内とお礼を毎日作り、同意と言葉の決まりを検査して、確認の後に Gmail で送る / 前日の案内・お礼・検査・送信まで
本格構成:上記+Webの予約のページから台帳への転記を自動にし、客からの返信(予約の変更)を受付の一覧に振り分ける / 予約の受付から連絡の返信まで

この記事の想定は半自動化です。 本格構成で予約の転記まで自動にできますが、Webの予約のページがどんな形で予約を渡せるかは、使っているサービスによります。 先に確かめてください。 半自動化で1通2分が0.5分になります。 書く時間が読む時間に置き換わり、同意の確認は検査に移ります。

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

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

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

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

AI活用について相談する

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

向いている
  1. ボディケア・アロマ・足もみなどのリラクゼーションの店で、店舗が1〜3つ、予約が月に数百件あり、予約を Google スプレッドシートの台帳で持っている場合。前日の確認の連絡と来店後のお礼をメールで送りたいが、受付が施術の合間に一通ずつ書いていて、送り漏れや書き方のばらつきが出ている場合。お礼に次回の予約やキャンペーンの案内を入れたいが、どの客に入れてよいかの管理ができていない場合。
向いていない
  1. 予約の受付から前日の連絡・お礼までを、使っている予約サービスの機能で済ませている店。予約が月に数十件で、受付が一通ずつ書いても負担にならない場合。客との連絡がほとんど電話で、メールアドレスを持っていない場合。なお、施術の内容や体の状態について客に助言すること、広告の表示の要否についての法的な判断は、この構成の対象外です。

07最小構成で試す方法

  1. 先月のお礼のメールから20通を選ぶ(施術メモに体の言葉が入っているもの、初回の客、同意の無い客を入れる)
  2. その20通の施術メモと、同意の有無を表に書き出す。日付と店舗は記号にする
  3. 手元の Claude の画面に、第7章の指示の例と、1件分の情報を貼る
  4. 出てきた文面を、先月実際に送ったお礼と見比べる
  5. 体の言葉を書いていないか、同意の無い客に予約のおすすめを書いていないかを見る

20通で十分です。 ここで確かめたいのは、「短い施術メモから、店らしいお礼になるか」と、「言葉の決まりと同意の切り替えが守られるか」です。

出てきた内容判断
先月のお礼と同じくらい店らしいApps Script でトリガーと確認のシートを組む段階に進む
体の言葉を言い換えずに書いた言葉の決まりに例を足すと直る。検査で拾う前提で進めてよい
同意の無い客に予約を促す一文を書いた指示の書き方を直す。検査で必ず止める

表に書き出してみると、施術メモの書き方の差が見えます。 メモが一言のセラピストと、数行書くセラピストがいます。お礼の質を上げるいちばんの近道は、AIの指示ではなく、施術メモの書き方を店でそろえることです。

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

問題対策
AIが体の不調や改善を書く言葉の決まりを指示に入れ、同じ語を検査で拾う
同意の無い客に予約のおすすめが入るad_paragraph を分け、本文の語も検査する。赤は送らない
施術を「マッサージ」と書く呼び方を指示で決め、検査の語に入れる
施術メモが空で、お礼が定型だけになるmemo_empty を上に並べ、セラピストに一言を聞く
前日の案内の後のキャンセルに送ってしまう送る直前に台帳の状態を見る
差出人が受付の個人の名前になる店のアカウントでトリガーを作る。name を店の名前にする
配信の停止の連絡が台帳に反映されない受けた受付がその場で同意を直す手順にする
文面の300字がスキーマで守れない長さの制約は400になる。Apps Script で測る
キャンペーンの配信と重なって送信の上限に当たるGoogle Workspace のアカウントにし、送った数を数える
メモに客の持病が書かれるAIに渡さない。メモの書き方をそろえる

上の3行が、この構成の失敗のほとんどです。 どれも「書いてはいけないことを書く」形で起き、指示だけで守ろうとすると必ず漏れます。 検査で語を見て、赤は送らないことで守ります。

下の方の行は、最初の1か月で一度は踏みます。 処理ログに日本語で理由を書いておけば、店長が技術の言葉を読まずに済みます。

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

この構成で扱うデータ: 客の氏名・メールアドレス・電話番号、予約の日時、施術メモ(客の体のことが書かれうる)、案内の同意の記録です。

  1. AIに渡すのは記号と短い施術メモだけにする … 氏名、連絡先は渡しません。宛名と連絡先は Apps Script が差し込みます
  2. 施術メモに客の持病や通院のことを書かない … 書かれていればAIに渡さず、店長がセラピストと書き方を見直します。メモは施術の記録で、客の健康の記録ではありません
  3. 広告の段落は同意のある客にだけ入れる … 特定電子メール法は、あらかじめ同意した者などを除いて広告・宣伝のための電子メールを送ってはならず、同意の記録を保存し、送信者の名称と停止の通知先を表示するよう定めています。どの文面が広告に当たるかの判断に迷うときは、専門家に確かめてください
  4. 施術を治療のように書かない … あはき法は、医師以外があん摩・マッサージ・指圧を業とするには免許が要ると定めています。店の施術の呼び方と書かない言葉を店長が決め、文面に守らせます
  5. 送るのは確認の印の後にする … AIの文面がそのまま客に届く経路を作りません
  6. API のキーをスクリプトに書かない … スクリプトのプロパティに置きます

誤りが起きた場合のリスクは、同意の無い客に広告を送ることと、施術を治療のように書くことの2つです。 前者は同意の列の見落としで起き、後者はAIの気の利かせすぎで起きます。どちらも、同意を機械で切り替え、語の検査で赤を止める設計で守ります。

10まず何から始めるか

1週目:同意の列と言葉の決まりを作る

客の台帳に「案内の同意」「同意の日」「経路」の列を足します。Webの予約のページで聞いてきた答えを写し、分からない客は「未確認」にします。 店長が、書かない言葉と施術の呼び方を言葉の決まりのシートに書き出します。

2週目:20通で試す

第8章のとおり、先月のお礼から20通分の情報を書き出し、Claude の画面でお礼を作ります。体の言葉と、同意の無い客への予約のおすすめが出ないかを最優先で見ます。

3週目:前日の案内をつなぐ

17時台のトリガーで、翌日の予約から前日の案内を店の定型と記号で作り、確認のシートに並べます。初回の客の一言だけ Claude を呼びます。 受付が印を付けて送る流れを1週間回します。

4週目:お礼をつなぐ

10時台のトリガーで、前日の来店客のお礼を作ります。最初の月は、受付が全文を読み、店長が週に1回まとめて読みます。

2か月目以降: 赤の印の理由と、施術メモが空の件数を毎週数えます。赤がほとんど出なくなり、施術メモが空のお礼が週に数件まで減った時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-29/最終更新:2026-10-29
確認した内容情報源確認日
インストール型のトリガーが作った人のアカウントで動くこと。時刻が少しランダムになり、9時のトリガーが9〜10時に動き日ごとに保たれること。失敗時に「Summary of failures for Apps Script」のメールが届くことGoogle for Developers: Installable triggers2026-10-29
atHour()・everyDays() の指定。nearMinute() は前後15分で、呼ばないと分がランダムになることGoogle for Developers: ClockTriggerBuilder2026-10-29
メールの受信者の数が個人のアカウントで1日100、Google Workspace で1日1,500であること。トリガーが1スクリプト1人20個までGoogle for Developers: Quotas for Google Services2026-10-29
GmailApp でメールを送れ、name(差出人の名前)・replyTo(返信先)のオプションがあること。https://mail.google.com/ の権限が要ることGoogle for Developers: Class GmailApp2026-10-29
構造化出力を output_config.format に type: "json_schema" で指定すること。文字列の長さと数値の範囲の制約が非対応なこと。additionalProperties を false にすること。組み立てた結果が最後の利用から24時間キャッシュされることClaude API Docs: Structured outputs2026-10-29
特定電子メールが営業につき広告・宣伝のために送る電子メールであること(第2条)。あらかじめ同意を通知した者などを除き送ってはならず、同意の記録を保存し、停止の通知を受けたら送ってはならないこと(第3条)。送信者の氏名又は名称と通知を受ける電子メールアドレス等を表示すること(第4条)e-Gov 法令API: 特定電子メールの送信の適正化等に関する法律2026-10-29
医師以外の者があん摩・マッサージ若しくは指圧・はり・きゅうを業とするには、それぞれの免許を受けなければならないこと(第1条)e-Gov 法令API: あん摩マツサージ指圧師、はり師、きゆう師等に関する法律2026-10-29

どの文面が広告・宣伝に当たるか、施術の呼び方や広告の表示が法に沿っているかの判断は、専門家に確かめてください。 本記事は公開されている仕様と法令の条文で確認できた範囲だけを扱っています。

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

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

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

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