自転車店が修理の予約と問い合わせを Make で受け、AI で症状を作業の種類に分けて所要時間と概算を出し、作業台の空きから予約の枠を返す
自転車店に届く修理の予約と問い合わせを Make で受け、症状の文を作業メニューの種類に分類します。所要時間と概算はメニュー表から引き、作業台の予定の空きから予約の枠を決めて、仮の予約と返事のメールを作ります。
- 生成AI
- ChatGPT/Claude
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- その他/小売
- 対象部門
- カスタマーサポート
- 対象業務
- 分類・仕分け/問い合わせ対応
- 主な課題
- 判断に時間がかかる/問い合わせが多い/属人化している
- AIで行う処理
- 分類
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 店頭のスタッフが代表アドレスとフォームの通知を開き、依頼を読む
- 症状から作業の種類を見立てる。分からなければ整備士に聞く
- 作業メニュー表で目安の時間と工賃を見る
- 作業台のカレンダーを開き、希望の日時にその時間が取れるかを見る
- 取れれば予定を入れて返事を書く。取れなければ別の日時を探して勧める
- 受付の記録に書く
- 自動修理予約フォームの送信(Webhook)と、代表アドレスへの依頼のメールをきっかけに、Make のシナリオが動く
- 自動受付の記録のシートを引き、同じ依頼をすでに扱っていれば止める
- 自動Claude API が、症状の文を作業メニューの種類のコードに分類し、実車を見ないと決められないもの・ブレーキの不具合・電動アシストの不具合に印を付ける
- 自動ワークフローが、種類のコードから作業メニュー表の目安の時間と工賃と部品の幅を引き、合計の時間と概算の幅を出す
- 自動作業台のカレンダーの空き(Free/Busy)を引き、希望の日時に合計の時間が取れるか、取れなければ近い枠を3つまで探す
- 自動ルーターで、自動で返す・下書きにする・整備士に回すを分ける
- 自動自動で返すものは、作業台のカレンダーに仮の予定を入れ、返事のメールを送る
- 人店頭のスタッフが下書きを確かめて送る。整備士は回ってきた依頼だけを見る
- 自動受付の記録に、種類・時間・概算・枠・送り方を書く
各工程の詳しい説明を読む
- 店頭のスタッフが代表アドレスとフォームの通知を開き、依頼を読む
- 症状から作業の種類を見立てる。分からなければ整備士に聞く
- 作業メニュー表で目安の時間と工賃を見る
- 作業台のカレンダーを開き、希望の日時にその時間が取れるかを見る
- 取れれば予定を入れて返事を書く。取れなければ別の日時を探して勧める
- 受付の記録に書く
(a)症状の書き方がばらばら。 同じパンクでも「空気が抜ける」「タイヤがぺちゃんこ」「乗ると後ろがゴトゴトする」と書かれます。どの作業かを見立てるのに、店頭のスタッフの経験の差がそのまま出ます。
(b)作業の種類と時間を整備士に聞かないと決められない。 「ギアが勝手に変わる」は変速の調整で済むこともあれば、ワイヤーの交換が要ることもあります。整備士は作業台にいて、聞くたびに作業の手が止まります。
(c)返事が夜にまとまる。 店頭のスタッフは接客の合間に返事を書くので、週末の昼に届いた依頼は閉店後まで返りません。 通勤や通学で毎日使う自転車の修理は、返事が遅れると別の店に持ち込まれます。
(d)時間の見立て違いで作業台の予定が崩れる。 30分の枠で受けた「チェーンの音」が、実際にはチェーンと後ろのギアの交換で、部品の取り寄せが要る修理だった、ということが起きます。 その日の後の予約が押し、持ち込みの修理を断ることになります。
- 【自動】 修理予約フォームの送信(Webhook)と、代表アドレスへの依頼のメールをきっかけに、Make のシナリオが動く
- 【自動】 受付の記録のシートを引き、同じ依頼をすでに扱っていれば止める
- 【自動】 Claude API が、症状の文を作業メニューの種類のコードに分類し、実車を見ないと決められないもの・ブレーキの不具合・電動アシストの不具合に印を付ける
- 【自動】 ワークフローが、種類のコードから作業メニュー表の目安の時間と工賃と部品の幅を引き、合計の時間と概算の幅を出す
- 【自動】 作業台のカレンダーの空き(Free/Busy)を引き、希望の日時に合計の時間が取れるか、取れなければ近い枠を3つまで探す
- 【自動】 ルーターで、自動で返す・下書きにする・整備士に回すを分ける
- 【自動】 自動で返すものは、作業台のカレンダーに仮の予定を入れ、返事のメールを送る
- 【人】 店頭のスタッフが下書きを確かめて送る。整備士は回ってきた依頼だけを見る
- 【自動】 受付の記録に、種類・時間・概算・枠・送り方を書く
4番目をAIの外に置くのが、この設計の分かれ目です。 AIが返すのは作業の種類のコードだけで、時間と金額はメニュー表の数字の足し算です。 工賃を改定したら、直すのはメニュー表だけです。
5番目もAIの外です。 作業台の空きは、カレンダーの予定から決まります。AIに「空いていそうな時間」を考えさせることはしません。
02今回想定するシステム構成
修理の予約と問い合わせ(自社サイトのフォーム/代表アドレスへのメール) ▼【トリガー】Webhooks:Custom webhook / Gmail:Watch emails Make のシナリオ(Process data in order を有効) ├──▶ Google Sheets:Search Rows(受付の記録・作業メニュー表) ├──▶ Claude API(Make an API Call):作業の種類のコードと印 ├──▶ メニュー表の時間と工賃の合計 ├──▶ Google Calendar:Get Free/Busy Information(作業台の空き) ├──▶ Router │ ├ 整備士へ(電動アシスト・実車を見ないと決められない・種類が3つ以上) → 整備士へ通知 │ ├ 下書き(ブレーキの不具合・希望の日時に取れない・部品の確認が要る) → Gmail:Create a draft email │ ├ 自動(決まった種類で希望の日時に取れる) → Google Calendar:Create an Event + Gmail:Send an email │ └ フォールバック → 店頭のスタッフへ └──▶ Google Sheets:Add a Row(受付の記録)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make(シナリオ。Webhooks、Gmail、Google Sheets、Google Calendar、ルーター) | Zapier、n8n、Power Automate |
| 生成AI | Claude API(Messages API、構造化出力) | OpenAI API |
| 保管 | Google スプレッドシート(作業メニュー表・受付の記録) | Airtable |
| 予定表 | Google カレンダー(作業台ごとの予定) | Microsoft Outlook の予定表 |
新しく足すのは、シナリオと、作業メニュー表に足す種類のコードの列だけです。 作業台のカレンダーと代表アドレスはそのまま使います。この構成が書き込むのは、作業台のカレンダーの仮の予定、受付の記録、Gmail の送信と下書きです。
入口のフォームは Webhooks で受け、シナリオの設定で Process data in order を選びます。 公式のページでは、即時の Webhook のシナリオは既定で並列に処理され、前の実行の完了を待たないとされています。同じ作業台の同じ時間に2件の依頼が重なったとき、両方に仮の予定を入れないために、1件ずつ処理させます。
作業台の空きは、Google Calendar のアプリの Get Free/Busy Information で引き、仮の予定は Create an Event で入れます。 Google Calendar API の freeBusy は、カレンダーごとに予定の入っている時間帯(busy)を返します。空いている時間は、店の予約に使ってよい時間から busy を引いて、ワークフローが出します。
分類は Claude API で行います。 Make の Anthropic Claude のアプリの Make an API Call で Messages API を呼び、output_config.format に JSON スキーマを書きます。
03どうやって実装するのか
処理の起点を決める
修理予約フォームの送信と、代表アドレスへの依頼のメールの2つを起点にします。 フォームは送信のたびに Make の Custom webhook の URL へ項目を送ります。メールは Gmail の Watch emails で、「修理の依頼」のラベルを見張ります。ラベルは Gmail のフィルタで、件名や本文に「修理」「パンク」「ブレーキ」などが含まれるものに付けます。
フォームは即時、メールは10分おきにします。 フォームから予約する人は、その場で予約が取れたかを知りたい人です。営業時間外の送信でも、仮の予約と返事が出ている状態にします。
Webhook には待ち行列があり、上限を超えた分は受け取りません。 公式のページでは、即時に処理されなかったデータは待ち行列にため、その上限は契約のクレジット1万ごとに667件、最大1万件です。シナリオを止めるときは、フォームの側に予約の停止を出します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼 | フォームの項目(自転車の種類・症状・希望の日時・名前・メールアドレス・電話番号)/メールの件名と本文(返信の引用を除いたもの)・送信元・受信日時 | Webhook/Gmail |
| 作業メニュー表 | 種類のコード、作業の名前、目安の時間、工賃、部品の目安の幅、自動で受けてよいか | 作業メニュー表のシート |
| 作業台の空き | 作業台ごとの予定の入っている時間帯、予約に使ってよい時間 | Google カレンダー(Free/Busy)と、作業台の設定のシート |
| 受付の記録 | これまでの依頼と、同じ人の前回の修理 | 受付の記録のシート |
質を決めるのは、作業メニュー表の種類の分け方です。 例えば次のような表です。
| コード | 作業 | 目安の時間 | 自動で受けてよいか |
|---|---|---|---|
puncture | パンク修理 | 30分 | よい |
tube | チューブ交換 | 30分 | よい |
tire | タイヤ交換 | 45分 | タイヤの寸法が分かるときだけ |
brake_adjust | ブレーキの調整 | 20分 | よくない(下書き) |
brake_shoe | ブレーキシューの交換 | 30分 | よくない(下書き) |
chain | チェーンの交換 | 30分 | 部品の在庫を確かめるので下書き |
shift_adjust | 変速の調整 | 30分 | よい |
wire | ワイヤーの交換 | 40分 | よい |
e_assist | 電動アシストの不具合 | - | 整備士へ |
diagnosis | 点検(実車を見て見立てる) | 20分 | よい |
diagnosis を種類の1つとして持つのが大事な点です。 症状から作業を決められないときの行き先が無いと、AIは近い作業に当てはめます。 点検の枠に来てもらい、実車を見てから作業の時間を決めます。
ブレーキの種類を自動で受けないのは、乗って持ってくると危ないからです。 返事に「乗らずに押してお持ちください」を書き添えたうえで、店頭のスタッフが内容を確かめてから送ります。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| フォームの依頼 | 自社サイトのフォーム | Custom webhook(項目を JSON で受ける) |
| メールの依頼 | Gmail | Watch emails(ラベル「修理の依頼」) |
| 作業メニュー表 | スプレッドシート | Search Rows(全件を読む) |
| 作業台の空き | 作業台のカレンダー | Get Free/Busy Information(作業台2台のカレンダーIDと、希望の日から7日間) |
| これまでの依頼 | 受付の記録のシート | Search Rows(メールアドレスか電話番号) |
Free/Busy の問い合わせには、timeZone に Asia/Tokyo を入れます。 Google Calendar API の公式のページでは、timeZone は応答に使うタイムゾーンで、省略すると UTC になるとされています。営業時間の10時〜19時と比べる段で9時間ずれ、閉店後の時間に予約を入れてしまいます。 timeMin と timeMax も +09:00 を付けて渡します。
空き時間の計算は、ワークフローの式で行います。 作業台ごとに、予約に使ってよい時間(例:10時〜12時と14時〜17時)から busy の時間帯を引き、合計の作業時間が続けて取れる時間の始まりを候補にします。 30分刻みで見ます。
AIへ渡す前に整形する
- 重複の確認 … フォームは送信の時刻とメールアドレス、メールはメッセージIDで受付の記録を引き、記録があれば止めます
- 返信の引用を落とす … メールの返信では、前の返事の全文が下に付いてきます。引用の部分を落とします
- 自転車の種類をコードにする … フォームの選択肢(街の自転車・子ども用・スポーツ自転車・電動アシスト)をコードに置き換えます
- 前回の修理を添える … 同じ人の直近の修理の種類と日付を添えます。先月チューブを替えた人のパンクは、タイヤの傷みを疑う材料になります
- AIに渡す範囲を絞る … 名前、電話番号、メールアドレスは渡しません
4番目は、AIに作業を決めさせるためではなく、整備士に回す材料です。 前回と同じ症状がすぐにまた出ているなら、AIに recurring の印を付けさせ、自動では受けずに整備士へ回します。
AIに処理させる
させるのは、症状の文を作業メニュー表のコードに分類し、印を付けることだけです。
| 項目 | させること | 判断できないときの扱い |
|---|---|---|
| 作業の種類 | メニュー表のコードから選ぶ(複数可) | 決められなければ diagnosis |
| ブレーキの不具合 | 効かない・効きが弱い・片方だけ効くなど、制動に関わる症状に印 | 迷えば印を付ける |
| 電動アシスト | バッテリー・モーター・表示の不具合に印 | 迷えば印を付ける |
| 寸法の記載 | タイヤ交換のときに、寸法が書かれているか | 書かれていなければ null |
| 繰り返し | 前回の修理と同じ部位の症状か | 前回が無ければ false |
| 根拠 | 種類を決めた症状の文 | - |
ブレーキの印は「迷えば付ける」にします。 「ブレーキがキーキー鳴る」は音だけのことも、効きが落ちていることもあります。付け過ぎても下書きに回るだけですが、付け漏れると、効かない自転車に乗って来るよう案内することになります。 道路交通法は、基準に合う制動装置を備えていないため交通の危険を生じさせるおそれがある自転車の運転を禁じています。
| させないこと | 理由 |
|---|---|
| 時間と金額を書く | メニュー表の数字で決める |
| 空いている日時を考える | 作業台のカレンダーで決める |
| 部品の交換の要否を決める | 実車を見る整備士の判断 |
| 電動アシストの不具合を見立てる | メーカーの点検が要ることがある。整備士へ |
| 「すぐ直ります」と書く | 実車を見るまで分からない |
指示内容を固定する
あなたは自転車店の受付として、修理の依頼の症状を、作業メニュー表の
コードに分類します。時間と金額は書かないでください。日時も決めないで
ください。
【すること】
1. work_codes:症状に当てはまる作業のコードを、メニュー表から選ぶ。
複数の症状があれば複数選ぶ。
症状から作業を1つに決められないときは diagnosis を選ぶ。
2. brake_issue:ブレーキが効かない・効きが弱い・片方だけ効く・
レバーが戻らないなど、止まる力に関わる症状があれば true。
音だけに見えても、効きに触れていそうなら true にする。
3. e_assist_issue:電動アシストのバッテリー・モーター・表示の
不具合なら true。
4. tire_size:タイヤ交換のとき、依頼に書かれた寸法をそのまま写す。
書かれていなければ null。
5. recurring:前回の修理と同じ部位の症状なら true。
6. evidence:コードを決めた症状の文を、そのまま写す。
【厳守事項】
- メニュー表に無いコードを作らない。
- 「変な音」「重い」「なんとなく」など、作業を決められない書き方は
無理に当てはめず diagnosis にする。
- タイヤの寸法を、自転車の種類から推し量らない。
- 部品を替える必要があるかを書かない。
- 作業時間、工賃、部品代、日時を書かない。
【作業メニュー表(コードと作業の名前)】{menu}
【自転車の種類】{bike_type}
【前回の修理】{last_repair}
【症状】{symptom}
メニュー表には、コードと作業の名前だけを渡します。 時間と工賃の列を渡すと、AIは聞かれていなくても「30分ほどで」「2,000円前後」と書きます。 渡さなければ書けません。
「タイヤの寸法を推し量らない」を書くのは、子ども用やスポーツ自転車のタイヤの寸法が一様でないからです。 推し量った寸法で予約を受けると、当日に在庫が合わず、作業台の時間だけが埋まります。
出力形式を固定する
次の形の JSON を返させます。
{
"request_id": "",
"work_codes": ["puncture"],
"brake_issue": false,
"e_assist_issue": false,
"tire_size": null,
"recurring": false,
"evidence": "",
"questions": []
}
work_codes から先は、ワークフローの規則で決めます。
| 決めること | 規則 |
|---|---|
| 合計の時間 | work_codes ごとのメニュー表の目安の時間の合計 |
| 概算 | 工賃の合計と、部品の目安の幅の合計(「○円〜○円」) |
| 整備士へ | e_assist_issue が true、recurring が true、コードが3つ以上 |
| 下書き | brake_issue が true、tire で tire_size が null、chain を含む、希望の日時に取れない |
| 自動 | 上のどれにも当たらず、すべてのコードが「自動で受けてよい」、希望の日時に取れる |
構造化出力にする1つ目の理由は、コードでメニュー表をそのまま引けることです。 work_codes を1つずつ Search Rows に渡せば、時間と工賃が返ります。作業の名前で引くと、「パンク修理」と「パンクの修理」の違いで引けなくなります。
2つ目は、数の扱いをワークフローに残せることです。 公式のページでは、構造化出力は数値の minimum・maximum のような制約に対応しないとされています。時間と金額をスキーマに入れないので、範囲の制約に頼る場面がありません。
3つ目は、値の照らし方を決めておけることです。 公式のページでは、文字列の enum の大文字・小文字は保証されないとされています。コードは小文字にそろえてからメニュー表と比べます。 また、stop_reason が refusal か max_tokens のときは出力がスキーマに合わないことがあるとされているので、JSON を読む前に stop_reason を見ます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 修理予約フォーム | Webhooks の Custom webhook | 依頼の項目を受ける |
| Gmail | Watch emails/Send an email/Create a draft email | メールの依頼を受け、返事を送り、下書きを置く |
| 作業メニュー表 | Google Sheets の Search Rows | コードで時間・工賃・部品の幅を引く(読むだけ) |
| 作業台のカレンダー | Google Calendar の Get Free/Busy Information/Create an Event | 空きを引き、仮の予定を入れる |
| Claude API | Anthropic Claude の Make an API Call | 作業の種類のコードと印 |
| 受付の記録 | Google Sheets の Search Rows/Add a Row | 前回の修理を引き、受付を記録する |
ルーターのルートは、整備士へ→下書き→自動→フォールバックの順に並べます。 公式のページでは、ルートは同時ではなく1本ずつ順に処理されるとされています。電動アシストやブレーキの依頼が、自動のルートまで流れないように、先のルートで拾います。
自動のルートでは、仮の予定を入れてから返事を送ります。 予定の件名に「仮」と種類のコード、説明に概算と症状の文を入れます。予定の作成に失敗したら、返事を送らずに店頭のスタッフへ回します。 下書きのルートでも、希望の日時に取れるときは仮の予定を入れ、下書きを送るまでの間に枠が埋まらないようにします。
返事には、概算が「目安」であることを必ず書きます。 実車を見て部品の交換が要れば、金額は変わります。金額の文は、メニュー表の幅をワークフローが差し込む定型の文にし、AIには書かせません。
人が確認する
店頭のスタッフが確かめるのは、下書きに回ったものです。
- ブレーキの下書きを先に見る … 「乗らずに押してお持ちください」が入っているかを確かめます。遠方の人には、引き取りの相談を足します
- 種類の根拠を見る …
evidenceが症状の文に合っているかを見ます - 部品の在庫を見る … チェーンとタイヤは、在庫を確かめてから送ります
- 送る … Gmail の画面から送り、仮の予定の件名から「仮」を外します
整備士が見るのは、自分に回ってきた依頼だけです。 電動アシストと繰り返しの症状と、作業が3つ以上の依頼です。整備士は作業の合間に、時間の見立てと点検の枠のどちらで受けるかを決めます。
自動で返した分は、閉店後に件数と種類を流し見ます。 作業メニュー表を書き換えた日は、自動のルートを止めて、すべてを下書きにします。
例外に対処する
| 起きること | 対応 |
|---|---|
| 希望の日時に合計の時間が取れない | 近い枠を3つまで添えた下書きにする |
| 7日間に枠が無い | 持ち込みの受付の時間を案内する下書きにし、店頭のスタッフへ |
| タイヤの寸法が書かれていない | 寸法の聞き返しを questions に入れた下書きにする |
| 症状が書かれていない(「修理したい」だけ) | diagnosis にして点検の枠を案内する |
| 同じ人から予約の変更が届く | 受付の記録で前の仮の予定を引き、消してから新しい日時で探す |
| 2件が同じ作業台の同じ時間に重なる | Process data in order で1件ずつ処理し、後の依頼は残りの空きで探す |
Free/Busy で作業台のカレンダーに errors が返る | その作業台を候補から外し、店頭のスタッフへ知らせる |
| Claude API が応答しない | 受付の記録に「未処理」と書き、次の実行で拾い直す |
上の3行が大半を占めます。 どれもAIの誤りではなく、作業台の空きの持ち方とフォームの欄の作り方の問題です。 寸法の聞き返しが多いなら、フォームに「タイヤの側面に書かれた数字」の欄を足すほうが早く効きます。
記録を残す
- 依頼の元の項目とメールの本文(引用を落とす前のもの)
- 返ってきた JSON の全文と
stop_reason - そのときの作業メニュー表の版と、出した時間と概算
- Free/Busy を引いた日時と、選んだ枠
- 送った返事の本文と、送り方(自動/下書き/整備士へ)
- 当日の実際の作業と時間(整備士が作業の後に記録する)
最後の行が、この構成を育てる材料です。 diagnosis で受けた依頼が実際に何の作業だったか、目安の時間と実際の時間がどれだけ違ったかを、種類ごとに見ます。 ずれの大きい種類は、メニュー表の目安の時間を直します。
04実装レベルの3段階
最小構成では件数がさばけません。 月300件を1件ずつ貼るのは続きません。症状をコードに分けられるかを確かめるための段階です。 半自動化で、1件8分が3分になり、この段階が本記事の想定です。 症状の見立て、時間と概算、空き探し、仮の予定、記録が自動になり、人に残るのは、ブレーキと部品の確認が要る下書きと、整備士に回った依頼です。 本格構成で目安の時間を見直すには、当日の作業の記録が要ります。 整備士が作業の後に1行書く習慣が付いてから進めます。
05工数削減シミュレーション
導入後 300件 × 3分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 修理を予約制で受けていて、Web のフォームとメールで修理の予約と問い合わせが月に数百件届く自転車店・スポーツ自転車の専門店。症状の書き方がばらばらで、作業の種類と所要時間を整備士に聞かないと決められず、店頭の接客の合間に返事を書いているため、返事が夜にまとまってしまう場合。作業メニューと工賃の表がある場合。
- 修理を予約なしの持ち込みだけで受けていて、作業の順番を店頭で決めている店。修理の依頼が月に数十件で、整備士がその場で答えられている場合。作業メニューと工賃の表が無く、毎回見積を作っている場合(先に表を作る必要があります)。なお、実車を見てからの診断、部品の交換の要否、保証の扱いの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の依頼から30件を選ぶ(ブレーキ、電動アシスト、「変な音」、タイヤの寸法の無いタイヤ交換を混ぜる)
- 30件について、整備士が実際に行った作業を受付の記録から書き出す
- 作業メニュー表のコードと名前、第7章の指示を、手元の Claude の画面に貼る
- 30件の症状を1件ずつ貼り、コードと印を書かせる
- 実際の作業と照らし、
diagnosisにすべきものを別の作業に当てはめていないかを見る
30件は必ずやってください。 シナリオを組む前に、決められない症状を決められないと返せるかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
実際の作業と同じコード、または diagnosis になった | シナリオの組み立てに進む |
| 「変な音」を特定の作業に当てはめた | 指示に例を足す。構成は有効 |
| ブレーキの症状に印が付かない | 印の付け方を先に直す。 ここは自動にしない |
3行目が出たら、ブレーキの印が直るまで自動のルートを作らないでください。 付け漏れは、効かない自転車に乗って来るよう案内することに直結します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「変な音」を特定の作業に当てはめる | diagnosis を種類に持ち、例で指示する |
| ブレーキの症状に印が付かない | 「迷えば付ける」にし、自動のルートに流さない |
| 返事に表に無い時間や金額が入る | メニュー表の時間と工賃を渡さない。金額は定型の文で差し込む |
| 閉店後の時間に予約が入る | Free/Busy に timeZone を入れ、時刻に +09:00 を付ける |
| 同じ時間に2件の仮の予定が入る | Process data in order を有効にする |
| 持ち込みの修理を受ける時間が無くなる | 予約に使ってよい時間を作業台ごとに決める |
| タイヤの寸法を推し量る | null にして聞き返す |
| コードの大文字・小文字でメニュー表が引けない | 小文字にそろえてから引く |
| 予約の変更で前の仮の予定が残る | 受付の記録から前の予定を引いて消す |
| 電動アシストの不具合を店で受けてしまう | 整備士へ回し、メーカーの点検が要るかを先に見る |
上の2行が、この構成の失敗のほとんどです。 前者は作業台の予定の崩れ、後者は安全に直結します。どちらも「決められない」「迷う」を独立した答えにしてあるかで決まります。
3行目も最初に起きます。 メニュー表を丸ごと渡すと、AIは親切に時間と金額を書き添えます。 渡す列を絞るのが、いちばん確かな止め方です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 依頼した人の名前、メールアドレス、電話番号、自転車の種類と症状、前回の修理の記録、作業台の予定です。
- AIに渡すのは、症状の文とメニュー表のコードと名前だけにする … 名前と連絡先は分類に要りません。宛名と連絡先は、返事を組み立てるときにワークフローが差し込みます
- ブレーキの不具合の案内を、自動で送らない … 返事に「乗らずに押してお持ちください」を入れ、店頭のスタッフが確かめてから送ります。 自転車の運転者は、基準に合う制動装置を備えていない自転車を運転してはならないとされています
- 概算を約束にしない … 返事の金額は目安で、実車を見て変わることを必ず書きます。金額の文はAIに書かせず、定型の文に差し込みます
- 電動アシストの不具合は、整備士とメーカーの判断に回す … バッテリーやモーターは、店で見立ててよい範囲を整備士が決めます
- 受付の記録の保存期間を決める … 前回の修理を引くために残しますが、何年分を残すかを決めておきます
誤りが起きた場合のリスクは、作業の見立て違いで当日の予定が崩れることと、ブレーキの不具合のある自転車に乗って来させることの2つです。 前者は diagnosis で、後者はブレーキの印と人の確認で防ぎます。後者は件数が少なくても、1件の重さが違います。
10まず何から始めるか
1週目:作業メニュー表にコードを足す
整備士と一緒に、作業メニュー表に種類のコードと「自動で受けてよいか」の列を足します。diagnosis の行を作り、点検の時間を決めます。 作業台ごとに、予約に使ってよい時間も決めます。
2週目:30件で試す
先月の依頼から30件を選び、手元の Claude の画面でコードと印を書かせます。ブレーキの症状に印が付くかを最優先で見ます。
3週目:フォームを直す
自転車の種類を選択式にし、タイヤの側面の数字を書く欄を足します。 症状の欄の説明に「いつから・どんなときに」を書いてもらう例を載せます。
4週目:受付から下書きまでをつなぐ
Make で Webhook と Gmail の依頼を受け、分類し、時間と概算を出し、Free/Busy で枠を探して、すべてを下書きにするところまで作ります。 Process data in order と timeZone を確かめます。
2か月目: パンクとチューブ交換など、決まった種類だけ自動で返します。3か月目以降: 当日の作業の記録と目安の時間を比べ、diagnosis で受けた依頼の行き先が見えてきたら、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 即時の Webhook のシナリオが既定で並列に処理され、Process data in order で前の実行の完了を待つこと。待ち行列の上限がクレジット1万ごとに667件・最大1万件であること | Make: Webhooks | 2026-10-15 |
| Google Calendar のアプリに Create an Event・Search Events・Get Free/Busy Information などがあること | Make: Google Calendar | 2026-10-15 |
| Google Sheets のアプリに Search Rows・Add a Row などがあること | Make: Google Sheets modules | 2026-10-15 |
| Gmail のアプリに Watch emails・Send an email・Create a draft email があり、Watch emails がラベルを見張れること | Make: Gmail 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 などの制約に対応しないこと。文字列の enum の大文字・小文字が保証されないこと。stop_reason が refusal・max_tokens のときは出力がスキーマに合わないことがあること | Claude: Structured outputs | 2026-10-15 |
freeBusy がカレンダーごとの busy を返し、timeZone の既定が UTC であること。カレンダーごとに errors が返りうること | Google Calendar API: Freebusy: query | 2026-10-15 |
| 自転車の運転者は、内閣府令で定める基準に適合する制動装置を備えていないため交通の危険を生じさせるおそれがある自転車を運転してはならないこと(第63条の9第1項) | e-Gov 法令API: 道路交通法 | 2026-10-15 |
部品の交換の要否、保証の扱い、電動アシストの不具合の判断は、整備士とメーカーの案内に沿って行ってください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1728)についてのご相談はこちらから。
