Media > AI活用ユースケース > カスタマーサポート > 自転車店が修理の予約と問い合わせを Make で受け、AI で症状を作業の種類に分けて所要時間と概算を出し、作業台の空きから予約の枠を返す

自転車店が修理の予約と問い合わせを Make で受け、AI で症状を作業の種類に分けて所要時間と概算を出し、作業台の空きから予約の枠を返す

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

自転車店に届く修理の予約と問い合わせを Make で受け、症状の文を作業メニューの種類に分類します。所要時間と概算はメニュー表から引き、作業台の予定の空きから予約の枠を決めて、仮の予約と返事のメールを作ります。

サマリー
生成AI
ChatGPT/Claude
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
その他/小売
対象部門
カスタマーサポート
対象業務
分類・仕分け/問い合わせ対応
主な課題
判断に時間がかかる/問い合わせが多い/属人化している
AIで行う処理
分類
主な効果
品質標準化/対応スピード向上/工数削減
導入難易度
★☆☆☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
40h/月
AI導入後
15h/月
想定削減
63%
年間削減
300h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 店頭のスタッフが代表アドレスとフォームの通知を開き、依頼を読む
  2. 症状から作業の種類を見立てる。分からなければ整備士に聞く
  3. 作業メニュー表で目安の時間と工賃を見る
  4. 作業台のカレンダーを開き、希望の日時にその時間が取れるかを見る
  5. 取れれば予定を入れて返事を書く。取れなければ別の日時を探して勧める
  6. 受付の記録に書く
導入後(After)
  1. 自動修理予約フォームの送信(Webhook)と、代表アドレスへの依頼のメールをきっかけに、Make のシナリオが動く
  2. 自動受付の記録のシートを引き、同じ依頼をすでに扱っていれば止める
  3. 自動Claude API が、症状の文を作業メニューの種類のコードに分類し、実車を見ないと決められないもの・ブレーキの不具合・電動アシストの不具合に印を付ける
  4. 自動ワークフローが、種類のコードから作業メニュー表の目安の時間と工賃と部品の幅を引き、合計の時間と概算の幅を出す
  5. 自動作業台のカレンダーの空き(Free/Busy)を引き、希望の日時に合計の時間が取れるか、取れなければ近い枠を3つまで探す
  6. 自動ルーターで、自動で返す・下書きにする・整備士に回すを分ける
  7. 自動自動で返すものは、作業台のカレンダーに仮の予定を入れ、返事のメールを送る
  8. 人店頭のスタッフが下書きを確かめて送る。整備士は回ってきた依頼だけを見る
  9. 自動受付の記録に、種類・時間・概算・枠・送り方を書く
各工程の詳しい説明を読む
  1. 店頭のスタッフが代表アドレスとフォームの通知を開き、依頼を読む
  2. 症状から作業の種類を見立てる。分からなければ整備士に聞く
  3. 作業メニュー表で目安の時間と工賃を見る
  4. 作業台のカレンダーを開き、希望の日時にその時間が取れるかを見る
  5. 取れれば予定を入れて返事を書く。取れなければ別の日時を探して勧める
  6. 受付の記録に書く

(a)症状の書き方がばらばら。 同じパンクでも「空気が抜ける」「タイヤがぺちゃんこ」「乗ると後ろがゴトゴトする」と書かれます。どの作業かを見立てるのに、店頭のスタッフの経験の差がそのまま出ます。

(b)作業の種類と時間を整備士に聞かないと決められない。 「ギアが勝手に変わる」は変速の調整で済むこともあれば、ワイヤーの交換が要ることもあります。整備士は作業台にいて、聞くたびに作業の手が止まります。

(c)返事が夜にまとまる。 店頭のスタッフは接客の合間に返事を書くので、週末の昼に届いた依頼は閉店後まで返りません。 通勤や通学で毎日使う自転車の修理は、返事が遅れると別の店に持ち込まれます。

