出荷済みの荷物の配送状況を毎日見回り、遅延や持ち戻りを顧客から問い合わせが来る前に拾う
出荷済みの荷物の配送状況を毎日見回り、遅延・持ち戻り・住所不明などの例外が出た荷物を拾います。AIが受注と顧客を調べて、顧客への連絡文案と社内チケットの下書きまで作り、荷物ごとの調べ物と文面作りが減ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- EC/商社/小売
- 対象部門
- カスタマーサポート/物流
- 対象業務
- 内容確認・チェック/問い合わせ対応
- 主な課題
- 人手が足りない/問い合わせが多い/期限・対応漏れが起きる
- AIで行う処理
- エージェント
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 顧客から「届かない」「まだ来ない」という問い合わせを受ける
- 注文番号から受注管理システムで追跡番号を調べる。1つの注文で荷物が複数に分かれていれば、全部を調べる
- 運送会社の管理画面か追跡ページで、荷物ごとの状況を確かめる
- 状況の言い回しから、持ち戻りか、遅れか、住所の問題かを見極める
- お届け日の指定やギフトの有無、住所の入力内容を受注から確かめる
- 顧客への返信を書く。住所の確認が要るなら、その旨を書く
- 運送会社への照会や再送の手配が要るものは、社内チケットに起票する
- 自動毎朝と昼過ぎの決まった時刻にワークフローが動き、運送会社の配送状況データと当日までの出荷実績を取り込む
- 自動運送会社ごとの状況の言い回しを、社内の共通の区分に置き換える
- 自動持ち戻り・住所不明・破損・長時間の未更新・お届け予定日の超過を、規則で拾い出す
- 自動例外台帳と突き合わせ、新しく出たものと、前回から状況が変わったものだけを残す
- 自動残った荷物ごとに、AIエージェントが受注・顧客・同梱の状況・問い合わせ履歴を、必要なものだけ照会する
- 自動エージェントが、例外の種類、影響する注文と顧客、連絡の要否、対応先を組み立て、連絡文案を作る
- 自動出力を規則で点検し、ヘルプデスクに下書き、社内チケット管理に起票案を置く
- 人担当者が、連絡が要ると出たものの文案を確かめて送る
- 人運送会社への照会と再送の手配を行う
- 【人/自動】 対応の結果を例外台帳に残す
各工程の詳しい説明を読む
- 顧客から「届かない」「まだ来ない」という問い合わせを受ける
- 注文番号から受注管理システムで追跡番号を調べる。1つの注文で荷物が複数に分かれていれば、全部を調べる
- 運送会社の管理画面か追跡ページで、荷物ごとの状況を確かめる
- 状況の言い回しから、持ち戻りか、遅れか、住所の問題かを見極める
- お届け日の指定やギフトの有無、住所の入力内容を受注から確かめる
- 顧客への返信を書く。住所の確認が要るなら、その旨を書く
- 運送会社への照会や再送の手配が要るものは、社内チケットに起票する
(a)気づくのが遅い。 顧客から連絡が来る時点で、荷物はすでに何日も止まっていることがあります。住所不明の荷物は運送会社の営業所で保管されていますが、保管には期限があります。 期限が過ぎると荷物は戻ってきて、再送の費用と日数がかかります。先に気づいていれば、住所を確かめるだけで済んだ荷物です。
(b)荷物から注文にたどり着くのに手間がかかる。 運送会社の画面は追跡番号で、受注管理システムは注文番号で動いています。1つの注文が2個口に分かれている、1個の荷物に2つの注文が同梱されている、といった場合、どの顧客のどの注文が影響を受けるかを正しく言うには、両方を突き合わせる必要があります。
(c)連絡すべきかの線引きが人による。 持ち戻りをすべて連絡する担当者もいれば、何もしない担当者もいます。お届け日を指定したギフトの遅れを見落とすのも、その線引きが決まっていないからです。
(d)問い合わせを受けてからでは、対応が重くなる。 顧客はすでに不安になっていて、返信は謝罪から始まります。同じ遅れでも、先に知らせるかどうかで受け取り方が変わります。
- 【自動】 毎朝と昼過ぎの決まった時刻にワークフローが動き、運送会社の配送状況データと当日までの出荷実績を取り込む
- 【自動】 運送会社ごとの状況の言い回しを、社内の共通の区分に置き換える
- 【自動】 持ち戻り・住所不明・破損・長時間の未更新・お届け予定日の超過を、規則で拾い出す
- 【自動】 例外台帳と突き合わせ、新しく出たものと、前回から状況が変わったものだけを残す
- 【自動】 残った荷物ごとに、AIエージェントが受注・顧客・同梱の状況・問い合わせ履歴を、必要なものだけ照会する
- 【自動】 エージェントが、例外の種類、影響する注文と顧客、連絡の要否、対応先を組み立て、連絡文案を作る
- 【自動】 出力を規則で点検し、ヘルプデスクに下書き、社内チケット管理に起票案を置く
- 【人】 担当者が、連絡が要ると出たものの文案を確かめて送る
- 【人】 運送会社への照会と再送の手配を行う
- 【人/自動】 対応の結果を例外台帳に残す
3番目を規則にしているのは、見つけることにAIは要らないからです。 状況が「持ち戻り」か、予定日を過ぎたかは、データを見れば機械的に決まります。AIを使うのは5番目と6番目、見つけた後の調べ物と判断の下書きです。
4番目がないと、同じ荷物が毎回上がってきます。 持ち戻りの荷物は翌日も持ち戻りのままです。変化があったときだけ人に見せます。
02今回想定するシステム構成
【トリガー】Schedule Trigger(毎日 8:30/13:30) ▼ n8n ── 配送状況データの取り込み(運送会社ごと) │ 出荷実績(受注管理システム)の取り込み ├──▶ 状況の言い回しを共通区分へ置き換え ├──▶ 例外の拾い出し(規則) ├──▶ 例外台帳との突き合わせ(新規・変化のみ) ▼ n8n AI Agent ノード(Tools Agent)+ Claude API │ 道具(すべて読み取り専用) │ ① 追跡番号から受注を引く ② 注文の他の荷物を引く │ ③ 顧客の問い合わせ履歴を引く ④ 連絡の方針を引く ▼ Structured Output Parser ── 決まった形のJSONで受け取る ▼ n8n ── 出力の点検(規則) ├──▶ ヘルプデスク:顧客への連絡文案(下書き) ├──▶ 社内チケット:運送会社への照会・再送の起票案 └──▶ 例外台帳:結果を記録 ▼ 【人が確認して送る・手配する】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n(AI Agent ノード) | Make、Zapier、Power Automate |
| 生成AI | Claude API(n8n の Anthropic Chat Model ノードで接続) | OpenAI API、Gemini API |
| 保管 | 例外台帳(スプレッドシート) | データベース |
| 通知 | ヘルプデスクの下書き、社内チケット管理 | チャットツールへの通知 |
受注管理システム、ヘルプデスク、社内チケット管理は既存のものです。 読みに行き、下書きを置くだけです。
配送状況の取り方は、運送会社との契約によって違います。 本記事では、運送会社の法人向けサービスから、追跡番号ごとの配送状況(状況の区分、日時、営業所など)をCSVまたはAPIで取り出せることを前提にしています。どの形式で、どの項目が、どの頻度で取れるかは運送会社と契約の内容で決まるため、まず契約先の運送会社に確かめてください。 取れない場合、この構成は成り立ちません。
中心に置くのは、n8n の AI Agent ノードの Tools Agent です。 外部の道具やAPIを使って情報を取り、タスクに応じてどの道具を使うかを判断するとされています。少なくとも1つの道具のサブノードをつなぐ必要があり、繰り返しの上限(Max Iterations)は既定で10です。
道具は Call n8n Workflow Tool ノードで作ります。 別のワークフローを実行してその出力を受け取る道具で、Description にいつ使うかを書くとされています。照会ごとに小さなワークフローを作ってつなぎます。
03どうやって実装するのか
処理の起点を決める
Schedule Trigger で、毎日8時30分と13時30分に動かします。 Schedule Trigger は秒・分・時間・日・週・月の間隔と、cron 式での指定ができるとされています。1日2回にするのは、朝の分で前日夜までの状況を、昼過ぎの分で午前中の配達の結果を拾うためです。
時刻の基準を必ず確かめてください。 Schedule Trigger は、ワークフローにタイムゾーンが設定されていればそれを、なければ n8n のインスタンスのタイムゾーンを使うとされ、自前で動かす場合の既定は America/New York とされています。ワークフローのタイムゾーンを Asia/Tokyo に設定します。 忘れると、朝の見回りが夜中に動きます。
保存して公開しないと動きません。 Schedule ノードをトリガーにするワークフローは、保存して公開するよう注意書きがあります。また、n8n 2.36 以降では、予定の時刻に動けなかった実行をどう扱うか(捨てる、直近の1回だけ動かす、取りこぼした分を個別に動かす)を設定できるとされています。この構成では「直近の1回だけ」を選びます。 見回りは最新の状況を見れば足り、古い回を積み直す意味がないからです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 配送状況 | 追跡番号、状況の区分と言い回し、日時、営業所 | 運送会社の法人向けサービスから出力できる配送状況データ |
| 出荷実績 | 出荷日、追跡番号、運送会社、注文番号、個口数 | 受注管理システム/倉庫管理システム |
| 受注と顧客 | 注文番号、顧客、お届け先、お届け日の指定、ギフトの有無、商品 | 受注管理システム(道具で照会) |
| 問い合わせ履歴 | その顧客・その注文についての未完了の問い合わせ | ヘルプデスク(道具で照会) |
| 連絡の方針 | 例外の種類ごとに、連絡するかどうか、何日待つか | 自社で用意する方針表 |
| 例外台帳 | 前回までに拾った荷物と、そのときの区分・対応 | スプレッドシート |
質を決めるのは、下の2つです。 方針が無ければエージェントは「念のため全部連絡する」側に倒れ、台帳が無ければ同じ荷物を毎回新しい例外として扱います。
問い合わせ履歴を入れるのは、二重の連絡を避けるためです。 顧客がすでに問い合わせていれば、その荷物は UC-0045 のような受付側の対応に乗っています。そこへ別の連絡を送ると、顧客のもとに違う担当者から違う文面が2通届きます。
データの取得方法を決める
配送状況は、運送会社ごとに1本ずつ取り込みの枝を作ります。 CSVで受け取る契約なら決まった保管場所から読み、APIで受け取る契約ならワークフローから呼びます。取り込む範囲は、出荷から一定日数(例:14日)以内で、まだ配達完了になっていない荷物です。 配達完了の荷物を毎回読むと、件数が増えるだけです。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 配送状況の区分と日時 | 運送会社の配送状況データ | 例外の拾い出し、最終更新からの経過時間 |
| 出荷日と追跡番号 | 受注管理システム | 予定日の計算、データに出てこない荷物の検知 |
| 受注・顧客・同梱 | 受注管理システム(道具) | 影響する注文と顧客の特定 |
| 未完了の問い合わせ | ヘルプデスク(道具) | 二重の連絡の防止 |
出荷実績を先に読み、運送会社のデータと突き合わせます。 逆にすると、出荷したのに運送会社のデータに一度も出てこない荷物を見落とします。集荷の漏れや追跡番号の打ち間違いは、この向きでしか見つかりません。
受注と顧客は、ワークフローの冒頭では読みません。 例外の出た荷物についてだけ、エージェントが道具で引きます。12,000個分の顧客情報を毎回生成AIへ渡さないためです。
AIへ渡す前に整形する
- 状況の言い回しの置き換え … 運送会社ごとの状況を、
in_transit/delivered/absent_returned/address_unknown/held_at_depot/damaged/returning_to_sender/unknownの共通区分に置き換えます。対応表に無い言い回しはunknownにします - 最終更新からの経過時間の計算 … 状況が最後に変わった時刻から、今までの時間を出します
- お届け予定日の計算 … 出荷日と配送先の地域から、自社の標準の日数で予定日を出します
- 例外の拾い出し … 共通区分と経過時間、予定日から、規則で拾います
- 出荷実績との突き合わせ … 出荷から一定時間を過ぎても運送会社のデータに出てこない荷物を、
not_scannedとして拾います - 例外台帳との突き合わせ … 同じ追跡番号・同じ区分で前回すでに上げたものは外し、区分が変わったものと新しいものだけを残します
- 件数の確認 … 残った件数が普段の数倍なら、エージェントに渡さずに担当者へ知らせます
1番目で、AIに言い回しを解釈させないでください。 対応表で置き換え、対応表に無いものは unknown として人に回し、対応表のほうを直します。 AIに解釈させると、同じ言い回しが日によって別の区分になります。
7番目は、大雪や台風の日のためです。 一つの地域の荷物が一斉に遅れた日は、個別の文案ではなく、まとめてのお知らせを人が判断します。
AIに処理させる
させるのは、例外の出た荷物1件ごとに、必要な照会を選んで事実を集め、次の5つを組み立てることです。
| 組み立てるもの | 中身 |
|---|---|
| 影響する注文と顧客 | その荷物に入っている注文、同じ注文の他の荷物の状況 |
| 例外の意味 | 待てば片付くか、誰かが動かないと片付かないか |
| 連絡の要否 | 方針表に照らして、今連絡するか、何日待つか、連絡しないか |
| 対応先 | 顧客/運送会社/倉庫/対応不要 |
| 文案 | 顧客への連絡文案と、社内チケットの起票案 |
道具の選び方が、荷物ごとに違うのがこの題材です。 住所不明なら受注の住所の入力内容を引きます。お届け予定日を過ぎた荷物なら、お届け日の指定とギフトの有無を見ます。2個口の片方だけが止まっているなら、もう片方の状況を引きます。どれを引くかを決めてから引くので、固定の手順で全部を引くより照会が少なく済みます。
| させないこと | 理由 |
|---|---|
| 顧客への送信、運送会社への連絡 | 顧客と取引先との関係に関わる。人が行う |
| 再配達の依頼、住所の変更、再送の手配 | 取り消しの効かない操作。道具を読み取り専用に限る |
| 遅れの原因の断定 | 配送状況のデータに原因は書かれていない |
| お詫びの品や補償の約束 | 自社の方針と人の判断で決める |
| お届け予定日の新しい約束 | 運送会社から確定の情報が無い日付を書かない |
3行目がいちばん起きやすい失敗です。 「天候の影響で」と書きたくなりますが、データにあるのは状況と日時だけです。分からない原因を書いた文面は、顧客が別の経路で違う事情を知ったときに、そのまま不信になります。
道具を読み取り専用に限るのが、この設計の土台です。 n8n の AI Agent ノードには、特定の道具を実行する前に人の承認を求める仕組みがあり、メッセージの送信や記録の変更のような操作に向くとされています。それでも本記事では、書き込む道具そのものをエージェントに持たせません。 下書きを置くのは、エージェントの外の、規則で動くワークフローの側です。
指示内容を固定する
あなたはEC事業者の物流チームで、配送に例外が出た荷物の対応を準備する立場です。
渡された荷物1件について、道具で事実を集め、決められた形で返してください。
【使える道具】
- lookup_order_by_tracking:追跡番号から注文・顧客・お届け先・指定日を引く
- list_parcels_of_order:同じ注文の他の荷物と、その配送状況を引く
- find_open_inquiries:その顧客・その注文の未完了の問い合わせを引く
- get_contact_policy:例外の区分ごとの連絡方針を引く
必要なものだけを呼んでください。get_contact_policy は必ず呼んでください。
【判断の手順】
1. 荷物に入っている注文と顧客を特定する。特定できなければ止めて needs_human
2. 未完了の問い合わせがあれば、連絡文案は作らず contact を skip_inquiry_open にする
3. 連絡方針に照らして、contact を now / wait / none から選ぶ
4. 対応先を customer / carrier / warehouse / none から選ぶ(複数可)
【厳守事項】
- 遅れや持ち戻りの原因を書かないでください。配送状況データに原因は書かれていません。
- 新しいお届け予定日を書かないでください。運送会社からの確定の情報がない限り「不明」です。
- お詫びの品、送料の返金、補償を約束しないでください。
- 住所の誤りを断定しないでください。「確認させてください」と書いてください。
- 道具が返した内容に無い事実を書かないでください。記載がなければ「不明」としてください。
- 迷ったときは contact を now にせず、needs_human を true にしてください。
- 顧客への文案には、注文番号と商品名、今わかっている状況だけを書いてください。
【荷物】{parcel}
【共通区分と経過時間】{status}
【前回までの記録】{ledger_entry}
「原因を書かない」「予定日を書かない」を独立に書いているのは、文案が丁寧になるほど両方を書き足すからです。 顧客に安心してもらおうとする文面は、自然に「明日にはお届けの見込みです」と続きます。禁じるのは、確定していない事実を書く書き方そのものです。
出力形式を固定する
次の形のJSONで受け取ります。
{
"tracking_no": "",
"carrier": "",
"exception_type": "absent_returned | address_unknown | held_at_depot | damaged | delayed | not_scanned | unknown",
"orders": [
{ "order_no": "", "customer_id": "", "delivery_date_requested": "", "is_gift": false }
],
"other_parcels": [ { "tracking_no": "", "status": "" } ],
"open_inquiry": false,
"contact": "now | wait | none | skip_inquiry_open",
"wait_until": "",
"route_to": ["customer | carrier | warehouse | none"],
"customer_draft": "",
"ticket_draft": { "to": "", "summary": "", "facts": [] },
"tools_used": [],
"needs_human": false,
"reason": ""
}
1つ目の理由は、ワークフローが規則で後段を振り分けられることです。 contact が now のものだけヘルプデスクに下書きを置き、route_to に carrier があるものだけ社内チケットの起票案を作ります。振り分けを文章から読み取らせると、同じ文でも日によって分岐が変わります。
2つ目は、出力を点検できることです。 Structured Output Parser は JSON Schema に基づいてフィールドを返すとされ、JSONの例から作ると、すべてのフィールドが必須として扱われるとされています。スキーマの参照($ref)は使えないとされているので、1つのスキーマに平たく書きます。
3つ目は、tools_used で何を調べたかが残ることです。 住所不明なのに受注の住所を引いていない、2個口なのに他の荷物を引いていない、といった調べ漏れを、ワークフローの規則で見つけられます。
| 点検の規則 | 引っかかったら |
|---|---|
orders が空 | needs_human |
contact が now なのに customer_draft が空 | needs_human |
customer_draft に日付らしい文字列がある | needs_human(予定日の書き足しを疑う) |
exception_type が前処理の区分と違う | 前処理の区分を正とし、needs_human |
address_unknown なのに tools_used に受注の照会が無い | 1回だけやり直し、だめなら needs_human |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 運送会社の配送状況データ | CSVの読み込み、またはAPI(契約による) | 追跡番号ごとの状況と日時 |
| 受注管理システム | 読み取り(Call n8n Workflow Tool の先で照会) | 注文・顧客・お届け先・同梱 |
| ヘルプデスク | 読み取りと下書きの作成 | 未完了の問い合わせの照会、連絡文案の下書き |
| 社内チケット管理 | 起票案の作成 | 運送会社への照会、再送の手配 |
| 例外台帳 | 読み書き | 前回までの記録と、今回の結果 |
道具の先の小さなワークフローは、入力を追跡番号か注文番号に限ります。 Call n8n Workflow Tool は、入力の値を固定値・式・AIに埋めさせる値の組み合わせで決められるとされています。顧客IDやメールアドレスで検索できる道具を作らないでください。 エージェントが別の顧客の情報まで引ける経路になります。
ヘルプデスクへは下書きとして置き、送信はしません。 受注管理システムと運送会社のシステムには何も書き込みません。
人が確認する
人が見るのは、contact が now のもの、route_to に carrier か warehouse があるもの、needs_human のものです。 wait と none は、件数と区分を一覧で流し見ます。
needs_humanを先に見る … 注文を特定できない、区分がunknown、点検の規則に引っかかったもの- 文案の事実を確かめる … 注文番号・商品名・状況が、受注と配送状況のデータと合っているか
- 送る … ヘルプデスクの下書きを直して送ります。送信は人が行います
- 運送会社への照会と再送を手配する … 起票案を確かめてから、チケットとして確定します
- 判断を覆したら記録する …
waitをnowに変えた、連絡をやめた、などを残します
5番目が、方針表を育てる材料になります。 同じ区分で何度も覆しているなら、方針表の待つ日数が合っていません。
目標は、360件をならして1件4分です。 一覧で流し見て終わる wait と none が半分ほど、文案を直して送るものと手配の要るものが残りという想定です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 配送状況データが届いていない、空である | その運送会社の分を止め、担当者に知らせる。前回のデータで判定しない |
| 対応表に無い状況の言い回し | unknown として人へ。対応表に追記する |
| 追跡番号から注文が引けない | needs_human。打ち間違いと別送の荷物を疑う |
| 1個の荷物に複数の注文が同梱 | orders に全部を並べ、顧客が違えば文案を分ける |
| 顧客がすでに問い合わせている | skip_inquiry_open。受付側の担当者に状況だけを渡す |
| 例外の件数が普段の数倍 | エージェントに渡さず、まとめてのお知らせを人が判断する |
| 繰り返しの上限に達した | needs_human として残し、その回の途中経過を保存する |
| 生成AIが応答しない | 例外台帳に未処理として残し、次の回で拾い直す |
上から3行目までが大半を占めます。 どれもAIの問題ではなく、データの受け渡しと、追跡番号の記録の問題です。 ここを直すほうが、判断の精度を上げるより効きます。
記録を残す
- 取り込んだ配送状況データと出荷実績の、回ごとの件数と取り込み時刻
- 例外として拾った荷物と、前処理で付けた共通区分
- エージェントが呼んだ道具と、その結果(
tools_usedと途中経過) - エージェントの出力(JSONの全文)と、点検の規則の結果
- 人が判断を覆した記録と、送った文面、送った日時
- 例外台帳(追跡番号・区分・連絡の有無・対応先・完了日)
3つ目の途中経過は、AI Agent ノードの Return Intermediate Steps で出力に含められるとされています。どの道具を、どの順で呼んだかが残るので、「なぜこの荷物は連絡しないと判断したのか」を後から追えます。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ貼り付けるので、360件には使えません。確かめるための段階です。 半自動化で、問い合わせより先に気づけるようになります。 見回りと例外の拾い出しは自動になりますが、荷物から注文を引く作業と文面作りが残り、1件15分が10分程度になります。 本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、2個口や同梱の突き合わせと、連絡の要否の判断が、1件ずつの手作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、unknown になる言い回しと、方針表が決まっていない区分が先に分かります。そこを直してからエージェントに渡すほうが、needs_human が減ります。
05工数削減シミュレーション
導入後 360件 × 4分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 月に数千個以上を宅配便で出荷し、配送の遅れや住所不明を顧客からの問い合わせで初めて知ることが多いEC事業者・小売業・商社など。運送会社の法人向けサービスから、追跡番号ごとの配送状況をCSVやAPIで取り出せる契約になっている場合。受注管理システムに追跡番号が記録されており、荷物から注文と顧客を引ける場合。お届け日の指定やギフトなど、遅れると困る注文が一定数ある場合。
- 出荷が月に数百個以下で、運送会社の管理画面を目で見れば足りる場合。配送状況をデータとして取り出す手段が契約上なく、追跡ページを1件ずつ開くしかない場合。追跡番号が受注と結び付いて記録されていない場合。配送の遅れについて顧客にどこまで説明し、補償するかという方針は、この構成では決められません。
07最小構成で試す方法
- 先月、顧客から「届かない」と問い合わせのあった荷物を20件選ぶ(住所不明、2個口、お届け日指定のものを必ず入れる)
- その20件について、当時の配送状況、受注の中身、実際に送った返信を用意する
- 手元のAIサービスの画面に、1件ずつ配送状況と受注の中身を貼り付ける
- 「この荷物について、顧客に今連絡すべきか、待つべきかを判断し、理由を書いてください。連絡するなら文案を作ってください。遅れの原因と新しいお届け予定日は書かないでください」と指示する
- 出てきた判断と文案を、当時の対応と突き合わせる
20件は必ずやってください。 ワークフローを組む前に、「事実がそろえば、連絡の要否を判断できるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の対応と同じ判断で、文案も使える | 道具を作り、ワークフローに進む |
| 原因や予定日を書き足した | 指示の書き方で直る。構成は有効 |
| 判断が当時の担当者ごとにばらばらで、比べられない | 方針表を決めるのが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、連絡の線引きが人によって違っていたことが分かったということです。 その場合は、20件を材料に方針表を作ってから、同じ20件でもう一度試してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 持ち戻りのたびに顧客へ連絡が出る | 方針表で待つ日数を決める。 迷ったら now にしないと指示に書く |
| 文案に原因や新しい予定日が入る | 指示で禁じ、日付らしい文字列を後段の規則で検知する |
| 同じ荷物が毎回上がってくる | 例外台帳と突き合わせ、区分が変わったときだけ出す |
| 朝の見回りが夜中に動く | ワークフローのタイムゾーンを設定する。自前の既定は America/New York |
| 保存しただけで動かない | Schedule Trigger は保存して公開する |
| 状況の言い回しをAIが日によって違う区分にする | 対応表で置き換え、無いものは unknown にする |
| 2個口の片方だけで連絡してしまう | 同じ注文の他の荷物を引く道具を用意し、tools_used で確かめる |
| 問い合わせ中の顧客に別の連絡が届く | 未完了の問い合わせを引き、skip_inquiry_open で止める |
| 大雪の日に何百通も文案ができる | 件数が普段の数倍なら、エージェントに渡さず人が判断する |
| 別の顧客の情報まで引ける | 道具の入力を追跡番号と注文番号に限る |
| 呼ぶべき道具を呼ばない | Description にいつ使うかを具体的に書き、tools_used を後段の規則で確かめる |
| 繰り返しの上限に達して止まる | 既定は10回。道具を4つに絞り、荷物は1件ずつ渡す |
| ギフトの受け取り手に連絡が行く | 連絡先は注文者に固定する。 宛先は道具の返り値ではなく規則で決める |
| 運送会社のデータが届かない日に全件が「未更新」になる | データの有無を先に確かめ、無い回は止める |
上の3行が、この構成の失敗のほとんどです。 どれも、先回りの連絡が余計なことまで伝えてしまう失敗です。先回りの連絡は、多すぎると顧客にとって迷惑になります。 何を連絡しないかを先に決めてあるかどうかで、運用に乗るかが決まります。
下の3行は、エージェントを組んだ最初の週に出ます。 どれも指示の書き方では防ぎきれず、道具の数と入力、宛先を、エージェントの外で固めておくことで防ぎます。 判断をAIに任せる範囲を狭くしておくほど、つまずきは早く見つかります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の氏名、お届け先の住所と電話番号、注文の中身、ギフトの贈り主と受け取り手、問い合わせの履歴です。贈り主と受け取り手が別の個人であることが多いのが、この題材の特徴です。
- 利用目的の範囲で扱う … 個人情報保護委員会のガイドライン(通則編)では、利用目的をできる限り具体的に特定し、その達成に必要な範囲を超えて扱う場合はあらかじめ本人の同意が要るとされています。配送の連絡は注文の履行に伴うものですが、見回りで集めた記録を販促に使わないでください。 自社のプライバシーポリシーの利用目的と合っているかは、担当部署に確かめてください
- 生成AIへ渡す範囲を絞る … エージェントに渡すのは例外の出た荷物だけで、電話番号や住所の全文は、文案に要らなければ道具の返り値から外します。 住所不明の確認でも、番地の欠けを示すのに全文は要りません
- 生成AIの提供元を委託先として扱う … 同ガイドラインでは、個人データの取扱いを委託する場合、委託先に対して必要かつ適切な監督を行わなければならないとされています。入力が学習に使われない設定になっているか、保存期間はどうかを、契約と設定の両方で確かめてください
- 保存期間を決める … 同ガイドラインでは、個人データは利用する必要がなくなったときに遅滞なく消去するよう努めるとされています。例外台帳とエージェントの途中経過は、配達完了と対応の完了から一定期間(例:6か月)で消す、と先に決めます
- 見られる人を限る … 例外台帳とワークフローの実行履歴には、顧客の住所と注文が残ります。物流チームとカスタマーサポートの担当者に限り、 実行履歴に個人情報を残さない設定も検討します
- ギフトの受け取り手の情報を注文者への文面に書き過ぎない … 贈り主と受け取り手は別の個人です。住所不明の確認でも、受け取り手の住所の全文を注文者宛ての文面に写さず、確認が要る箇所だけを示します
- 顧客への送信と補償の判断を自動にしない … 出すのは下書きまでです。遅れのお詫びや補償の範囲は、自社の方針として人が決めます
誤りが起きた場合のリスクは、連絡すべき荷物を見落とすことと、要らない連絡や誤った連絡を送ることの2つです。 前者は例外台帳の突き合わせの誤りで、後者は方針表の不足と、確定していない事実の書き足しで起きます。どちらも規則と人の確認で守ります。
10まず何から始めるか
1週目:配送状況データの取り方を確かめる
契約している運送会社に、追跡番号ごとの配送状況を、どの形式で、どの項目で、どの頻度で取り出せるかを確かめます。あわせて、受注管理システムに追跡番号が漏れなく残っているかを、先月の出荷で数えます。
2週目:20件で試す
先月問い合わせのあった荷物から20件を選び、手元のAIサービスに貼り付けて連絡の要否と文案を出させます。当時の対応と突き合わせ、原因や予定日を書き足していないかを最優先で見ます。
3週目:対応表と方針表を作る
運送会社ごとの状況の言い回しを共通区分に置き換える対応表と、区分ごとに連絡するか・何日待つかの方針表を作ります。 方針表はカスタマーサポートの責任者と決めます。ここが決まらないうちにエージェントを組むと、文案は出るのに誰も送れない状態になります。
4週目:見回りと例外の一覧までをつなぐ
n8n の Schedule Trigger で配送状況データを取り込み、共通区分に置き換え、例外台帳と突き合わせて一覧に書き出すところまで作ります。この時点ではエージェントを使わず、一覧だけを毎日見ます。
2か月目: 読み取り専用の道具を4つ作り、AI Agent ノードにつないで、判断と文案を例外台帳に書き出します。まだヘルプデスクには置きません。3か月目以降: 下書きと起票案をヘルプデスクと社内チケットに置き、1件15分が何分になったかと、「届かない」という問い合わせの件数を実測します。方針表の待つ日数を、覆した記録から直した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 秒〜月と cron 式で間隔を指定できること。タイムゾーンの優先順と、自前で動かす場合の既定が America/New York であること。保存して公開が必要なこと。2.36 以降で取りこぼした実行の扱いを設定できること | n8n Docs: Schedule Trigger node | 2026-09-29 |
| 使う道具を判断すること。道具のサブノードが1つ以上必要なこと。Max Iterations の既定が10。Return Intermediate Steps、出力パーサーの接続、道具の実行前の人の承認があること | n8n Docs: Tools AI Agent node | 2026-09-29 |
| 別のワークフローを実行して出力を受け取ること。Description にいつ使うかを書くこと。入力を固定値・式・AIが埋める値で決められること | n8n Docs: Call n8n Workflow Tool node | 2026-09-29 |
JSON Schema に基づいて返すこと。JSONの例から作ると全フィールドが必須になること。$ref を使えないこと | n8n Docs: Structured Output Parser node | 2026-09-29 |
| Claude のチャットモデルをエージェントにつなげること | n8n Docs: Anthropic Chat Model node | 2026-09-29 |
| 利用目的の特定と、範囲を超える取扱いに本人の同意が要ること。不要な個人データを遅滞なく消去するよう努めること。委託先の監督 | 個人情報保護委員会: ガイドライン(通則編) | 2026-09-29 |
配送状況データの形式と取り出し方は、契約している運送会社に確かめてください。 本記事は特定の運送会社の仕様を前提にしていません。顧客への連絡と補償の方針は、自社の担当部署で決めてください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0291)についてのご相談はこちらから。
