時計・宝飾店が修理の受付台帳から、見積の回答待ち・工程の遅れ・完成をお客様への連絡文にし、連絡が止まっている修理を毎朝拾う
修理の受付台帳の工程の状態と日付から、お客様に連絡すべき修理を Apps Script が毎朝拾い、AI が工程に合わせた連絡文を下書きします。あわせて、状態が変わらないまま日数のたった修理を一覧にし、店のスタッフが連絡と催促の漏れを朝のうちに片づけられるようにします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- EC/その他/小売
- 対象部門
- カスタマーサポート
- 対象業務
- 台帳・マスタ管理/問い合わせ対応
- 主な課題
- 問い合わせが多い/属人化している/期限・対応漏れが起きる
- AIで行う処理
- 生成
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 送り先から見積や完成の知らせが届くと、修理担当が台帳の状態と日付を更新する
- 台帳を開いて、連絡が要る修理を探す。見積が出たもの、完成して店に届いたもの
- お客様の連絡方法を確かめ、メールの方には文面を書き、電話の方には電話をかける
- 見積の金額、修理の内容、完成の予定日を台帳から写して文面に入れる
- 連絡したことを台帳の備考に書く
- 見積の回答が来ない修理は、思い出したときに催促の連絡をする
- 「どうなっていますか」と問い合わせがあれば、台帳と送り先への問い合わせで状況を調べて答える
- 人修理担当がこれまでどおり、送り先からの知らせに合わせて台帳の状態と日付を更新する。遅れの理由が分かれば「遅れの理由」の欄に書く
- 自動毎朝7時台に Apps Script が動き、台帳の全件を読む
- 自動状態と日数から、連絡の種類(見積の回答のお願い、回答の再度のお願い、遅れのお知らせ、完成のご案内、引き取りの再度のご案内)を規則で決める
- 自動状態が変わらないまま、送り先ごとの目安の日数を過ぎた修理を「止まっている修理」として拾う
- 自動連絡が要る修理ごとに、連絡の種類と事実の表を Claude API に渡し、連絡文を JSON で受け取る
- 自動文面の記号を台帳の値に置き換え、検査する
- 自動メールの方には Gmail の下書きを、電話の方には電話で伝える要点を、店ごとの確認の一覧に書き出す
- 人各店の修理担当が朝のうちに一覧を見て、下書きを直して送る・電話をかける。送ったら一覧に印を付ける
- 人止まっている修理について、送り先に状況を問い合わせる
各工程の詳しい説明を読む
- 送り先から見積や完成の知らせが届くと、修理担当が台帳の状態と日付を更新する
- 台帳を開いて、連絡が要る修理を探す。見積が出たもの、完成して店に届いたもの
- お客様の連絡方法を確かめ、メールの方には文面を書き、電話の方には電話をかける
- 見積の金額、修理の内容、完成の予定日を台帳から写して文面に入れる
- 連絡したことを台帳の備考に書く
- 見積の回答が来ない修理は、思い出したときに催促の連絡をする
- 「どうなっていますか」と問い合わせがあれば、台帳と送り先への問い合わせで状況を調べて答える
(a)見積の回答待ちが放置される。 お客様に見積を伝えたあと、回答が来ないまま2週間、3週間と過ぎる修理があります。送り先は回答が来るまで作業を止めているので、 その間は誰も何もしていません。お客様の側では「預けたのに連絡が無い」と感じていることがあります。
(b)問い合わせが多い。 「修理はどうなっていますか」という電話が、5店で毎日数件あります。多くは、こちらから一言お知らせしていれば来なかった問い合わせです。 調べて答えるには、台帳を開き、場合によっては送り先にも問い合わせることになり、1件ごとに時間がかかります。
(c)遅れを伝えていない。 メーカーの修理が予定の日を過ぎても、店から連絡を入れるのは、お客様から問い合わせがあってからということが少なくありません。予定日を過ぎた修理を台帳から探す決まった作業が無いためです。
(d)書き方が人によって違う。 ベテランの担当は、見積の内訳と、修理しない場合の返却の扱いまで丁寧に書きます。新しい担当は金額だけを伝え、 お客様から「何にこの金額がかかるのか」と聞き返されることがあります。
- 【人】 修理担当がこれまでどおり、送り先からの知らせに合わせて台帳の状態と日付を更新する。遅れの理由が分かれば「遅れの理由」の欄に書く
- 【自動】 毎朝7時台に Apps Script が動き、台帳の全件を読む
- 【自動】 状態と日数から、連絡の種類(見積の回答のお願い、回答の再度のお願い、遅れのお知らせ、完成のご案内、引き取りの再度のご案内)を規則で決める
- 【自動】 状態が変わらないまま、送り先ごとの目安の日数を過ぎた修理を「止まっている修理」として拾う
- 【自動】 連絡が要る修理ごとに、連絡の種類と事実の表を Claude API に渡し、連絡文を JSON で受け取る
- 【自動】 文面の記号を台帳の値に置き換え、検査する
- 【自動】 メールの方には Gmail の下書きを、電話の方には電話で伝える要点を、店ごとの確認の一覧に書き出す
- 【人】 各店の修理担当が朝のうちに一覧を見て、下書きを直して送る・電話をかける。送ったら一覧に印を付ける
- 【人】 止まっている修理について、送り先に状況を問い合わせる
3番目を規則にしているのが、この設計の要です。 「見積回答待ちの状態で7日たったら回答の再度のお願い」「完成の予定日を3日過ぎても修理中なら遅れのお知らせ」のように、いつ連絡するかを表で決めます。 AI が台帳を読んで「そろそろ連絡したほうがよい」と判断する作りにはしません。
9番目は、お客様への連絡とは別の仕事です。 止まっている修理のうち、「見積待ち(送り先)」や「修理中」で止まっているものは、お客様より先に送り先に聞くべきものです。一覧では、お客様への連絡が要る修理と、送り先への問い合わせが要る修理を分けて並べます。
02今回想定するシステム構成
修理の受付台帳(Google スプレッドシート) │ 修理担当が状態・日付・遅れの理由を更新 ▼【トリガー】毎朝7時台(時間主導型のトリガー) Google Apps Script ├──▶ 状態と日数から、連絡の種類を規則で決める ├──▶ 目安の日数を過ぎた「止まっている修理」を拾う ├──▶ 事実の表を作る(金額・日付は記号にする) ▼ Claude API ── 連絡の種類と事実の表から、連絡文を JSON で返す ▼ Google Apps Script ── 記号を台帳の値に置き換え、検査する ├──▶ メールの方 … Gmail の下書き(GmailApp.createDraft) └──▶ 電話の方 … 伝える要点を確認の一覧に ▼ 店ごとの確認の一覧 ──▶【人】直して送る・電話する・送り先に問い合わせる
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Google Apps Script | Power Automate、Make |
| 生成AI | Claude API(Messages API、構造化出力) | OpenAI API、Gemini API |
| 保管 | Google スプレッドシート(修理の受付台帳、連絡の規則、目安の日数、確認の一覧、処理ログ) | - |
| メール | Gmail(下書きの作成まで) | - |
新しく足すのは、Apps Script と、連絡の規則・目安の日数・確認の一覧・処理ログのシートだけです。 台帳の列は「遅れの理由」「連絡を控える」の2つを足します。POS と顧客台帳にはつなぎません。
目安の日数は、送り先ごとに表にします。 同じ「修理中」でも、本部の工房なら1週間、外部の職人なら3週間、メーカーのオーバーホールなら6週間というように、止まっていると判断する日数がまったく違います。 一律の日数にすると、メーカーの修理ばかりが毎朝一覧に並び、本当に止まっている工房の修理が埋もれます。
03どうやって実装するのか
処理の起点を決める
毎朝7時台に、時間主導型のトリガーで動かします。 Apps Script の時間主導型のトリガーは毎分から月に1回までの間隔で動かせ、公式のページでは、9時に設定すると9時から10時のあいだのどこかで動き、その時刻が日ごとに保たれるとされています。店が開く前に確認の一覧ができているよう、早い時刻に置きます。
台帳の更新のたびに動かす作りにはしません。 修理担当は1日のうちに何度も台帳を直し、状態を間違えて付けて直すこともあります。更新のたびに連絡文を作ると、間違えた状態のまま下書きができます。 1日1回、前日の終わりの状態で判断するほうが、誤った連絡が出にくくなります。
インストール型のトリガーは、作った人のアカウントで動きます。 公式のページにそう書かれており、Gmail の下書きもそのアカウントにできます。トリガーは担当者個人ではなく、本部の修理の窓口の共用のアカウントで作ります。 お客様へのメールの差出人もこのアカウントになるので、お客様の返信は窓口に集まり、 店ごとの担当に振り分けます。トリガーが失敗すると失敗のまとめのメールが届くので、その宛先も共用のアカウントになります。
休業日にも動かします。 下書きは翌営業日に送ることになりますが、日数の数え方は暦の日で決めているので、 休業日に動かさないと休み明けに2日分の判定がまとめて出ます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 修理の受付台帳 | 受付番号、受付の店、お客様の番号、品物、症状、送り先、工程の状態、状態が変わった日、見積の金額と内訳、完成の予定日、遅れの理由、連絡方法、連絡を控える、最後に連絡した日と種類 | 台帳のシート |
| 顧客の連絡先 | お客様の番号、お名前、メールアドレス、電話番号 | 台帳の連絡先のシート |
| 連絡の規則 | 状態、経過日数、連絡の種類、何回目までか | 連絡の規則のシート |
| 目安の日数 | 送り先、状態、止まっていると判断する日数 | 目安の日数のシート |
| 店の情報 | 店名、営業時間、定休日、電話番号、引き取りに要るもの | 店の情報のシート |
質を決めるのは、「状態が変わった日」の欄です。 経過日数はこの日から数えるので、状態を更新したときに日付を直し忘れると、 連絡の時期がすべてずれます。台帳の側で、状態の欄を変えたら日付の欄が空になる形の入力の決まりにし、日付が空の修理は判定せずに一覧に出します。
「最後に連絡した日と種類」は、同じ連絡を二度出さないために持ちます。 回答の再度のお願いは7日おきに2回まで、のような決まりを、この欄で数えます。
「連絡を控える」の欄は、お客様の事情を店が知っているときのためです。 入院している、海外にいる、贈り物のため家族に知られたくない、といった事情があれば、担当がこの欄に印を付け、その修理は連絡文を作りません。
データの取得方法を決める
| 取るもの | どう取るか | 何に使うか |
|---|---|---|
| 修理の全件 | 台帳のシートを一度に読み、「引き渡し済み」と「返却」を除く | 連絡の判定と、止まっている修理の判定 |
| 連絡先 | 連絡先のシートをお客様の番号で引く | 宛先(差し込みにだけ使う) |
| 規則と目安 | 2つのシートを状態と送り先で引く | 連絡の種類と、止まっているかの判定 |
| 店の情報 | 店の情報のシートを店名で引く | 引き取りのご案内の事実 |
シートは範囲を一度に読み、スクリプトの中で判定します。 預かり中の修理は常に400件前後あり、1行ずつ読むと遅くなります。判定の結果と作った下書きの印は台帳には書き戻さず、確認の一覧と処理ログにだけ書きます。 台帳は修理担当が直す表で、スクリプトが書き込むと、担当の入力と書き込みがぶつかります。担当が一覧に「送った」の印を付けたときだけ、台帳の「最後に連絡した日と種類」を担当の操作で更新します。
AIへ渡す前に整形する
- 対象の絞り込み … 引き渡し済みと返却を除き、「連絡を控える」に印のある修理を除きます
- 日付の確認 … 「状態が変わった日」が空、または未来の日付の修理は判定せず、一覧に「日付の確認」と出します
- 経過日数の計算 … 状態が変わった日から今日までの日数と、完成の予定日からの超過日数を出します
- 連絡の種類の決定 … 連絡の規則に照らし、連絡の種類と何回目かを決めます。最後に連絡した日から規則の間隔がたっていなければ作りません
- 止まっている修理の判定 … 目安の日数を過ぎた修理を拾い、お客様への連絡が要るか、送り先への問い合わせが要るかを分けます
- 事実の表を作る … 品物、症状、修理の内容、送り先の種類(メーカー・職人・工房)、遅れの理由、店の情報を並べ、見積の金額・完成の予定日・回答の期限・引き取りの期限は【見積金額】【完成予定日】のような記号にします
- お名前を外す … お客様のお名前と連絡先は事実の表に入れません。宛名は【お客様名】の記号にします
4番目の「間隔がたっていなければ作らない」を省かないでください。 これが無いと、見積回答待ちの修理に毎朝お願いの下書きができ、担当が下書きを消す作業に追われます。
6番目の記号は、見積の連絡でとくに効きます。 見積には「オーバーホール」「部品の交換」のような内訳と金額が並びます。内訳の名前は事実の表に入れ、金額は記号にします。 AI は「【内訳1の金額】」のように書き、合計も【見積金額】として書くので、AI が足し算をする余地がありません。
AIに処理させる
させるのは、決まった連絡の種類と事実の表から、お客様への連絡文を書くことです。
| 連絡の種類 | 書くこと | 入れてはいけないこと |
|---|---|---|
| 見積の回答のお願い | 修理の内容、内訳、【見積金額】、回答の方法と【回答期限】、修理しない場合の返却の扱い | 修理を勧める・急がせる表現 |
| 回答の再度のお願い | 見積をお送りしたこと、回答のお願い、返却も選べること | 催促の強い表現 |
| 遅れのお知らせ | 予定より遅れていること、遅れの理由(欄にあるときだけ)、【新しい予定日】(あるときだけ) | 欄に無い理由、根拠の無い見込み |
| 完成のご案内 | 完成したこと、受け取りの店と営業時間、持ち物、【引き取り期限】 | 修理の出来ばえの評価 |
| 引き取りの再度のご案内 | 店で預かっていること、受け取りのお願い | 保管料や処分を思わせる表現(規約の文言以外) |
| 電話で伝える要点 | 上の各種類の要点を3行で | - |
3行目の遅れのお知らせが、この構成でいちばん気を遣う文面です。 遅れの理由の欄が空なら、理由には触れず、「確認ができしだい改めてご連絡します」と書かせます。 理由を作らないことと、根拠の無い見込みの日を書かないことを、指示で分けて禁じます。
5行目の「保管料や処分」は、店の預かりの規約に関わります。 長く引き取られない修理品の扱いは、受付のときにお渡しした控えの規約で決まっています。その文言は店の情報のシートに規約のとおりに持たせ、そのまま差し込みます。 AI に言い換えさせません。
| させないこと | 理由 |
|---|---|
| 金額・日付を書く | 約束そのもの。記号で置き、台帳の値を差し込む |
| 連絡するかどうかを決める | 時期は規則で決める |
| 遅れの理由を作る | 欄に書かれた理由だけを使う |
| 修理の可否や保証の適用を書く | 送り先と店が判断する |
| 修理を勧める・急がせる | 修理するかはお客様が決める |
| 規約の文言を言い換える | 預かりの約束。原文のまま差し込む |
指示内容を固定する
あなたは時計・宝飾品の専門店で、修理をお預かりしているお客様に
連絡文を書く担当です。以下の「連絡の種類」と「事実の表」だけを使って、
メールの本文と、電話で伝える要点を書いてください。
【書き方】
- body:メールの本文。宛名は【お客様名】様とする。
丁寧な敬語で、1段落は100字程度まで、全体で4段落以内。
- phone_points:電話で伝える要点を3行で。
- 金額・日付・期限は、事実の表の記号をそのまま本文に置く。
- 最後に、受付の店名と【受付番号】を書く。
【厳守事項】
- 金額、日付、日数、期限を数字で書かないでください。必ず記号を使ってください。
合計を計算しないでください。合計は【見積金額】と書いてください。
- 事実の表の delay_reason が空のときは、遅れの理由に触れないでください。
「確認ができしだい改めてご連絡いたします」と書いてください。
- 新しい予定日の記号が事実の表に無いときは、見込みの日や期間を書かないでください。
- 修理を勧める、急がせる表現を書かないでください。
見積の回答では、修理をしない場合の返却も選べることを必ず書いてください。
- 修理ができるかどうか、保証が使えるかどうかを書かないでください。
- 事実の表にない部品名・作業名・原因を書かないでください。
- 【規約の文言】の記号がある場合は、その位置に記号だけを置いてください。
- 書けない事情があるときは、body を空にし、needs_review に理由を書いてください。
【連絡の種類】{notice_type}({count} 回目)
【事実の表】{facts}
「合計を計算しない」を明記しているのは、内訳を渡すと足し算をしたがるためです。 内訳が「オーバーホール【内訳1の金額】」「ガラス交換【内訳2の金額】」と並んでいると、AI は合計を自分で出して書こうとします。合計も記号で渡し、計算そのものを禁じます。
「返却も選べることを必ず書く」は、修理を急がせないための書き方です。 見積の連絡は、お客様にとって修理するかどうかを決める知らせです。選べることを毎回書くと、文面が押し付けに読まれにくくなります。
出力形式を固定する
Claude API の構造化出力で、次の形の JSON を受け取ります。 公式のページでは、output_config.format に type: "json_schema" を指定し、オブジェクトには additionalProperties: false を付けることとされています。
{
"repair_id": "R-2026-1043",
"notice_type": "estimate_request | estimate_reminder | delay | ready | pickup_reminder",
"subject": "",
"body": "",
"phone_points": ["", "", ""],
"used_tokens": ["【お客様名】", "【見積金額】", "【回答期限】"],
"mentions_reason": false,
"needs_review": ""
}
1つ目の理由は、記号の使い方をスクリプトで検算できることです。
| 検査 | 合わないとき |
|---|---|
本文の記号と used_tokens が一致し、すべて事実の表にある | 確認待ち(存在しない記号) |
| 記号を除いた本文に数字がない | 確認待ち(金額・日付の直書き) |
遅れの理由の欄が空なのに mentions_reason が true | 確認待ち(理由の作り込み) |
| 見積の連絡に「返却」の語がある | 無ければ確認待ち |
| 本文に「保証」「修理できない」がない | 確認待ち |
notice_type が規則で決めた種類と一致する | 確認待ち |
最後の行で、大文字と小文字を区別せずに比べます。 公式のページでは、列挙型の値は大文字小文字だけが違う形で返ることがあるとされているためです。また構造化出力は数値の最小値・最大値の制約に対応しないとされているので、本文の長さや段落の数はスクリプトの側で確かめます。
2つ目の理由は、件名と本文を分けて差し込めることです。 件名には【受付番号】と品物を入れ、お客様が過去のメールを探しやすい形にそろえます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 修理の受付台帳 | Apps Script の読み取り | 全件を読む。書き戻さない |
| 規則・目安・店の情報 | Apps Script の読み取り | 判定と事実の表 |
| Claude API | UrlFetchApp.fetch | 修理ごとに連絡文を受け取る |
| Gmail | GmailApp.createDraft | メールの方の下書きを作る |
| 確認の一覧 | Apps Script の書き込み | 店ごとに、下書きへのリンク、電話の要点、止まっている修理 |
API の呼び出しでは muteHttpExceptions を true にします。 公式のページでは、これを true にすると失敗の応答でも例外を投げず、応答を返すとされています。応答のコードを見て、混み合いなら時間をおいてやり直し、それ以外の失敗はその修理を「下書きなし」で一覧に載せます。 連絡が要ることは規則で決まっているので、下書きが無くても一覧からは落としません。 API キーはスクリプトのプロパティに置きます。公式のページでは、スクリプトのプロパティはそのスクリプトの利用者全員で共有され、スクリプトの間では共有されないとされています。
Gmail は下書きまでです。 createDraft は宛先・件名・本文のほか、差出人の表示名や返信先などを指定して下書きを作れるとされています。表示名には店の名前を入れ、返信先は修理の窓口のアドレスにします。 このメソッドを使うには https://mail.google.com/ のスコープの承認が要るとされているので、最初の承認は窓口の共用のアカウントで行います。
人が確認する
全件を、受付の店の修理担当が読んでから送ります。 確認の一覧は店ごとに分かれ、上から「確認待ち」「見積の回答のお願い」「遅れのお知らせ」「完成のご案内」「止まっている修理」の順に並びます。
- 確認待ちを先に片づける … 記号の誤り、理由の作り込み、日付の確認
- 見積の連絡は金額を1度見る … 差し込まれた【見積金額】を、送り先の見積書と見比べます。台帳への転記の誤りは、ここでしか見つかりません
- 遅れのお知らせは理由を確かめる … 欄の理由がお客様に伝えてよい内容か。送り先の社内の事情をそのまま書いていないか
- 送る・電話する … 送ったら一覧に印を付け、台帳の「最後に連絡した日と種類」を更新します
- 止まっている修理を送り先に問い合わせる … 分かったことを「遅れの理由」の欄に書きます。翌朝の連絡文に反映されます
2番目を省かないでください。 スクリプトは台帳の値を正しく差し込みますが、台帳の値そのものが送り先の見積と違っていれば、正しく差し込まれた誤りになります。 金額を伝える連絡だけは、元の見積書と1度見比べます。
1件2分を目安にします。 完成のご案内は読んで送るだけで1分かからず、見積と遅れの連絡は見比べと確かめで数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 状態が変わった日が空・未来 | 判定せず一覧に「日付の確認」と出す |
| 連絡方法のメールアドレスが空 | 電話の要点だけを作る。推測で宛先を作らない |
| 「連絡を控える」に印 | 作らない。止まっている修理の判定だけは行う |
| 見積の金額が空なのに状態が見積回答待ち | 作らず確認待ち。状態の付け間違いを疑う |
| 遅れの理由に送り先の社内の事情が書かれている | 担当が確認の段階で書き直す。欄の書き方の決まりを作る |
| お客様から返信が来た | 窓口が受け、台帳の状態を担当が更新する。返信の読み取りは自動にしない |
| API が応答しない・混み合い | 時間をおいてやり直し、続けて失敗したら「下書きなし」で一覧に載せる |
| 1回の実行が時間切れになる | 処理済みの印を見て、続きを数分後のトリガーで作る |
最後の行は、Apps Script の上限から来ます。 公式の上限の表では、スクリプトの実行時間は1回あたり6分で、トリガーで動かした合計の実行時間は Google Workspace のアカウントで1日6時間です。1日の連絡は20〜30件ほどなので多くは1回で終わりますが、月初や連休明けは件数が増えるので、30件ずつ作り、残りは1回きりのトリガーで続きを作ります。 トリガーはユーザー・スクリプトごとに20個までとされているので、続きのトリガーは動いたら消します。 また、メールの受信者の数には1日あたりの上限があるとされていますが、この構成は下書きを作るだけで、送るのは人です。
記録を残す
- 実行の日時、判定した修理の件数、連絡の種類ごとの件数、止まっている修理の件数
- 修理ごとの判定の理由(状態、経過日数、当てはまった規則)
- AI に渡した事実の表と、AI が返した JSON の全文(差し込む前のもの)
- 検査の結果と、確認待ちにした理由
- 担当が送った・電話した日時と、直した箇所
- 止まっている修理について、送り先に問い合わせた日と答え
2つ目の判定の理由が、問い合わせへの答えを速くします。 お客様から「連絡が来ない」と言われたとき、その修理が規則のどこに当たり、いつ何を作ったかがすぐに分かります。
最後の行は、送り先ごとの目安の日数を見直す材料になります。 同じ送り先で毎回止まっていると出るなら、目安が短すぎるか、送り先の側の手順に理由があります。
04実装レベルの3段階
最小構成では480件をさばけません。 事実の表を手で作るので、確かめるための段階です。 本記事の想定は半自動化です。 毎朝、店ごとの一覧に下書きと電話の要点が並び、担当が開店前に送ります。1件8分が2分になるのはこの段階です。 差が大きいのは、①の探す作業と④の思い出す作業が規則の判定に移り、②が「差し込まれた文面を読んで送る」に変わるからです。 本格構成は、台帳の状態の付け方が店のあいだでそろってから進めます。 お客様が状態を直接見るようになると、台帳の付け間違いがそのままお客様に見えます。
05工数削減シミュレーション
導入後 480件 × 2分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の店舗で時計・宝飾品・眼鏡などの修理を受け付け、メーカーや外部の職人、自社の工房に出している専門店。修理の受付台帳を Google スプレッドシートで持ち、工程の状態と日付を店のスタッフが更新している場合。お客様からの「修理はどうなっていますか」という問い合わせが多く、見積の回答待ちや完成の連絡が担当者の記憶とメモに頼っている場合。
- 修理の受付が月に数件で、店主が全件を覚えていられる店。修理の管理専用のソフトに、お客様への自動の連絡と滞留の一覧の機能があり、すでにそれで回っている場合。台帳の工程の状態がほとんど更新されず、状態から連絡を作る前提が成り立たない場合。なお、修理の可否や見積の金額の判断、保証の適用の判断はこの構成の対象外です。
07最小構成で試す方法
- 台帳から、預かり中の修理を20件選ぶ(見積回答待ち・修理中で予定日を過ぎたもの・完成したものを混ぜる)
- その20件について、連絡の種類を手で決め、金額と日付を【見積金額】のような記号に置き換えた事実の表を作る
- 手元の Claude の画面に、第7章のプロンプトと1件ずつの事実の表を貼る
- 出てきた文面を、ベテランの担当がこれまでに書いた連絡と並べて読み比べる
- あわせて、台帳の状態と日付から「止まっている修理」を手で拾い、何件あったかを数える
5番目を必ずやってください。 AI の文面より先に、止まっている修理が今どれだけあるかが分かります。この数が多ければ、文面の出来にかかわらず、毎朝の一覧だけで効果が出ます。
| 出てきた内容 | 判断 |
|---|---|
| ベテランの連絡と遜色ない | スクリプトで台帳からつなぐ段階に進む |
| 金額や日付を数字で書いてくる | 指示の書き方で直る。検査で止める |
| 遅れの理由を作ってくる | 理由が空のときの文を指示に書き込む |
| 止まっている修理が予想より多い | 一覧の作成を先に始める |
4行目が出たら、それがいちばんの収穫です。 連絡文の下書きより先に、毎朝の一覧だけをスクリプトで作る段階から始めてもかまいません。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 見積の合計を AI が計算して書く | 合計も記号で渡し、計算を禁じる。 数字を検査で止める |
| 遅れの理由を作る | 理由の欄が空なら触れない文を指示に書き、mentions_reason で検査 |
| 毎朝同じ催促の下書きができる | 最後に連絡した日から規則の間隔を数える |
| 状態の日付の直し忘れで時期がずれる | 状態を変えたら日付を空にする入力の決まり。空なら判定しない |
| メーカーの修理ばかりが止まっていると出る | 目安の日数を送り先ごとに持つ |
| 台帳への転記の誤りがそのまま届く | 金額を伝える連絡は見積書と1度見比べる |
| 規約の文言が言い換えられる | 原文を記号で差し込む |
| 連絡を控えるべきお客様に届く | 「連絡を控える」の欄を最初に見る |
| 担当者のアカウントでトリガーを作る | 作成者のアカウントで動く。窓口の共用のアカウントで作る |
| スクリプトが台帳に書き込んで入力とぶつかる | 書き戻さない。印を付けたときだけ担当の操作で更新 |
上の3行が、この構成の失敗のほとんどです。 どれも「お客様に、店が約束していない金額・理由・催促が届く」失敗で、金額と理由と時期を AI の外で決めているかどうかで、防げるかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: お客様のお名前と連絡先、お預かりした品物(高額な時計・宝飾品)、見積の金額、受け取りの店と期限です。
- 外部へ渡す範囲を、文面に必要なものまでに限る … Claude API に渡すのは、連絡の種類、品物と症状、修理の内容、遅れの理由、店の情報だけです。お名前・連絡先・金額・日付は渡さず、 差し込みは Google Workspace の中で行います
- 品物の情報の書き方に気をつける … 「ダイヤモンド○カラットの指輪」のような書き方は、預かり品の価値を示します。事実の表には品物の種類と型番の範囲だけを入れ、 鑑定の内容や時価は入れません
- 送信を自動にしない … 下書きまでです。金額の約束はお客様との取引の条件そのもので、誤った見積の連絡は取り消すのに手間がかかります
- 規約の文言を AI に書かせない … 預かり品の保管や処分の扱いは、受付のときの規約で決まっています。原文を差し込み、言い換えません
- API キーをスクリプトに直接書かない … スクリプトのプロパティに置き、スクリプトの編集権限を本部の窓口の担当に限ります
- 台帳の共有範囲を絞る … お客様の連絡先と高額な預かり品の一覧がまとまった表です。閲覧も店の修理担当と窓口に限ります
誤りが起きた場合のリスクは、お客様に誤った金額や期限を伝えることと、店が根拠の無い説明をすることの2つです。前者は記号の差し込みと見積書との見比べで、後者は理由の欄と検査で防ぎ、最後に修理担当が読んでから送ります。
10まず何から始めるか
1週目:状態の意味と目安の日数を決める
5店の修理担当と、台帳の8つの状態の意味をそろえます。あわせて、送り先ごとに「止まっている」と判断する日数を表にします。過去半年の台帳から、送り先ごとの実際の日数を出して目安にします。
2週目:20件で試す
預かり中の修理から20件を選び、手元の Claude の画面で連絡文を作らせます。同時に、止まっている修理を手で拾い、何件あるかを数えます。
3週目:判定と一覧をスクリプトにする
Apps Script で台帳を読み、連絡の種類と止まっている修理を判定して、店ごとの一覧に並べるところまで作ります。この時点では下書きを作らず、一覧だけを毎朝店に見てもらいます。
4週目:下書きまでつなぐ
API で文面を作り、記号の差し込みと検査を足して、Gmail の下書きと電話の要点を一覧に並べるところまで組みます。最初の月は、1店だけで回します。
2か月目: 5店に広げ、「遅れの理由」の欄の書き方の決まりを作ります。3か月目以降: 1件あたりの確認の時間と、「どうなっていますか」の問い合わせの件数を数えます。預かり中のすべての修理について、決まった日に連絡が出ているようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 時間主導型のトリガーが毎分から月1回まで動かせ、時刻がずれうること(9時の設定が9〜10時に動き、その時刻が保たれる)。インストール型のトリガーが作成者のアカウントで動くこと。失敗時にまとめのメールが届くこと | Google: Installable triggers | 2026-10-26 |
| 実行時間が1回6分、トリガーの合計実行時間が Workspace で1日6時間、トリガーがユーザー・スクリプトごとに20個であること。メールの受信者の数に1日あたりの上限があること | Google: Quotas for Google Services | 2026-10-26 |
muteHttpExceptions を true にすると、失敗の応答でも例外を投げず応答を返すこと | Google: Class UrlFetchApp | 2026-10-26 |
| スクリプトのプロパティがスクリプトの利用者全員で共有され、スクリプトの間では共有されないこと | Google: Properties Service | 2026-10-26 |
createDraft が宛先・件名・本文と、表示名・返信先などの指定で下書きを作ること。https://mail.google.com/ のスコープが要ること | Google: Class GmailApp | 2026-10-26 |
構造化出力を output_config.format の json_schema で指定し、additionalProperties: false が必要なこと。数値の最小値・最大値の制約に対応しないこと。列挙型の値が大文字小文字だけ違って返りうること | Claude: Structured outputs | 2026-10-26 |
預かり品の保管期間や、引き取られない品の扱いは、自社の規約と顧問の専門家に確かめてください。 本記事は公式のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1828)についてのご相談はこちらから。