(d)時間の見立て違いで作業台の予定が崩れる。 30分の枠で受けた「チェーンの音」が、実際にはチェーンと後ろのギアの交換で、部品の取り寄せが要る修理だった、ということが起きます。 その日の後の予約が押し、持ち込みの修理を断ることになります。

  1. 【自動】 修理予約フォームの送信(Webhook)と、代表アドレスへの依頼のメールをきっかけに、Make のシナリオが動く
  2. 【自動】 受付の記録のシートを引き、同じ依頼をすでに扱っていれば止める
  3. 【自動】 Claude API が、症状の文を作業メニューの種類のコードに分類し、実車を見ないと決められないもの・ブレーキの不具合・電動アシストの不具合に印を付ける
  4. 【自動】 ワークフローが、種類のコードから作業メニュー表の目安の時間と工賃と部品の幅を引き、合計の時間と概算の幅を出す
  5. 【自動】 作業台のカレンダーの空き(Free/Busy)を引き、希望の日時に合計の時間が取れるか、取れなければ近い枠を3つまで探す
  6. 【自動】 ルーターで、自動で返す・下書きにする・整備士に回すを分ける
  7. 【自動】 自動で返すものは、作業台のカレンダーに仮の予定を入れ、返事のメールを送る
  8. 【人】 店頭のスタッフが下書きを確かめて送る。整備士は回ってきた依頼だけを見る
  9. 【自動】 受付の記録に、種類・時間・概算・枠・送り方を書く

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
生成AIClaude 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どうやって実装するのか

Step1

処理の起点を決める

修理予約フォームの送信と、代表アドレスへの依頼のメールの2つを起点にします。 フォームは送信のたびに Make の Custom webhook の URL へ項目を送ります。メールは Gmail の Watch emails で、「修理の依頼」のラベルを見張ります。ラベルは Gmail のフィルタで、件名や本文に「修理」「パンク」「ブレーキ」などが含まれるものに付けます。

フォームは即時、メールは10分おきにします。 フォームから予約する人は、その場で予約が取れたかを知りたい人です。営業時間外の送信でも、仮の予約と返事が出ている状態にします。

Webhook には待ち行列があり、上限を超えた分は受け取りません。 公式のページでは、即時に処理されなかったデータは待ち行列にため、その上限は契約のクレジット1万ごとに667件、最大1万件です。シナリオを止めるときは、フォームの側に予約の停止を出します。

Step2

入力データを集める

データ中身取得元
依頼フォームの項目(自転車の種類・症状・希望の日時・名前・メールアドレス・電話番号)/メールの件名と本文(返信の引用を除いたもの)・送信元・受信日時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は近い作業に当てはめます。 点検の枠に来てもらい、実車を見てから作業の時間を決めます。

ブレーキの種類を自動で受けないのは、乗って持ってくると危ないからです。 返事に「乗らずに押してお持ちください」を書き添えたうえで、店頭のスタッフが内容を確かめてから送ります。

Step3

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

取るものどこからどうやって
フォームの依頼自社サイトのフォームCustom webhook(項目を JSON で受ける)
メールの依頼GmailWatch 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分刻みで見ます。

Step4

AIへ渡す前に整形する

  1. 重複の確認 … フォームは送信の時刻とメールアドレス、メールはメッセージIDで受付の記録を引き、記録があれば止めます
  2. 返信の引用を落とす … メールの返信では、前の返事の全文が下に付いてきます。引用の部分を落とします
  3. 自転車の種類をコードにする … フォームの選択肢(街の自転車・子ども用・スポーツ自転車・電動アシスト)をコードに置き換えます
  4. 前回の修理を添える … 同じ人の直近の修理の種類と日付を添えます。先月チューブを替えた人のパンクは、タイヤの傷みを疑う材料になります
  5. AIに渡す範囲を絞る … 名前、電話番号、メールアドレスは渡しません

4番目は、AIに作業を決めさせるためではなく、整備士に回す材料です。 前回と同じ症状がすぐにまた出ているなら、AIに recurring の印を付けさせ、自動では受けずに整備士へ回します。

Step5

AIに処理させる

させるのは、症状の文を作業メニュー表のコードに分類し、印を付けることだけです。

項目させること判断できないときの扱い
作業の種類メニュー表のコードから選ぶ(複数可)決められなければ diagnosis
ブレーキの不具合効かない・効きが弱い・片方だけ効くなど、制動に関わる症状に印迷えば印を付ける
電動アシストバッテリー・モーター・表示の不具合に印迷えば印を付ける
寸法の記載タイヤ交換のときに、寸法が書かれているか書かれていなければ null
繰り返し前回の修理と同じ部位の症状か前回が無ければ false
根拠種類を決めた症状の文-

