配達の不在・持ち戻りの記録を理由別に分類して、再配達を減らす打ち手を月次でまとめる
不在で持ち戻った荷物の記録とドライバーのメモを、決まった理由の区分に毎日分類します。月末にはエリア・時間帯・建物ごとの集計から、再配達を減らす打ち手の案をまとめます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/Power Automate/Zapier
- 対象業界
- EC/小売/物流
- 対象部門
- 物流
- 対象業務
- 分類・仕分け/集計・分析
- 主な課題
- データ分析に時間がかかる/人手が足りない/属人化している
- AIで行う処理
- 分類
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 業務課の担当者が、配送管理システムから前日分の持ち戻りの記録をCSVで書き出す
- 表計算に貼り付け、理由のコードとメモを1件ずつ読み、自分たちで決めた細かい理由を付け直す
- 月末に、エリア・時間帯・建物ごとに集計する
- 集計を見て、再配達を減らす打ち手を考え、配送センターの責任者に報告する
- 責任者が、ドライバーの配置や時間帯の組み替え、荷主や管理会社への相談を決める
- 自動毎晩、配送管理システムが当日分の持ち戻りの記録をCSVで共有ドライブに書き出す(既存の定時出力)
- 自動決まった時刻にシナリオが動き、CSVを読み込んで表に追加する
- 自動受取人の氏名・電話番号・番地より細かい住所を外し、メモの中の氏名らしい部分を伏せる
- 自動50件ずつまとめて生成AIに渡し、決まった区分への分類と、分類の確からしさを返させる
- 自動確からしさが低いもの、「分類できない」ものを確認待ちの一覧に入れる
- 人業務課の担当者が、確認待ちの一覧だけを見て区分を確定する(毎日数分)
- 自動月末に、区分×エリア×時間帯×建物の種類の集計表を作る
- 自動集計表だけを生成AIに渡し、再配達を減らす打ち手の案を、根拠の行つきで書かせる
- 人業務課の担当者が案を確かめ、配送センターの責任者に報告する
- 人責任者が打ち手を決め、翌月の集計で効果を見る
各工程の詳しい説明を読む
- 業務課の担当者が、配送管理システムから前日分の持ち戻りの記録をCSVで書き出す
- 表計算に貼り付け、理由のコードとメモを1件ずつ読み、自分たちで決めた細かい理由を付け直す
- 月末に、エリア・時間帯・建物ごとに集計する
- 集計を見て、再配達を減らす打ち手を考え、配送センターの責任者に報告する
- 責任者が、ドライバーの配置や時間帯の組み替え、荷主や管理会社への相談を決める
(a)メモを読むのに時間がかかる。 1日120件前後のメモを読み、理由を付け直すのに毎日1時間ほどかかります。忙しい日は後回しになり、月末にまとめて読むことになります。
(b)付け直す理由が担当者ごとに違う。 「オートロック、応答なし」を「入館不可」とする担当と「不在」とする担当がいます。区分の名前も、担当が替わるたびに少しずつ増えていきます。
(c)集計が月末に間に合わない。 月の最後の数日分の付け直しが終わらず、報告が翌月の半ばにずれ込みます。 その間に打ち手を決める機会を1か月失います。
(d)打ち手が感覚で決まる。 「駅前の集合住宅は不在が多い」という印象はあっても、それが時間帯の問題なのか、入館の問題なのか、宅配ボックスの問題なのかを数で示せていません。
(e)打ち手の効果が確かめられない。 夕方の便を増やした、管理会社に宅配ボックスの増設を相談した、という打ち手を採っても、翌月の集計の区分が先月と違っていれば、効いたかどうかが分かりません。 区分が揺れることが、打ち手の検証そのものを難しくしています。
- 【自動】 毎晩、配送管理システムが当日分の持ち戻りの記録をCSVで共有ドライブに書き出す(既存の定時出力)
- 【自動】 決まった時刻にシナリオが動き、CSVを読み込んで表に追加する
- 【自動】 受取人の氏名・電話番号・番地より細かい住所を外し、メモの中の氏名らしい部分を伏せる
- 【自動】 50件ずつまとめて生成AIに渡し、決まった区分への分類と、分類の確からしさを返させる
- 【自動】 確からしさが低いもの、「分類できない」ものを確認待ちの一覧に入れる
- 【人】 業務課の担当者が、確認待ちの一覧だけを見て区分を確定する(毎日数分)
- 【自動】 月末に、区分×エリア×時間帯×建物の種類の集計表を作る
- 【自動】 集計表だけを生成AIに渡し、再配達を減らす打ち手の案を、根拠の行つきで書かせる
- 【人】 業務課の担当者が案を確かめ、配送センターの責任者に報告する
- 【人】 責任者が打ち手を決め、翌月の集計で効果を見る
4番目で50件ずつにまとめるのは、呼び出しの回数を抑えるためです。 1日120件前後なら、1日の呼び出しは3回前後で済みます。
6番目で人が見るのは、全件ではありません。 確からしさの高い分類はそのまま集計に入れ、確からしさの低いものと「分類できない」ものだけを見ます。全件を見る設計にすると、1件1分の読解がほとんど残ります。
7番目の集計を生成AIにさせないのも意図してのことです。 件数を数えるのは表の集計で十分で、生成AIに数えさせると、数が合わないことがあります。
02今回想定するシステム構成
配送管理システム ── 毎晩、当日分の持ち戻りの記録をCSVで共有ドライブへ(既存の定時出力) ▼【トリガー】毎日 23:30(Make のスケジュール) Make ├──▶ CSVの読み込み、表への追加 ├──▶ 個人情報を外す・伏せる ▼ Make ── 50件ずつにまとめる ▼ Claude API ── 決まった区分への分類と確からしさ(構造化出力) ▼ Make ── 確からしさが低い・分類できない ──▶ 確認待ちの一覧 ──▶【担当者が確定】 ▼ 分類済みの表(Google スプレッドシート) ▼【トリガー】毎月1日(Make のスケジュール) 集計表(区分 × エリア × 時間帯 × 建物の種類) ▼ Claude API ── 打ち手の案(根拠の行つき) ▼ 【担当者が確かめて責任者へ報告】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make | Zapier、Power Automate |
| 生成AI | Claude API(Make の Anthropic Claude アプリから呼ぶ) | OpenAI API、Gemini API |
| 集計 | Google スプレッドシート(ピボットテーブルと関数) | Microsoft Excel |
| 保管 | Google ドライブ(CSVの受け渡し) | Microsoft SharePoint |
配送管理システムには書き込みません。 使うのは、すでにある毎晩のCSV出力です。分類した区分は別の表に持ち、元の理由のコードは書き換えません。
生成AIは、Make の Anthropic Claude アプリから呼びます。 このアプリには、プロンプトを送る Create a Prompt と、APIを直接呼ぶ Make an API Call のモジュールがあり、接続には Anthropic のコンソールで発行したAPIキーを使います。分類では構造化出力を指定したいので、Make an API Call で要求の本文を組み立てます。
表に Google スプレッドシートを使うのは、業務課がすでに集計に使っているからです。 集計表のピボットテーブルと関数は、担当者がいま作っているものをそのまま使えます。新しい画面を覚えずに、確認待ちの一覧も同じ表の別シートで扱えます。
スケジュールは Make のシナリオの設定で決めます。 定期の間隔、毎日、平日、毎週、毎月、日付の指定、手動のいずれかを選べ、毎日の設定では1つのシナリオに複数の実行時刻を持たせられます。 分類は毎日、集計と打ち手の案は毎月と、シナリオを2つに分けます。
03どうやって実装するのか
処理の起点を決める
分類のシナリオは毎日23時30分に動かします。 配送管理システムの定時出力が23時に終わるので、その後に置きます。夜のうちに分類が済めば、担当者は翌朝に確認待ちの一覧を見るだけで済みます。
配達の実績は夜遅くまで確定しないことがあります。 夜の時間帯の配達の結果が出力の後に入ると、その日の分が翌日のCSVに回ります。記録の番号で重複と抜けを見るので、どの日のCSVに入っても1回だけ分類されます。
集計と打ち手の案のシナリオは、毎月1日の朝に動かします。 前月分の確認待ちが残っている場合は、集計を始めずに担当者に知らせます。 確定していない分類が混ざった集計は、打ち手の根拠になりません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 持ち戻りの記録 | 記録の番号、配達日、配達を試みた時刻、エリアのコード、ドライバーのコード、理由のコード、メモ、再配達の回数 | 配送管理システムの毎晩のCSV |
| 時間帯の指定 | 受取人が指定した時間帯(指定なしを含む) | 同上 |
| 建物の種類 | 戸建て/集合住宅(オートロックあり・なし)/事業所 | 住所の単位で持つ建物の一覧 |
| 宅配ボックスの有無 | 建物ごとの宅配ボックス・置き配の可否 | 同上(ドライバーの申告で更新) |
| 分類の区分 | 区分の名前、定義、当てはまるメモの例 | 業務課が作る一覧 |
質を決めるのは、分類の区分の一覧と、建物の一覧です。 区分の一覧には、区分ごとの定義と、実際のメモの例を3つずつ入れます。定義だけでは、略語の多いメモを区分に当てはめられないからです。
建物の一覧は、生成AIに推させないために持ちます。 メモに「オートロック」と書かれていなくても、その建物がオートロックの集合住宅なら、集計ではそう扱えます。建物の種類はメモから推すのではなく、一覧から引きます。
| 区分 | 定義 | メモの例 |
|---|---|---|
| 不在(時間帯の指定なし) | 指定なしの荷物で、呼び出しに応答が無かった | 「応答なし」「ピンポン不在」 |
| 不在(時間帯の指定あり) | 指定の時間帯に届けたが応答が無かった | 「指定内、不在」 |
| 時間帯の指定の前に到着 | 指定の時間帯より前に着いたため持ち戻った | 「指定前、再訪」 |
| 入館できない | オートロックなどで建物に入れなかった | 「オートロック応答なし」「OL」 |
| 宅配ボックスが使えない | 満杯・故障・サイズが合わない | 「ボックス満」「BOX小」 |
| 置き配ができない | 置き配の指定が無い、または置き場所が無い | 「置き配指定なし」 |
| 住所・表札で特定できない | 住所の不備、表札なし、部屋番号なし | 「表札なし」「部屋番号不明」 |
| 受取の条件が合わない | 代金引換、本人確認、年齢確認が要る | 「代引、不在」 |
| その他 | 上のどれにも当てはまらないが、理由は読み取れる | 「犬がいて近づけず」 |
| 分類できない | メモが空、または意味が読み取れない | 「・」「x」 |
最後の2つを分けるのが大事です。 「その他」は区分を足す候補、「分類できない」はドライバーへのメモの書き方の案内の候補です。混ぜると、区分の一覧をどう育てればよいかが分からなくなります。
データの取得方法を決める
CSVは共有ドライブのフォルダから、Make のシナリオで読み込みます。 読み込んだ行は、分類済みの表とは別の「受付の表」に追加します。記録の番号を一意のキーにし、すでにある番号は追加しません。
生成AIに渡す列は5つだけです。 残りの列は分類には使わず、集計のときに表の側で記録の番号で結び付けます。
| 列 | 生成AIに渡すか | 理由 |
|---|---|---|
| 記録の番号 | 渡す | 返ってきた分類を元の記録に戻すため |
| 配達を試みた時刻、時間帯の指定 | 渡す | 「指定前」などのメモの意味を読むための文脈 |
| 理由のコード、メモ(伏せた後) | 渡す | 分類の根拠そのもの |
| エリアのコード、建物の種類 | 渡さない | 集計で使う。渡すと、メモに無い理由を建物の種類から推す |
| ドライバーのコード | 渡さない | 分類に不要。従業員の情報 |
| 受取人の氏名・電話番号・住所 | 渡さない | 個人情報。分類に不要 |
建物の種類を渡さないのは、4行目の理由のとおりです。 「オートロックの集合住宅」と分かっていると、メモが「応答なし」だけでも「入館できない」に寄せたくなります。それは集計の段階で建物の種類と掛け合わせれば分かることです。
50件ずつにまとめるのは、呼び出しの回数を抑えるためです。 Make では、配列を1件ずつの束(バンドル)に分けるのが Iterator で、公式の説明では配列の各要素が別々のバンドルとして出力されるとされています。1件ずつ生成AIを呼ぶと、その件数だけ後続のモジュールが動きます。分類は50件を1つの配列のまま渡し、返ってきた配列を Iterator で1件ずつに分けて表に書き戻します。
AIへ渡す前に整形する
- 重複の除外 … 記録の番号で、すでに分類した記録を除きます
- 個人情報を外す … 受取人の氏名・電話番号・番地より細かい住所は、生成AIに渡す列から外します
- メモの中の氏名を伏せる … 「山田様不在」のように、メモに氏名が入ることがあります。「様」「さん」の前の文字列を伏せ字にする置き換えを入れます
- 空のメモの扱い … メモが空の記録は生成AIに渡さず、理由のコードだけで「分類できない」か、コードに対応する区分を機械的に付けます
- 表記のゆれをそろえる … 全角・半角、よく使われる略語(「OL」=オートロック、「BOX」=宅配ボックス)は、区分の一覧のメモの例に入れておき、置き換えはしません
3番目は完璧にはなりません。 伏せきれない氏名が残ることを前提に、生成AIの利用の条件(入力が学習に使われないか、保存される期間)を先に確かめます(第13章)。
5番目で置き換えをしないのは、置き換えの誤りを防ぐためです。 「OL」を機械的に「オートロック」に置き換えると、別の意味で使われた「OL」まで変わります。例として示し、読み取りは生成AIに任せます。
AIに処理させる
させるのは2つです。毎日の分類と、月1回の打ち手の案です。
| させること | 入力 | 出力 |
|---|---|---|
| 分類 | 50件分の記録(番号、時刻、時間帯の指定、理由のコード、伏せたメモ)と、区分の一覧 | 記録ごとの区分、確からしさ、根拠にしたメモの語 |
| 打ち手の案 | 前月の集計表(区分×エリア×時間帯×建物の種類)と、前々月の集計表 | 打ち手の案と、根拠にした集計の行 |
打ち手の案に渡すのは集計表だけで、1件ずつの記録は渡しません。 1か月分の記録をすべて渡すと、生成AIが自分で数え直し、表の数と違う数を書くことがあります。数えるのは表、読んで案を書くのが生成AIという分担を、渡すデータの側でも守ります。
| させないこと | 理由 |
|---|---|
| 区分を新しく作ること | 月ごとの比較ができなくなる。足すのは人が一覧に足す |
| メモに無い理由を推すこと | 時刻や時間帯から「たぶん指定前に着いた」と推さない |
| 件数を数えること | 集計は表の関数で行う |
| 集計に無い数を打ち手の案に書くこと | 「約3割減る見込み」のような見積もりを書かせない |
| ドライバー個人を評価すること | 分類の目的は打ち手であり、個人の査定ではない |
2行目が、最も起きやすい逸脱です。 時間帯の指定が「19〜21時」で配達を試みた時刻が18時40分なら、生成AIは「指定前に到着」と判断したくなります。しかしメモに書かれていなければ、それは推測です。 時刻の比較で分かることは、表の関数で別の列として出します。 生成AIの分類と表の比較が食い違えば、それ自体が確かめる材料になります。
5行目も守ってください。 分類の表にはドライバーのコードが残るので、ドライバーごとの「分類できない」の割合を出すことはできます。 それはメモの書き方を案内するための数であり、評価に使うと、ドライバーはメモを書かなくなります。
指示内容を固定する
分類に使う指示です。
あなたは配送センターの業務課の補助です。
不在で持ち戻った荷物の記録を、下の【区分の一覧】のどれか1つに分類してください。
【区分の一覧】
{category_list} ← 区分の名前・定義・メモの例
【分類のしかた】
- メモと理由のコードに書かれていることだけを根拠にしてください。
- 区分の一覧に無い区分を作らないでください。
- 理由が読み取れるが、どの区分にも当てはまらない場合は「その他」にしてください。
- メモが意味をなさない、または理由が読み取れない場合は「分類できない」にしてください。
- 配達を試みた時刻と時間帯の指定を比べて、理由を推測しないでください。
「指定前」などの記載がメモに無ければ、時間帯の指定の前に到着した区分にしないでください。
- confidence は、メモの記載がその区分の定義にはっきり当てはまるなら high、
当てはまるが略語などで確かでないなら medium、迷ったなら low にしてください。
- evidence には、根拠にしたメモの語をそのまま写してください。
- 伏せ字(**)の部分を推測して補わないでください。
- 入力のすべての記録について、記録の番号を変えずに1件ずつ返してください。
【記録(50件)】
{records_json}
「時刻と時間帯の指定を比べて推測しない」を明記しないと、ほぼ確実に比べます。 生成AIにとっては親切な推論ですが、分類は「ドライバーが何を見たか」の記録であるべきです。 時刻の比較は表の側で別に行います。
「すべての記録を番号を変えずに返す」も省けません。 50件を渡して48件しか返らないことがあります。返ってきた番号と渡した番号を突き合わせ、足りなければその分だけ再度送ります。
打ち手の案に使う指示では、次の3点を厳守事項にします。 集計表にある数だけを使うこと、案ごとに根拠にした集計の行(区分・エリア・時間帯・建物の種類と件数)を示すこと、配送センターだけでできることと、荷主や建物の管理会社への相談が要ることを分けて書くことです。
出力形式を固定する
分類は、次の形のJSONで受け取ります。 Claude API の構造化出力で output_config.format に JSON スキーマを指定し、category と confidence は enum で決まった値に絞ります。
{
"results": [
{
"record_id": "20260928-0147",
"category": "入館できない",
"confidence": "high",
"evidence": "OL応答なし"
}
]
}
category を enum にするのが、区分を固定する仕組みそのものです。 区分の一覧を直したら、スキーマの enum も同じ日に直します。公式の説明では、構造化出力ではすべてのオブジェクトに additionalProperties: false が必要で、enum には文字列・数・真偽値・null が使えます。
表に書き戻すときの判定は、ワークフローの側で決めます。
| 条件 | 扱い |
|---|---|
confidence が high | そのまま分類済みの表へ |
confidence が medium | 分類済みの表へ入れ、週に1回、20件を抜き取って担当者が確かめる |
confidence が low、または「分類できない」 | 確認待ちの一覧へ |
| 返ってこなかった記録の番号 | 次の回にもう一度送る |
打ち手の案は、次の列の表で受け取ります。
| 列 | 中身 |
|---|---|
| 案 | 打ち手の内容(例:駅前エリアの夕方の便を1本、指定の時間帯の開始に合わせて遅らせる) |
| 根拠 | 集計の行(区分・エリア・時間帯・建物の種類)と件数、前々月との比較 |
| 実施できる者 | 配送センター/荷主への相談/建物の管理会社への相談 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有ドライブ | Make のモジュールで読み込む | 毎晩のCSV |
| 受付の表・分類済みの表 | Make のモジュールで行を追加・更新する | 記録と区分 |
| Claude API | Anthropic Claude アプリの Make an API Call | 分類と打ち手の案 |
| 確認待ちの一覧 | 表の別シート | 担当者が区分を確定する |
| 集計表 | 表のピボットテーブルと関数 | 月次の集計 |
| 報告 | 表とメール | 打ち手の案を責任者へ(送るのは担当者) |
配送管理システムの理由のコードは書き換えません。 分類した区分は別の表に持ちます。元のコードと付け直した区分を並べておくと、コードの選び方の案内にも使えます。
人が確認する
- 毎朝、確認待ちの一覧を見る …
lowと「分類できない」の記録です。メモを読み、区分を確定します。1日十数件、数分で終わる量を想定しています - 週に1回、
mediumを抜き取って見る … 20件を見て、誤りが多い区分があれば、区分の一覧のメモの例を足します - 月に1回、「その他」を見る … 同じ理由が何件も「その他」に入っていれば、区分を足すかどうかを業務課で決めます
- 表の比較と食い違うものを見る … 表の関数で出した「指定の時間帯より前の時刻に試みた」の列と、生成AIの分類が食い違う記録を月に1回まとめて見ます。ドライバーがメモに書き漏らしている理由の傾向が分かります
- 打ち手の案を確かめる … 根拠の行が集計表と合っているかを見て、責任者に報告します
2番目と3番目が、区分の一覧を育てる場です。 最初に作った区分の一覧は、実際のメモに合っていないところが必ずあります。区分を足すのは月に1回までにし、足した月を記録に残します。頻繁に変えると月ごとの比較が崩れます。
high を人が見ないのは、分類の誤りが1件ずつの荷物の扱いに影響しないからです。 この分類は打ち手を考えるための集計の材料で、1件の誤りは集計の中で薄まります。 ここが、1件の誤りが取引先との関係に直結する点検の業務との違いです。
例外に対処する
| 起きること | 対応 |
|---|---|
| CSVが出ていない、0行 | 分類を動かさず担当者に知らせる。翌日のCSVに2日分入っても番号で重複を除く |
| 50件を渡して返りが足りない | 返ってこなかった番号だけを次の回に送る |
| 区分の一覧に無い区分名が返る | 構造化出力の enum で起きないはずだが、起きたら確認待ちへ |
| メモに伏せきれない個人情報が残る | 見つけた置き換えの規則を足す。該当の記録は生成AIに渡し直さない |
| 「その他」が急に増える | 新しい理由(建物の工事、新しい荷主の条件など)を疑い、区分を足すか業務課で決める |
| 確認待ちが月末に残る | 集計を始めず、担当者に知らせる |
| 同じ荷物が何度も持ち戻られる | 再配達の回数の列で印を付ける。分類は毎回行い、回ごとの理由の変化を集計で見る |
| ドライバーのメモが外国語で書かれる | 区分の一覧のメモの例に加える。翻訳の工程は挟まず、そのまま分類させる |
| 生成AIが応答しない | 受付の表に残し、次の回にまとめて送る |
上から4行目は、稼働の初めによく見つかります。 ドライバーのメモの書き方は人それぞれで、「山田様」だけでなく「ヤマダ」「山田さん宅」のような書き方があります。見つけるたびに置き換えの規則を足していきます。
記録を残す
- 受け取ったCSVのファイル名と行数
- 生成AIに渡した記録(伏せた後のメモ)と、返ってきた区分・確からしさ・根拠の語
- 担当者が区分を確定・変更した記録(元の区分、確定した区分、日付)
- 区分の一覧の版と、区分を足した月
- 月次の集計表と、打ち手の案、責任者が採った打ち手
- 採った打ち手の翌月以降の、その区分の件数の変化
最後の行が、この構成の目的です。 打ち手を採った翌月に、その区分の件数がどう動いたかを見ます。動かなければ、打ち手が効いていないか、区分の分け方が打ち手に合っていません。
3つ目の記録は、区分の一覧のメモの例を足す材料にもなります。 担当者が low を確定した区分と根拠の語を並べると、生成AIが迷いやすい略語や書き方が見えてきます。
保存の期間を決めておきます。 分類済みの表には受取人の情報を入れていませんが、記録の番号から配送管理システムの記録をたどれます。集計に使い終わった記録の番号を、いつまで残すかを社内の規程に合わせて決めてください。
04実装レベルの3段階
最小構成は確かめるための段階です。 毎日120件前後の記録には使えません。 半自動化で、1件2分が1分程度になります。 分類は自動になりますが、集計と打ち手の検討が残ります。本格構成で0.6分になり、この段階が本記事の想定です。 差が大きいのは、集計と打ち手の資料づくりが、月末に集中する手作業だからです。 半自動化の段階で2か月回すと、「その他」に何が入るかが分かります。 区分を育ててから集計と打ち手の案に進むと、月ごとの比較が崩れません。
05工数削減シミュレーション
導入後 2,400件 × 0.6分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 宅配や通販の配送を担い、不在で持ち戻った荷物の記録が配送管理システムに毎日たまっている配送センター・物流会社。持ち戻りの理由がおおまかなコードと、ドライバーが端末に打ち込む自由記述のメモに分かれて残っている場合。再配達を減らす打ち手(時間帯の組み替え、置き配や宅配ボックスの案内、管理会社への相談)を、月ごとに担当者の感覚で決めている場合。
- 持ち戻りが月に数十件で、担当者が一覧を眺めれば足りる場合。ドライバーのメモが残っておらず、理由のコードしか無い場合(コードの集計で足ります)。なお、どの打ち手を採るか、荷主や管理会社にどう相談するかの判断は、配送センターの責任者が行うものであり、この構成では代替できません。
07最小構成で試す方法
- 先月の持ち戻りの記録から200件を書き出す(受取人の氏名・電話番号・住所の列は消す)
- 業務課で、分類の区分の一覧(区分の名前、定義、メモの例)を作る
- 手元の生成AIの画面に、区分の一覧と50件ずつの記録を貼り付け、「区分の一覧のどれか1つに分類してください。一覧に無い区分を作らないでください。メモに書かれていない理由を推測しないでください」と指示する
- 同じ200件を、業務課の担当者も分類する
- 生成AIと担当者の分類を並べ、食い違った記録を読む
200件は必ずやってください。 見たいのは、担当者と同じ区分に当てはめられるかと、区分の一覧の定義とメモの例が足りているかです。
| 出てきた内容 | 判断 |
|---|---|
| 担当者の分類とおおむね同じ | Make でのシナリオづくりに進む |
| 特定の区分で食い違いが多い | 区分の定義とメモの例を足す。構成は有効 |
| 担当者どうしでも食い違う | 区分の一覧が先。 定義を業務課で詰め直す |
3行目が出たら、それは大事な発見です。 人どうしで分類が揃わないなら、これまでの月次の集計も担当者によって違っていたということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 生成AIが区分を新しく作る | 構造化出力の enum で区分を固定する。一覧を直したらスキーマも直す |
| 時刻と時間帯の指定から理由を推す | 「推測しない」を明記し、時刻の比較は表の関数で別の列にする |
| 50件のうち返りが足りない | 番号を突き合わせ、足りない分だけ送り直す |
| 「その他」と「分類できない」が混ざる | 定義を分けて書き、それぞれの使い道(区分を足す/メモの書き方の案内)を決める |
| メモの氏名が伏せきれない | 置き換えの規則を育てる。利用の条件を先に確かめる |
| 区分を頻繁に変えて比較できなくなる | 区分を足すのは月に1回まで。 足した月を記録する |
| 集計を生成AIにさせて数が合わない | 集計は表の関数。生成AIには集計表を渡すだけ |
| 打ち手の案が一般論になる | 根拠の行を必須にし、集計に無い数を書かせない |
| ドライバーの評価に使われる | 分類の目的を最初に周知する。評価に使うとメモが書かれなくなる |
上の2行が、この構成の失敗のほとんどです。 どちらも生成AIが「気を利かせて」区分や理由を作るところから始まります。区分は人が決め、理由はメモから読むだけという線を、スキーマと指示の両方で守ります。
最後の行は、仕組みではなく運用で起きます。 ドライバーごとの数が表に出ると、評価に使いたくなる人が出てきます。分類の精度はドライバーのメモに頼っているので、評価に使った時点で、この構成は材料を失います。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 配達の記録、受取人の住所と時間帯の指定、ドライバーのメモ、ドライバーのコードです。受取人の氏名・電話番号・住所は個人情報、ドライバーのコードは従業員の情報です。
- 生成AIに渡す列を絞る … 分類に要るのは、時刻、時間帯の指定、理由のコード、メモだけです。受取人の氏名・電話番号・住所は渡しません
- メモの中の氏名を伏せる … 置き換えの規則で伏せ、伏せきれないことがある前提で、生成AIの利用の条件を確かめます
- 荷主の情報を外に出さない … 荷主ごとの件数は、荷主との契約で扱いが決まっていることがあります。打ち手の案で荷主の名前を出すかどうかを、先に決めます
- ドライバーの評価に使わない … 分類の表をドライバーごとの査定の資料に流用しないことを、業務課と責任者で決めて周知します
- 打ち手の実施を自動にしない … 案は責任者が決めます。荷主や管理会社への相談の連絡を、自動で送らないでください
- 表の閲覧権限を絞る … 分類済みの表と確認待ちの一覧は、業務課と責任者だけが見られるようにします。ドライバーのコードが入っている表を、全社の共有フォルダに置かないでください
国の施策としても、再配達を減らす取り組みが進められています。国土交通省のページでは、時間帯の指定の活用、配送事業者のアプリやメールによる通知の活用、コンビニ受取・駅の宅配ロッカー・置き配などの多様な受取方法の活用が呼びかけられており、宅配便の再配達率のサンプル調査は平成29年10月から年2回(4月と10月)行われています。 自社の区分をこれらの受取方法と対応させておくと、荷主への相談の材料になります。
誤りが起きた場合のリスクは、効かない打ち手に人手を割くことと、個人情報を外部に渡しすぎることの2つです。 前者は区分が揺れると起き、後者は渡す列を絞らないと起きます。
10まず何から始めるか
1週目:区分の一覧を作る
業務課の担当者が、先月の記録からメモを100件読み、区分の名前・定義・メモの例の一覧を作ります。「その他」と「分類できない」の使い分けもこのときに決めます。
2週目:200件で試す
受取人の情報を消した200件を、生成AIと担当者の両方で分類し、食い違いを読みます。担当者どうしでも揃わない区分があれば、定義を詰め直します。
3週目:建物の一覧を作る
管轄の集合住宅と事業所について、オートロックの有無、宅配ボックスの有無、置き配の可否を一覧にします。ドライバーに申告してもらう形で始めます。すべての建物をそろえる必要はありません。持ち戻りの多い上位100棟から埋めれば、集計の大半を覆えます。
4週目:毎晩の分類をつなぐ
Make で毎晩のCSVを読み、個人情報を外し、50件ずつ生成AIで分類して表に書き戻すところまで作ります。この時点では打ち手の案は出さず、確認待ちの一覧と抜き取りの確認だけを回します。
2か月目: 月次の集計表を作り、「その他」の中身を見て区分を1回だけ見直します。3か月目以降: 打ち手の案を足し、1件2分が何分になったかを実測します。採った打ち手の翌月に、その区分の件数の変化を追えるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| シナリオのスケジュールの種類(定期の間隔、1回、毎日、平日、毎週、毎月、日付の指定、手動)。毎日の設定で複数の実行時刻を持たせられること。最小の間隔がプランによること | Make Help Center: Schedule a scenario | 2026-09-29 |
| Anthropic Claude アプリに Create a Prompt と Make an API Call などのモジュールがあり、接続にAPIキーを使うこと | Make Apps: Anthropic Claude | 2026-09-29 |
| Iterator が配列を一連のバンドルに変え、配列の各要素が別々のバンドルとして出力されること | Make Help Center: Iterator | 2026-09-29 |
構造化出力を output_config.format で指定すること。すべてのオブジェクトに additionalProperties: false が必要なこと。enum に文字列・数・真偽値・null が使えること | Claude Docs: Structured outputs | 2026-09-29 |
| 宅配便の再配達率のサンプル調査が平成29年10月から年2回(4月と10月)行われていること。時間帯の指定、通知のツール、コンビニ受取・駅の宅配ロッカー・置き配などの多様な受取方法の活用が呼びかけられていること | 国土交通省: 宅配便の再配達削減に向けて | 2026-09-29 |
どの打ち手を採るか、荷主や管理会社にどう相談するかは、配送センターの責任者が決めてください。 本記事は公開されている製品のドキュメントと国土交通省のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0329)についてのご相談はこちらから。
