貸切バス会社に届く見積依頼のメールとフォームから、行程・日時・人数・乗降地を整理して、届出の運賃表による見積の下書きと確認事項の返信案を作る
貸切バスの見積依頼のメールとフォームから、利用日・行程・配車地・人数・車種の希望を区間ごとに書き出します。距離と時間の目安と届出の運賃表で見積の下書きを作り、足りない情報を聞き返す返信案を添えます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- その他/物流
- 対象部門
- 営業
- 対象業務
- データ入力・転記/書類作成
- 主な課題
- 入力作業が多い/問い合わせが多い/営業フォローが追いつかない
- AIで行う処理
- 抽出
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 代表のアドレスに届いた依頼のメールとフォームの通知を開く
- 本文から、利用日、配車地と時刻、立寄地、到着地、帰着の時刻、人数、車種の希望を書き出す
- 地図のサービスで、営業所から配車地、立寄地の間、到着地から営業所までの距離と時間を調べる
- 届出の運賃表の時間単価とキロ単価を当てて、時間制運賃とキロ制運賃を出し、料金と実費を足す
- 書かれていない項目を並べ、確認事項の返信を書く
- 見積の台帳に書き、配車の表で車両の空きを確かめる
- 自動代表のアドレスに届いた依頼のメールとフォームの通知に、Gmail のフィルタで「見積依頼」のラベルが付く
- 自動ワークフローがラベルの付いたメールを拾い、本文を整える
- 自動AIが、利用日・区間ごとの行程・人数・車種の希望・依頼者の情報を根拠つきで書き出す
- 自動規則で、足りない項目と、車種・台数の候補を決める
- 自動区間ごとに、地図のAPIで走行距離と時間の目安を求める(営業所からの回送の区間を含む)
- 自動見積の計算シートに値を書き込み、届出の運賃表の式で時間制運賃・キロ制運賃・料金を出す
- 自動確認事項の返信案をスレッドに下書きとして置く
- 人営業が、区間の表と根拠を照らし、距離と時間の目安をバスの走り方に合わせて直す
- 人運行管理が、交替運転者の要否と配車の空きを確かめる
- 人営業が、見積を確定して返信する
各工程の詳しい説明を読む
- 代表のアドレスに届いた依頼のメールとフォームの通知を開く
- 本文から、利用日、配車地と時刻、立寄地、到着地、帰着の時刻、人数、車種の希望を書き出す
- 地図のサービスで、営業所から配車地、立寄地の間、到着地から営業所までの距離と時間を調べる
- 届出の運賃表の時間単価とキロ単価を当てて、時間制運賃とキロ制運賃を出し、料金と実費を足す
- 書かれていない項目を並べ、確認事項の返信を書く
- 見積の台帳に書き、配車の表で車両の空きを確かめる
(a)書き出しに時間がかかる。 2番は、文章で書かれた行程を、区間の表に直す作業です。「〇〇小学校 8:00発 → △△水族館(見学2時間)→ 昼食は□□ドライブイン → 16:00ごろ学校着」のような依頼を、配車地・立寄地・到着地と時刻の並びに直します。依頼によっては、2日目の行程が別の段落に書かれています。
(b)距離と時間の調べ物が多い。 3番は区間ごとに地図を引き直すため、立寄地が多い行程ほど時間がかかります。営業所からの回送の区間を忘れると、キロ制運賃が少なく出ます。
(c)返事が遅れて、他社に決まる。 依頼が重なる時期は、受けてから見積を返すまで2〜3日かかります。同じ依頼を複数社に出している依頼者は、先に返事が来た会社で話を進めます。
(d)聞き返す項目が担当によって違う。 帰着の時刻を聞く担当もいれば、自分で「17時」と置いて計算してしまう担当もいます。置いた値が依頼者の考えと違うと、受注の後で運賃が変わり、もめごとになります。
- 【自動】 代表のアドレスに届いた依頼のメールとフォームの通知に、Gmail のフィルタで「見積依頼」のラベルが付く
- 【自動】 ワークフローがラベルの付いたメールを拾い、本文を整える
- 【自動】 AIが、利用日・区間ごとの行程・人数・車種の希望・依頼者の情報を根拠つきで書き出す
- 【自動】 規則で、足りない項目と、車種・台数の候補を決める
- 【自動】 区間ごとに、地図のAPIで走行距離と時間の目安を求める(営業所からの回送の区間を含む)
- 【自動】 見積の計算シートに値を書き込み、届出の運賃表の式で時間制運賃・キロ制運賃・料金を出す
- 【自動】 確認事項の返信案をスレッドに下書きとして置く
- 【人】 営業が、区間の表と根拠を照らし、距離と時間の目安をバスの走り方に合わせて直す
- 【人】 運行管理が、交替運転者の要否と配車の空きを確かめる
- 【人】 営業が、見積を確定して返信する
8番目と9番目は省けません。 地図のAPIの時間は乗用車の走り方による目安で、バスの所要時間とは違います。 交替運転者を付けるかは、運転者の拘束時間や運転時間の基準に関わる、運行管理者の判断です。見積の金額は、この2つを通ってから決まります。
返信案に金額を入れないのも、同じ理由です。 返信案は、受付のお礼と確認事項だけにします。確定前の金額を依頼者に送ると、それが約束として扱われます。
02今回想定するシステム構成
依頼者 ── 代表のアドレスへメール/Webのフォーム(通知が代表のアドレスへ) ▼ Gmail のフィルタで「見積依頼」のラベル ▼【トリガー】Gmail:Watch emails(ラベルを指定) Make のシナリオ ├──▶ Claude API(Make an API Call):利用日・区間・人数・車種の書き出し ├──▶ Router:足りない項目の有無で分岐 │ ├ 区間がそろった → 距離と時間の目安へ │ ├ 区間が欠けている → 確認事項の返信案だけ │ └ フォールバック → 営業へ ├──▶ HTTP:Make a request(Routes API。区間ごとに距離と時間) ├──▶ Google Sheets:Add a Row(見積の計算シート。運賃表の式で計算) ├──▶ Google Sheets:Search Rows(計算結果を読む) └──▶ Gmail:Create a draft email(確認事項の返信案をスレッドに) ▼【人】営業が目安を直し、運行管理が配車と交替運転者を確かめる
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make(シナリオ。Gmail、Google Sheets、HTTP、Router) | Zapier、n8n、Power Automate |
| 生成AI | Claude API(Messages API、構造化出力) | OpenAI API、Gemini API |
| 地図 | Google Maps Platform の Routes API(computeRoutes) | 自社で使っている地図のサービス |
| 保管 | Google スプレッドシート(届出の運賃表・見積の計算シート・見積の台帳・車両の一覧) | Airtable |
新しく足すのは、シナリオと見積の計算シートです。 届出の運賃表と車両の一覧は、いまのスプレッドシートを読み取るだけです。この構成が書き込むのは、見積の計算シートと、Gmail の下書きだけです。 配車の表には書き込みません。
入口は Gmail の Watch emails です。 公式のページでは、フォルダまたはラベルを指定して見張り、送信元・件名などの絞り込みと Gmail の検索式が使え、1回に扱う件数は500以下で設定します。返信案は Create a draft email で、スレッドのIDを指定して下書きを置きます。送信のモジュールは使いません。
距離と時間は Routes API で求めます。 公式のページでは、https://routes.googleapis.com/directions/v2:computeRoutes に POST で要求を送り、X-Goog-FieldMask のヘッダーで返す項目を指定します。例では routes.duration と routes.distanceMeters を指定し、distanceMeters は常にメートルで返るとされています。Make からは HTTP の Make a request で呼びます。
運賃の式は、国土交通省の資料に沿って計算シートに書きます。 北陸信越運輸局の資料(令和6年3月)では、時間制運賃は(走行時間+2時間)×時間単価、キロ制運賃は走行キロ×キロ単価で、出庫前と帰庫後の点検などの時間として2時間(出庫前1時間・帰庫後1時間)を計上し、最低運賃を3時間とするとされています。単価は自社が届け出た額を運賃表に持ちます。
03どうやって実装するのか
処理の起点を決める
依頼のメールとフォームの通知に、Gmail のフィルタでラベルが付いたことを起点にします。 フォームの通知は送信元と件名が決まっているので、フィルタで確実に拾えます。メールの依頼は、件名や本文の語(「見積」「貸切」「バス」)で拾い、拾い漏れは担当が受信箱で見つけて手でラベルを付けます。
Watch emails は10分おきに動かし、条件は「すべて」にします。担当が先に開いて既読にしても漏れないようにするためです。 処理済みのメールには別のラベルを付け、Gmail の検索式で除きます。
同じ依頼者からの追加のメール(「人数が変わりました」など)も、同じスレッドで届きます。 スレッドのIDで見積の台帳を引き、既にある見積への追加として扱い、新しい見積を作りません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼の本文 | 依頼者、利用日、行程の文章、人数、車種の希望、予算、連絡先 | Gmail(メールとフォームの通知) |
| 届出の運賃表 | 車種ごとの時間単価・キロ単価、深夜早朝運行料金・交替運転者配置料金の扱い | 運賃表のシート(読み取りのみ) |
| 車両の一覧 | 車種、正席の数、補助席の数、台数 | 車両の一覧のシート(読み取りのみ) |
| 営業所の位置 | 出庫・帰庫の地点 | 計算シートの固定値 |
| 見積の台帳 | 同じスレッドの既存の見積 | 見積の台帳 |
質を決めるのは、行程の文章を区間に直す精度です。 配車地・立寄地・到着地と、それぞれの時刻が区間の表になっていれば、残りは式と地図の仕事です。AIに頼むのはここだけと決めておくと、どこを確認すればよいかがはっきりします。
車種の区分は、資料の定義に合わせて車両の一覧に持ちます。 同じ資料では、大型は車両の長さ9メートル以上または旅客席数50人以上、小型は長さ7メートル以下かつ旅客席数29人以下、中型はそれ以外とされています。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 新しい依頼 | Gmail(ラベルを指定した Watch emails) | 1件ずつ処理する起点 |
| 区間ごとの距離と時間 | Routes API(区間ごとに1回の要求) | キロ制運賃と時間制運賃の材料 |
| 時間単価とキロ単価 | 運賃表のシート | 計算シートの式が参照する |
| 車種と台数の候補 | 車両の一覧(Search Rows) | 人数から台数の候補を出す |
| 既存の見積 | 見積の台帳(Search Rows。スレッドのIDで引く) | 追加の連絡の扱い |
距離と時間は、区間ごとに1回ずつ求めて足します。 営業所→配車地、配車地→立寄地、立寄地→到着地、到着地→営業所、のように区間を分け、それぞれ出発地と目的地を送ります。区間ごとに残すと、営業が直すときに、どの区間の目安が外れているかが分かります。
1区間の要求は、次のような形になります。公式のページでは、地点は place ID(推奨)、緯度経度、住所の文字列などで指定できるとされています。ここでは住所の文字列で渡し、営業所や常連の配車地は place ID を台帳に持たせます。
POST https://routes.googleapis.com/directions/v2:computeRoutes
X-Goog-FieldMask: routes.duration,routes.distanceMeters
{
"origin": { "address": "(営業所の住所)" },
"destination": { "address": "(配車地。区間の表の place_text)" },
"travelMode": "DRIVE"
}
travelMode は DRIVE で、乗用車の経路と時間です。 バスが通れない道や、バスの走行に合わない時間が返ることがあるため、第7章の「人間の確認」で営業が直す前提にします。返った duration は秒の文字列なので、計算シートで時間に直します。
営業所からの回送の区間を、必ず先頭と末尾に足します。 依頼の文章には書かれていないため、AIの書き出しには含めず、ワークフローの側で足します。 キロ制運賃は出庫から帰庫までの走行キロで出すため、ここが抜けると見積が低く出ます。
AIへ渡す前に整形する
- 本文の整理 … 引用された過去のやり取りと署名を除き、新しく書かれた部分だけを渡します
- フォームの欄の分解 … フォームの通知は欄の名前と値に分け、利用日・人数・連絡先はそのまま使います。行程の欄だけを AI に渡します
- 添付の確認 … 旅行会社の行程表が添付で届くことがあります。添付があれば台帳に印を付け、この構成では営業が添付を見て区間の表を確かめます
- 既存の見積の確認 … スレッドのIDで台帳を引き、既にあれば追加の連絡として扱います
- 受信日の付加 … 「来月の第2土曜」のような書き方のために、受信日を入力に足します
2番目で行程の欄だけを渡すのは、AIが読む量を減らすためだけではありません。 利用日や人数のように欄で決まっている値まで AI に読ませると、欄の値と自由記述の値が食い違ったときに、どちらを取ったかが分からなくなります。 欄の値はそのまま使い、食い違いは規則で検知します。
AIに処理させる
させるのは、行程の文章を区間の表に直し、日時・人数・車種の希望を根拠つきで書き出すことだけです。
| 項目 | 拾い方 | 書かれていないとき |
|---|---|---|
| 利用日 | 日帰りか、何日間か。日ごとに分ける | 空 |
| 区間 | 日ごとに、配車地・立寄地・到着地を順に並べる | 欠けた地点は空 |
| 時刻 | 配車の時刻、立寄地での滞在、帰着の時刻 | 空。「夕方」はそのまま写す |
| 人数 | 乗車する人数。引率・添乗員を含むかの記載 | 空 |
| 車種・台数の希望 | 大型・中型・小型、台数、補助席の使用 | 空 |
| 荷物 | スーツケース・部活動の用具など | 空 |
| 実費の手がかり | 有料道路の利用、駐車場、乗務員の宿泊 | 空 |
| 依頼者の区分 | 旅行会社/学校/企業/団体/個人 | other |
区間の地点は、書かれた名前をそのまま写させます。 「水族館」とだけ書かれていたら、近くに水族館が2つある地域では、どちらか分かりません。AIに正式名称を補わせず、地図のAPIで引けなかった地点は聞き返す項目にします。
規則で決めること:
| 規則 | 中身 |
|---|---|
| 聞き返す項目 | 利用日、配車地、配車の時刻、到着地、帰着の時刻、人数のどれかが空 |
| 車種と台数の候補 | 人数と車両の一覧の正席の数から候補を出す。補助席は数えない |
| 深夜早朝の印 | 出庫前の点検から帰庫後の点検までに22時〜翌5時が含まれれば印を付ける |
| 長距離の印 | 1日の走行の目安が自社の基準を超えれば、交替運転者の確認の印を付ける |
深夜早朝の印は、国土交通省の資料に沿います。 同じ資料では、22時以降翌朝5時までの間に点呼点検時間や走行時間(回送時間を含む)が含まれた場合、その時間の1時間あたりの運賃と交替運転者配置料金に2割の割増を適用するとされています。印を付けるのはワークフロー、適用を確定するのは営業です。
| させないこと | 理由 |
|---|---|
| 運賃・料金の計算 | 式は決まっている。計算シートで行う |
| 地点の正式名称の補完 | 別の場所を引いて距離が外れる |
| 帰着の時刻や滞在時間の推測 | 時間制運賃が依頼者の考えとずれる |
| 交替運転者の要否の判断 | 運行管理者の判断 |
| 割引の適用の判断 | 届出の適用方法に沿って営業が決める |
指示内容を固定する
あなたは貸切バス会社の営業の担当で、見積依頼の行程の文章を、
見積の計算に使う区間の表に直す役です。
書かれていることだけを書き出してください。推測で埋めないでください。
【書き出す項目】
- days: 利用日ごとに分ける。日付の書き方はそのまま写す
- segments: 日ごとに、配車地 → 立寄地 → 到着地 の順に並べる。
各地点に、到着・出発の時刻と滞在の時間が書かれていれば添える
- passengers: 乗車する人数。引率・添乗員を含むかの記載
- vehicle_request: 車種・台数・補助席の希望
- luggage: 荷物
- expense_hints: 有料道路・駐車場・乗務員の宿泊についての記載
- requester_type: agency / school / company / group / individual / other
【厳守事項】
- 書かれていない項目は空にしてください。
- 地点の名前は書かれたとおりに写してください。正式名称に直したり、
住所を補ったりしないでください。
- 「夕方」「お昼ごろ」「2時間くらい」は、そのまま写してください。
時刻や分に直さないでください。
- 帰着の時刻が書かれていないとき、到着地や立寄地の時刻から
推し量らないでください。
- 運賃・料金・距離を計算しないでください。
- 各項目の evidence に、根拠にした文をそのまま写してください。
- 本文に複数の案(A案・B案など)があれば、案ごとに分けてください。
【受信日】{received_date}
【フォームの欄の値】{form_fields}
【行程の文章】{itinerary_text}
「時刻や分に直さない」を書かないと、「夕方」が「17:00」に、「2時間くらい」が「120分」になります。 その値で時間制運賃が出ると、依頼者が18時に戻るつもりだったとき、見積が1時間分低く出ます。 写したまま残せば、規則が「帰着の時刻が空」と判定し、聞き返す項目に入ります。
「案ごとに分ける」は、学校の依頼に多い書き方への対策です。 「雨天の場合は〇〇へ変更」のような書き方があると、区間が混ざります。案ごとに分けておけば、営業が案ごとに見積を出すかを決められます。
出力形式を固定する
{
"message_id": "",
"requester_type": "agency | school | company | group | individual | other",
"plans": [
{
"plan_label": "",
"days": [
{
"date_text": "",
"segments": [
{ "seq": 1, "role": "pickup | stop | destination",
"place_text": "", "arrive_text": "", "depart_text": "",
"stay_text": "", "evidence": "" }
],
"return_time_text": ""
}
]
}
],
"passengers": { "value": "", "includes_staff": "", "evidence": "" },
"vehicle_request": { "value": "", "evidence": "" },
"luggage": { "value": "", "evidence": "" },
"expense_hints": [{ "value": "", "evidence": "" }]
}
1つ目の理由は、segments をそのまま Routes API の要求に変えられることです。 seq の順に、前の地点を出発地、次の地点を目的地として要求を作ります。先頭と末尾に営業所の区間を足すのはワークフローの側です。
2つ目は、_text の項目が空かどうかで聞き返す項目が決まることです。 AIに「何を聞くべきか」を考えさせないため、聞き返す項目が担当によってぶれません。
3つ目は、plans で案を分けられることです。 案ごとに計算シートの行を分けます。
計算シートには、区間ごとの距離(km)と時間、合計の走行キロと走行時間、車種と台数の候補、深夜早朝と長距離の印を書き込みます。時間制運賃・キロ制運賃・料金の列は、シートの式が運賃表を参照して出します。 式は、時間制運賃が(走行時間+2時間)×時間単価(3時間を下回るときは最低運賃)、キロ制運賃が走行キロ×キロ単価で、端数の扱いは自社の届出の運賃表の定めに合わせます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Gmail | Watch emails(ラベルを指定) | 依頼を拾う |
| Claude API | Make an API Call(Anthropic Claude) | 区間と項目の書き出し |
| Routes API | HTTP の Make a request(POST、X-Goog-FieldMask) | 区間ごとの距離と時間 |
| 見積の計算シート | Add a Row/Search Rows | 値を書き込み、式の結果を読む |
| 見積の台帳 | Add a Row | 依頼ごとに1行 |
| Gmail | Create a draft email(スレッドのIDを指定) | 確認事項の返信案 |
Routes API の要求は、返す項目を routes.duration,routes.distanceMeters に絞ります。 経路の線などの要らない項目を返させないためです。distanceMeters はメートルで返るので、計算シートで km に直します。
返信案は、受付のお礼と確認事項だけです。 金額は入れません。確認事項は、規則で決めた聞き返す項目を、依頼者が答えやすい順(利用日、人数、配車地と時刻、帰着の時刻、立寄地の名前)に並べます。
人が確認する
- 区間の表と根拠を照らす …
evidenceと依頼の本文で、地点の順と時刻が合っているかを見ます - 距離と時間の目安を直す … Routes API の時間は乗用車の走り方による目安です。バスの速度、休憩、駐車場での乗降の時間を足して直します
- 運行管理が確かめる … 長距離の印と深夜早朝の印のある見積は、交替運転者の要否と配車の空きを運行管理が確かめます
- 見積を確定する … 実費(有料道路・駐車場・乗務員の宿泊)と割引の扱いを決め、金額を確定します
- 返信案を直して送る … 確認事項の返信案を直し、確定した見積を添えて返します
2番目を省かないでください。 地図の目安のまま時間制運賃を出すと、実際の運行より短い時間で見積が出ます。 営業所の経験で、区間の種類(高速道路・山道・市街地)ごとの補正の目安を持っておくと、直す時間が短くなります。
3番目は、見積の段階で行います。 受注の後で交替運転者が要ると分かると、交替運転者配置料金が加わり、依頼者に見積の出し直しを頼むことになります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 地点が地図で引けない、または複数の候補がある | その区間の距離を空にし、確認事項に地点の確認を入れる |
| 区間が欠けている | 計算せずに、確認事項の返信案だけを作る |
| 人数が車両の一覧のどの組み合わせにも収まらない | 営業へ。他社との共同の運行などは営業が判断 |
| 添付の行程表だけで本文に行程が無い | 営業へ。添付を見て区間の表を作る |
| 同じスレッドで追加の連絡が届く | 既存の見積に追記し、変わった項目を営業に示す |
| 複数の案がある | 案ごとに計算シートの行を分ける |
| 利用日が過ぎている、または当日・翌日 | 営業へすぐ知らせる。計算より電話が先 |
| Routes API が応答しない | 距離を空にして営業へ。次の実行でやり直す |
| 計算した金額が届出の下限額を下回る | 計算シートで印を付け、営業の責任者へ。式か単価の誤りをまず疑う |
AIの応答が refusal や上限で切れた | ラベルを残し、次の実行でやり直す |
7行目は、急ぎの例外です。 当日や翌日の依頼は、配車の空きを先に確かめないと答えられません。ワークフローが計算を待たずに、営業のチャットへ知らせます。
記録を残す
- 元のメールとフォームの通知(Gmail に残る)、処理済みのラベル
- AIの出力の JSON の全文
- 区間ごとの Routes API の距離と時間、営業が直した後の距離と時間
- 計算シートの行(そのときの運賃表の版を含む)
- 確定した見積の金額と、受注したかどうか
- 運行管理の確認の結果(交替運転者の要否)
営業が直した距離と時間の記録は、補正の目安を作る材料になります。 区間の種類ごとに、地図の目安とバスの実際の差がどれくらいかが分かります。
受注したかどうかを残すのは、返事までの時間と受注の関係を見るためです。 返事が早い見積ほど受注しているなら、この構成の効き目がそこに出ます。
04実装レベルの3段階
半自動化が本記事の想定です。 1件20分が6分になります。残るのは、区間の表と根拠の照らし合わせ、距離と時間の補正、実費と割引の確定、返信の送信です。 本格構成で効くのは、補正の記録です。 半自動化で数か月、営業が直した距離と時間がたまると、区間の種類ごとの補正の目安が出せます。配車の表との照合は、表の形式がそろっていることが前提です。
05工数削減シミュレーション
導入後 300件 × 6分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 大型・中型・小型の貸切バスを合わせて十数台以上持ち、旅行会社・学校・企業・地域の団体から、メールとWebのフォームで月に数百件の見積依頼を受けている貸切バス事業者。営業の担当が依頼のメールを読んで行程を書き出し、地図で距離と時間を調べて運賃表で計算し、確認事項の返信を書いている場合。届出の運賃・料金の表をスプレッドシートで持てる場合。
- 見積依頼が月に数十件で、担当1名が電話で聞き取りながら回せている場合。依頼の大半が決まった旅行会社からの定型の書式で届き、すでに予約の仕組みに取り込まれている場合。依頼の多くが電話で、メールやフォームで届くものが少ない場合。なお、配車の可否、交替運転者を付けるか、運行の計画が法令や社内の基準に合うかの判断は運行管理者が行うもので、この構成では代替できません。
07最小構成で試す方法
- 先月の見積依頼から30件を選ぶ(学校と地域の団体の依頼を半分以上入れる)
- 手元のAIサービスの画面に、行程の文章を1件ずつ貼り、第7章の指示で区間の表を作らせる
- 当時の営業の書き出しと、区間の順・地点・時刻を突き合わせる
- 空になった項目が、当時営業が聞き返した項目と一致しているかを見る
- 5件だけ、地図のサービスで区間ごとの距離を引き、当時の見積の走行キロと比べる
3番目と4番目が、この試行で確かめることです。 区間の表がそろい、空の項目が聞き返す項目になるなら、残りは式と地図の仕事です。
| 出てきた内容 | 判断 |
|---|---|
| 区間の順と地点が当時の書き出しと一致した | ワークフローの連携に進む |
| 「夕方」が時刻に直された | 指示の書き方で直る。構成は有効 |
| 地点の名前が曖昧で、区間の表が作れない依頼が多い | フォームの行程の欄が先。 配車地・立寄地・到着地の欄を分ける |
3行目のときは、フォームを直します。 自由記述の1欄を、日ごとの配車地・立寄地・到着地と時刻の欄に分けると、AIが読む前に区間がそろいます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「夕方」が17:00に直される | 写させる。時刻への直しを禁じる |
| 地点の正式名称が補われ、別の場所の距離が出る | 書かれたとおりに写させ、引けない地点は聞き返す |
| 回送の区間が抜けて見積が低く出る | 営業所の区間はワークフローが先頭と末尾に足す |
| 地図の時間のままバスの見積が出る | 乗用車の目安。営業が補正する工程を省かない |
| 雨天の案が行程に混ざる | 案ごとに分けさせる |
| フォームの欄と本文の値が食い違う | 欄の値はそのまま使い、食い違いは規則で検知する |
| 交替運転者の要否が受注後に分かる | 長距離の印を付け、見積の段階で運行管理が確かめる |
| 最低運賃の3時間が当たらない | 式に最低運賃を入れる |
| 確定前の金額が返信に入る | 返信案は確認事項だけ。金額は営業が確定後に |
| 追加の連絡で見積が二重にできる | スレッドのIDで台帳を引く |
上の3行は、見積の金額がずれる失敗です。 どれも、依頼者の考えと違う運行を前提に金額が出ることにつながり、受注の後のもめごとになります。
4行目と7行目は、運行の安全に関わる確認を飛ばす失敗です。 地図の目安とAIの書き出しは見積を早く出すための材料で、運行の計画を決めるものではありません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 依頼者の団体名・担当者の氏名・電話番号・メールアドレス、行程(どこへ、いつ、何人で行くか)です。学校の依頼では、児童・生徒の人数と行き先が含まれます。
- AIに渡すのは行程の文章だけにする … 依頼者の氏名・電話番号・メールアドレスはフォームの欄やメールのヘッダーから取り、AIには渡しません。 行程の文章に署名が残らないよう、前処理で除きます
- 学校の依頼の行程を、社外へ出さない … いつ、どこへ、何人の児童・生徒が移動するかは、外に出してはいけない情報です。見積の台帳と計算シートの閲覧者を営業と運行管理に絞ります
- 地図のAPIに渡すのは地点の名前だけにする … 依頼者の名前や人数は渡しません
- 確定前の金額を送らない … 返信案は確認事項だけにし、金額は営業が確定してから送ります
- 運賃の下限を割らない … 国土交通省の資料では、届け出た運賃の下限額を下回る割引は認めないとされ、運送申込書・運送引受書には下限額の記載が求められています。値引きの判断は営業の責任者が行い、計算シートで下限額を下回る金額に印を付けます
- 運行の判断を AI に寄せない … 交替運転者の要否、配車の可否は運行管理者が決めます
誤りが起きた場合のリスクは、依頼者の考えと違う行程で見積が出ることと、運行の安全に関わる確認が見積の段階で抜けることの2つです。 前者は書かれていない値を空のまま聞き返す設計で、後者は印を付けて運行管理に回す設計で防ぎます。
10まず何から始めるか
1週目:届出の運賃表を計算シートの式に落とす
車種ごとの時間単価・キロ単価、最低運賃、点検の2時間、深夜早朝の割増、交替運転者配置料金を、自社の届出の適用方法どおりに式にします。過去の見積10件を式で計算し直し、当時の金額と合うかを確かめます。
2週目:30件で試す
第8章の手順で、行程の文章を区間の表にします。「夕方」が時刻に直されていないか、地点の名前が補われていないかを最優先で見ます。
3週目:フォームとフィルタを直す
Webのフォームの行程の欄を、日ごとの配車地・立寄地・到着地と時刻の欄に分けます。Gmail に「見積依頼」のラベルのフィルタを作ります。
4週目:受付から区間の表までをつなぐ
Make で Gmail のラベルを見張り、区間の表と聞き返す項目を見積の台帳に書き出すところまで作ります。この時点では距離と金額を出さず、区間の表だけを営業が見ます。
2か月目: Routes API と計算シートを足し、見積の下書きを出します。3か月目以降: 営業の補正の記録を読み、区間の種類ごとの補正の目安を作ります。依頼が届いた当日のうちに確認事項の返信が出るようになり、受注の記録と照らせるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Watch emails がフォルダまたはラベルを指定して見張り、送信元・件名などの絞り込みと Gmail の検索式が使え、1回の件数が500以下であること。Create a draft email がスレッドのIDを指定でき、送らずに下書きを作ること | Make: Gmail modules | 2026-10-14 |
| Add a Row が表の末尾に行を足すこと。Search Rows がフィルタに合う行を返し、Limit で件数の上限を決めること | Make: Google Sheets modules | 2026-10-14 |
| ルートが1本ずつ順に処理され、フォールバックのルートを置けること | Make: Router | 2026-10-14 |
| Anthropic Claude のアプリに Create a Prompt と Make an API Call があり、構造化出力の設定の記載が無いこと | Make: Anthropic Claude | 2026-10-14 |
構造化出力が output_config.format に JSON スキーマを指定し、応答の本文でスキーマに沿った JSON を返すこと。拒否や max_tokens のときはスキーマに合わないことがあること | Claude API: Structured outputs | 2026-10-14 |
| HTTP の Make a request で JSON などの本文を送れ、応答を解析して項目を対応付けられること。タイムアウトが1〜300秒であること | Make: HTTP | 2026-10-14 |
computeRoutes の URL と POST での要求。X-Goog-FieldMask で返す項目を指定すること。distanceMeters が常にメートルで返り、duration が「165s」のような秒の文字列で返ること。travelMode に DRIVE を指定する例 | Google Maps Platform: Compute a route | 2026-10-14 |
地点を place ID(推奨)、緯度経度、住所の文字列などで指定でき、住所は "address" で渡せること | Google Maps Platform: Specify locations | 2026-10-14 |
| 貸切バス事業者が運賃・料金を届け出て、届け出た運賃・料金で運行すること。時間・キロ併用制で、時間制運賃が(走行時間+2時間)×時間単価、キロ制運賃が走行キロ×キロ単価であること。最低運賃が3時間であること。車種区分の定義。下限額を公示する方式への見直し。22時〜翌5時の深夜早朝運行料金が2割の割増であること。割引で届け出た下限を下回れないこと。運送引受書に下限額の記載が求められること | 国土交通省 北陸信越運輸局: 貸切バスの運賃・料金の見直しについて(令和6年3月) | 2026-10-14 |
運賃・料金の単価と適用方法は、自社が届け出た内容と、管轄の地方運輸局の公示を確かめてください。 本記事は公開されている資料で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1549)についてのご相談はこちらから。