ブレーキの印は「迷えば付ける」にします。 「ブレーキがキーキー鳴る」は音だけのことも、効きが落ちていることもあります。付け過ぎても下書きに回るだけですが、付け漏れると、効かない自転車に乗って来るよう案内することになります。 道路交通法は、基準に合う制動装置を備えていないため交通の危険を生じさせるおそれがある自転車の運転を禁じています。

させないこと理由
時間と金額を書くメニュー表の数字で決める
空いている日時を考える作業台のカレンダーで決める
部品の交換の要否を決める実車を見る整備士の判断
電動アシストの不具合を見立てるメーカーの点検が要ることがある。整備士へ
「すぐ直ります」と書く実車を見るまで分からない
Step6

指示内容を固定する

あなたは自転車店の受付として、修理の依頼の症状を、作業メニュー表の
コードに分類します。時間と金額は書かないでください。日時も決めないで
ください。

【すること】
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円前後」と書きます。 渡さなければ書けません。

「タイヤの寸法を推し量らない」を書くのは、子ども用やスポーツ自転車のタイヤの寸法が一様でないからです。 推し量った寸法で予約を受けると、当日に在庫が合わず、作業台の時間だけが埋まります。

Step7

出力形式を固定する

次の形の 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 を見ます。

Step8

システムへ連携する

つなぎ先方式内容
修理予約フォームWebhooks の Custom webhook依頼の項目を受ける
GmailWatch emails/Send an email/Create a draft emailメールの依頼を受け、返事を送り、下書きを置く
作業メニュー表Google Sheets の Search Rowsコードで時間・工賃・部品の幅を引く(読むだけ)
作業台のカレンダーGoogle Calendar の Get Free/Busy Information/Create an Event空きを引き、仮の予定を入れる
Claude APIAnthropic Claude の Make an API Call作業の種類のコードと印
受付の記録Google Sheets の Search Rows/Add a Row前回の修理を引き、受付を記録する

ルーターのルートは、整備士へ→下書き→自動→フォールバックの順に並べます。 公式のページでは、ルートは同時ではなく1本ずつ順に処理されるとされています。電動アシストやブレーキの依頼が、自動のルートまで流れないように、先のルートで拾います。

自動のルートでは、仮の予定を入れてから返事を送ります。 予定の件名に「仮」と種類のコード、説明に概算と症状の文を入れます。予定の作成に失敗したら、返事を送らずに店頭のスタッフへ回します。 下書きのルートでも、希望の日時に取れるときは仮の予定を入れ、下書きを送るまでの間に枠が埋まらないようにします。

返事には、概算が「目安」であることを必ず書きます。 実車を見て部品の交換が要れば、金額は変わります。金額の文は、メニュー表の幅をワークフローが差し込む定型の文にし、AIには書かせません。

Step9

人が確認する

店頭のスタッフが確かめるのは、下書きに回ったものです。

  1. ブレーキの下書きを先に見る … 「乗らずに押してお持ちください」が入っているかを確かめます。遠方の人には、引き取りの相談を足します
  2. 種類の根拠を見る … evidence が症状の文に合っているかを見ます
  3. 部品の在庫を見る … チェーンとタイヤは、在庫を確かめてから送ります
  4. 送る … Gmail の画面から送り、仮の予定の件名から「仮」を外します

整備士が見るのは、自分に回ってきた依頼だけです。 電動アシストと繰り返しの症状と、作業が3つ以上の依頼です。整備士は作業の合間に、時間の見立てと点検の枠のどちらで受けるかを決めます。

自動で返した分は、閉店後に件数と種類を流し見ます。 作業メニュー表を書き換えた日は、自動のルートを止めて、すべてを下書きにします。

Step10

例外に対処する

起きること対応
希望の日時に合計の時間が取れない近い枠を3つまで添えた下書きにする
7日間に枠が無い持ち込みの受付の時間を案内する下書きにし、店頭のスタッフへ
タイヤの寸法が書かれていない寸法の聞き返しを questions に入れた下書きにする
症状が書かれていない(「修理したい」だけ)diagnosis にして点検の枠を案内する
同じ人から予約の変更が届く受付の記録で前の仮の予定を引き、消してから新しい日時で探す
2件が同じ作業台の同じ時間に重なるProcess data in order で1件ずつ処理し、後の依頼は残りの空きで探す
Free/Busy で作業台のカレンダーに errors が返るその作業台を候補から外し、店頭のスタッフへ知らせる
Claude API が応答しない受付の記録に「未処理」と書き、次の実行で拾い直す

上の3行が大半を占めます。 どれもAIの誤りではなく、作業台の空きの持ち方とフォームの欄の作り方の問題です。 寸法の聞き返しが多いなら、フォームに「タイヤの側面に書かれた数字」の欄を足すほうが早く効きます。

Step11

記録を残す

  • 依頼の元の項目とメールの本文(引用を落とす前のもの)
  • 返ってきた JSON の全文と stop_reason
  • そのときの作業メニュー表の版と、出した時間と概算
  • Free/Busy を引いた日時と、選んだ枠
  • 送った返事の本文と、送り方(自動/下書き/整備士へ)
  • 当日の実際の作業と時間(整備士が作業の後に記録する)

最後の行が、この構成を育てる材料です。 diagnosis で受けた依頼が実際に何の作業だったか、目安の時間と実際の時間がどれだけ違ったかを、種類ごとに見ます。 ずれの大きい種類は、メニュー表の目安の時間を直します。

04実装レベルの3段階

最小構成:メニュー表のコードと症状を手で Claude の画面に貼り、コードと印を書かせる / 1件ごとの分類
半自動化:上記+Make で依頼を受け、メニュー表で時間と概算を出し、作業台の空きから枠を決めて仮の予定と返事を作る / 受付・分類・時間・概算・枠・仮の予定・返事
本格構成:上記+前日に予約の人へ確認の連絡を送り、当日の作業の記録から目安の時間を見直す一覧を月ごとに作る / 前日の確認と目安の見直しまで

最小構成では件数がさばけません。 月300件を1件ずつ貼るのは続きません。症状をコードに分けられるかを確かめるための段階です。 半自動化で、1件8分が3分になり、この段階が本記事の想定です。 症状の見立て、時間と概算、空き探し、仮の予定、記録が自動になり、人に残るのは、ブレーキと部品の確認が要る下書きと、整備士に回った依頼です。 本格構成で目安の時間を見直すには、当日の作業の記録が要ります。 整備士が作業の後に1行書く習慣が付いてから進めます。

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

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

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

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

AI活用について相談する

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

向いている
  1. 修理を予約制で受けていて、Web のフォームとメールで修理の予約と問い合わせが月に数百件届く自転車店・スポーツ自転車の専門店。症状の書き方がばらばらで、作業の種類と所要時間を整備士に聞かないと決められず、店頭の接客の合間に返事を書いているため、返事が夜にまとまってしまう場合。作業メニューと工賃の表がある場合。
向いていない
  1. 修理を予約なしの持ち込みだけで受けていて、作業の順番を店頭で決めている店。修理の依頼が月に数十件で、整備士がその場で答えられている場合。作業メニューと工賃の表が無く、毎回見積を作っている場合(先に表を作る必要があります)。なお、実車を見てからの診断、部品の交換の要否、保証の扱いの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月の依頼から30件を選ぶ(ブレーキ、電動アシスト、「変な音」、タイヤの寸法の無いタイヤ交換を混ぜる)
  2. 30件について、整備士が実際に行った作業を受付の記録から書き出す
  3. 作業メニュー表のコードと名前、第7章の指示を、手元の Claude の画面に貼る
  4. 30件の症状を1件ずつ貼り、コードと印を書かせる
  5. 実際の作業と照らし、diagnosis にすべきものを別の作業に当てはめていないかを見る

30件は必ずやってください。 シナリオを組む前に、決められない症状を決められないと返せるかを確かめます。

出てきた内容判断
実際の作業と同じコード、または diagnosis になったシナリオの組み立てに進む
「変な音」を特定の作業に当てはめた指示に例を足す。構成は有効
ブレーキの症状に印が付かない印の付け方を先に直す。 ここは自動にしない

3行目が出たら、ブレーキの印が直るまで自動のルートを作らないでください。 付け漏れは、効かない自転車に乗って来るよう案内することに直結します。

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

問題対策
「変な音」を特定の作業に当てはめるdiagnosis を種類に持ち、例で指示する
ブレーキの症状に印が付かない「迷えば付ける」にし、自動のルートに流さない
返事に表に無い時間や金額が入るメニュー表の時間と工賃を渡さない。金額は定型の文で差し込む
閉店後の時間に予約が入るFree/Busy に timeZone を入れ、時刻に +09:00 を付ける
同じ時間に2件の仮の予定が入るProcess data in order を有効にする
持ち込みの修理を受ける時間が無くなる予約に使ってよい時間を作業台ごとに決める
タイヤの寸法を推し量るnull にして聞き返す
コードの大文字・小文字でメニュー表が引けない小文字にそろえてから引く
予約の変更で前の仮の予定が残る受付の記録から前の予定を引いて消す
電動アシストの不具合を店で受けてしまう整備士へ回し、メーカーの点検が要るかを先に見る

上の2行が、この構成の失敗のほとんどです。 前者は作業台の予定の崩れ、後者は安全に直結します。どちらも「決められない」「迷う」を独立した答えにしてあるかで決まります。

3行目も最初に起きます。 メニュー表を丸ごと渡すと、AIは親切に時間と金額を書き添えます。 渡す列を絞るのが、いちばん確かな止め方です。

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

この構成で扱うデータ: 依頼した人の名前、メールアドレス、電話番号、自転車の種類と症状、前回の修理の記録、作業台の予定です。

  1. AIに渡すのは、症状の文とメニュー表のコードと名前だけにする … 名前と連絡先は分類に要りません。宛名と連絡先は、返事を組み立てるときにワークフローが差し込みます
  2. ブレーキの不具合の案内を、自動で送らない … 返事に「乗らずに押してお持ちください」を入れ、店頭のスタッフが確かめてから送ります。 自転車の運転者は、基準に合う制動装置を備えていない自転車を運転してはならないとされています
  3. 概算を約束にしない … 返事の金額は目安で、実車を見て変わることを必ず書きます。金額の文はAIに書かせず、定型の文に差し込みます
  4. 電動アシストの不具合は、整備士とメーカーの判断に回す … バッテリーやモーターは、店で見立ててよい範囲を整備士が決めます
  5. 受付の記録の保存期間を決める … 前回の修理を引くために残しますが、何年分を残すかを決めておきます

誤りが起きた場合のリスクは、作業の見立て違いで当日の予定が崩れることと、ブレーキの不具合のある自転車に乗って来させることの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技術仕様の確認日・参考情報

技術仕様確認日:2026-10-15/最終更新:2026-10-23
確認した内容情報源確認日
即時の Webhook のシナリオが既定で並列に処理され、Process data in order で前の実行の完了を待つこと。待ち行列の上限がクレジット1万ごとに667件・最大1万件であることMake: Webhooks2026-10-15
Google Calendar のアプリに Create an Event・Search Events・Get Free/Busy Information などがあることMake: Google Calendar2026-10-15
Google Sheets のアプリに Search Rows・Add a Row などがあることMake: Google Sheets modules2026-10-15
Gmail のアプリに Watch emails・Send an email・Create a draft email があり、Watch emails がラベルを見張れることMake: Gmail modules2026-10-15
ルーターのルートが同時ではなく1本ずつ順に処理され、フォールバックのルートを置けることMake: Router2026-10-15
Anthropic Claude のアプリに Create a Prompt と Make an API Call などがあることMake: Anthropic Claude2026-10-15
構造化出力がスキーマを output_config.format に渡して使うこと。数値の minimum・maximum などの制約に対応しないこと。文字列の enum の大文字・小文字が保証されないこと。stop_reason が refusal・max_tokens のときは出力がスキーマに合わないことがあることClaude: Structured outputs2026-10-15
freeBusy がカレンダーごとの busy を返し、timeZone の既定が UTC であること。カレンダーごとに errors が返りうることGoogle Calendar API: Freebusy: query2026-10-15
自転車の運転者は、内閣府令で定める基準に適合する制動装置を備えていないため交通の危険を生じさせるおそれがある自転車を運転してはならないこと(第63条の9第1項)e-Gov 法令API: 道路交通法2026-10-15

部品の交換の要否、保証の扱い、電動アシストの不具合の判断は、整備士とメーカーの案内に沿って行ってください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。

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

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

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

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