Media > AI活用ユースケース > 物流 > 輸入の本船の動静(入港予定・遅延・抜港)をエージェントが毎日見回り、通関・配送・納品の手配に影響する案件を拾って、顧客と社内への連絡の案を作る

輸入の本船の動静(入港予定・遅延・抜港)をエージェントが毎日見回り、通関・配送・納品の手配に影響する案件を拾って、顧客と社内への連絡の案を作る

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

輸入の本船の入港予定・遅延・抜港を、エージェントが毎朝見回ります。動静が変わった本船に積まれた案件を拾い、通関・配送・納品のどの手配に響くかを整理して、顧客と社内への連絡の案を作ります。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
商社/小売/物流/製造
対象部門
物流
対象業務
内容確認・チェック/書類作成
主な課題
人手が足りない/判断に時間がかかる/期限・対応漏れが起きる
AIで行う処理
エージェント
主な効果
対応スピード向上/工数削減/機会損失防止
導入難易度
★★★★☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
16h/月
想定削減
73%
年間削減
528h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 毎朝、担当する案件の本船について、フォワーダーのメールと船会社のサイトで入港予定を見る
  2. 台帳の入港予定と比べ、変わっていれば台帳を直す
  3. 変わった本船に載っている自分の案件を探し、通関・ドレージ・倉庫・納品の予定日と見比べる
  4. 手配を動かす必要があるものについて、通関業者・陸送の会社・倉庫に連絡する
  5. 納期に響くものについて、営業担当に知らせ、顧客への連絡を相談する
  6. 顧客への連絡文を書いて、営業担当か自分から送る
導入後(After)
  1. 自動毎朝7時30分にワークフローが動き、船会社のAPIとフォワーダーのメールから本船の動静を集める
  2. 自動本船・航海ごとに、台帳の入港予定と比べて、遅延・早着・抜港・揚げ港の変更を規則で判定する
  3. 自動変化のあった本船・航海に載っている案件を、台帳から全部拾う
  4. 自動案件ごとに、新しい入港予定と通関・ドレージ・倉庫・納期の予定日を比べ、影響の種類を規則で付ける
  5. 【AI】 本船・航海ごとに、エージェントが案件の手配の状況・過去の連絡・フォワーダーのメールを引き、影響を整理する
  6. 【AI】 関係先(通関業者・陸送の会社・倉庫)への連絡、顧客への連絡、営業担当への知らせの案を作る
  7. 自動影響の一覧を、抜港と納期への影響を先頭にして、輸入業務課のチャットへ出す
  8. 人担当者が一覧を見て、手配を動かし、連絡の案を直して送る
  9. 人台帳の予定日を直す
各工程の詳しい説明を読む
  1. 毎朝、担当する案件の本船について、フォワーダーのメールと船会社のサイトで入港予定を見る
  2. 台帳の入港予定と比べ、変わっていれば台帳を直す
  3. 変わった本船に載っている自分の案件を探し、通関・ドレージ・倉庫・納品の予定日と見比べる
  4. 手配を動かす必要があるものについて、通関業者・陸送の会社・倉庫に連絡する
  5. 納期に響くものについて、営業担当に知らせ、顧客への連絡を相談する
  6. 顧客への連絡文を書いて、営業担当か自分から送る

(a)変化に気づくのが遅い。 フォワーダーのメールは1日に何十通も届き、入港予定の変更はその中に埋もれます。船会社のサイトを見に行くのは、忙しい日には後回しになります。 気づいたのが入港の前日で、ドレージの予約を動かせなかった、ということが起きます。

(b)1隻の遅れが何件に響くかを数えるのに時間がかかる。 同じ本船に別の担当者の案件が載っていることがあり、台帳を本船名で絞り込んで、担当者ごとに声をかけて回ります。 自分の案件だけ直して、隣の担当者の案件が漏れることもあります。

(c)抜港の扱いが人によって違う。 抜港の連絡が来たとき、次の本船を待つのか、別の港で揚げて陸送するのかを、担当者が自分の判断でフォワーダーに聞いています。聞く内容がそろっていないので、返事が来るまでに何往復もします。

(d)顧客への連絡がばらばら。 同じ遅延でも、担当者によって連絡する顧客としない顧客があり、書き方も違います。顧客から「別の担当者からは連絡があった」と言われることがあります。

  1. 【自動】 毎朝7時30分にワークフローが動き、船会社のAPIとフォワーダーのメールから本船の動静を集める
  2. 【自動】 本船・航海ごとに、台帳の入港予定と比べて、遅延・早着・抜港・揚げ港の変更を規則で判定する
  3. 【自動】 変化のあった本船・航海に載っている案件を、台帳から全部拾う
  4. 【自動】 案件ごとに、新しい入港予定と通関・ドレージ・倉庫・納期の予定日を比べ、影響の種類を規則で付ける
  5. 【AI】 本船・航海ごとに、エージェントが案件の手配の状況・過去の連絡・フォワーダーのメールを引き、影響を整理する
  6. 【AI】 関係先(通関業者・陸送の会社・倉庫)への連絡、顧客への連絡、営業担当への知らせの案を作る
  7. 【自動】 影響の一覧を、抜港と納期への影響を先頭にして、輸入業務課のチャットへ出す
  8. 【人】 担当者が一覧を見て、手配を動かし、連絡の案を直して送る
  9. 【人】 台帳の予定日を直す

2番目と4番目を規則にしているのは、どちらも日付の計算だからです。 入港予定が何日ずれたか、新しい予定から通関とドレージに必要な日数を足して納期に間に合うかは、計算で決まります。AIに日付を計算させると、日付の引き算を間違えることがあり、それが納期の連絡に直結します。

9番目の台帳の更新も人が行います。 船会社の予定は何度も変わるので、台帳に自動で書き戻すと、どの時点の予定で手配したのかが分からなくなります。

02今回想定するシステム構成

構成図
船会社のAPI(スケジュール・動静)/ フォワーダーのメール(予定変更・抜港・到着案内)
   │
   ▼【トリガー】Schedule Trigger(毎朝7時30分、Asia/Tokyo)
   ▼【トリガー】Gmail Trigger(ラベル「本船動静」)… 日中の変更を受ける
n8n のワークフロー
   ├──▶ HTTP Request で船会社のAPIから本船・航海の予定を取る
   ├──▶ メールの本文から、本船名・航海番号・新しい予定を取り出す
   ├──▶ 台帳と比べ、遅延・早着・抜港・揚げ港の変更を判定する(規則)
   ├──▶ 載っている案件を拾い、手配の日付と比べる(規則)
   ▼
AI Agent ノード(Tools Agent)+ Claude
   │  本船・航海1つごとに、道具を選んで引く
   │   ・案件の台帳を引く        ・手配の予約の状況を引く
   │   ・過去の連絡の記録を引く   ・フォワーダーのメールを探す
   │  Structured Output Parser で決まった形のJSONを返す
   ▼
影響の一覧(スプレッドシート)→ 輸入業務課のチャットへ通知
   ▼【人】手配の変更/連絡の送付/台帳の更新
役割想定する製品代替候補
ワークフローn8nMake、Zapier、Power Automate
生成AIClaude API(n8n の Anthropic Chat Model ノード)OpenAI API、Gemini API
保管Google スプレッドシート(輸入案件の台帳、影響の一覧)SharePoint リスト
通知社内チャットメール

新しく足すのは、n8n のワークフローと影響の一覧だけです。 台帳には書き込まず、通関業者や陸送の会社への連絡も、この構成からは送りません。

船会社の予定は、APIが使える船会社からはAPIで取ります。 海運のデジタル化の標準を作っている DCSA は、本船の運航スケジュールの標準(Operational Vessel Schedules)を公開しており、船会社・ターミナルなどの間で、本船のスケジュールと例外の情報を、サービス・航海・寄港の単位で交換するための共通の構造と API を定めています。どの船会社がこの標準のAPIを提供しているか、自社が使えるかは、船会社との契約で確かめます。 使えない船会社の分は、フォワーダーのメールで受けます。

港のターミナルの情報は、自動では取りに行きません。 国土交通省港湾局が運営するコンテナ物流情報サービス(Colins)は、輸入コンテナの搬出可否情報や船舶動静情報を提供する会員登録制のシステムです。公開されているページには、API などの連携方法の記載がありません。入港した後の搬出可否は、担当者が Colins で確かめる前提にします。

n8n を選ぶ理由は、本船1つの変化から、載っている案件の数だけ調べる先が広がるからです。 Tools Agent は、道具の機能を理解し、タスクに応じてどの道具を使うかを決めるとされ、少なくとも1つの道具をつなぐ必要があります。 遅延なら手配の予約を、抜港ならフォワーダーのメールを、と調べる先が変わります。

03どうやって実装するのか

Step1

処理の起点を決める

2つのトリガーを使います。 1つは毎朝7時30分の Schedule Trigger で、担当する全部の本船の予定を船会社のAPIから取り直します。もう1つは Gmail Trigger で、フォワーダーから届く予定変更・抜港・到着案内のメールを受けたときに、その本船だけを見ます。

朝の見回りを残すのは、メールが来ない変化があるからです。 フォワーダーによって、予定変更を毎回知らせる会社と、大きな変化だけを知らせる会社があります。メールだけを起点にすると、知らせの少ないフォワーダーの案件だけが見回りから落ちます。

Schedule Trigger は、ワークフローのタイムゾーンか n8n のインスタンスのタイムゾーンを使い、セルフホストの既定は America/New York とされています。Asia/Tokyo を設定します。また、保存して公開しないと動かないとされています。

Gmail Trigger は、新しいメッセージをポーリングで見る作りで、ラベル、検索の条件、差出人で絞れます。フォワーダーのアドレスからのメールに「本船動静」のラベルを付けるフィルタを Gmail 側で作り、そのラベルで絞ります。 1回のポーリングで取るメールの数には上限(既定10、最大50)があるとされ、朝に届くメールが多いなら上限を上げます。

Step2

入力データを集める

データ中身取得元
本船・航海の予定本船名、航海番号、寄港地、入港と出港の予定船会社のAPI
フォワーダーのメール予定変更・抜港・到着案内の本文Gmail
輸入案件の台帳B/L番号、本船名、航海番号、揚げ港、入港予定(手配に使った値)、担当者スプレッドシート
手配の予定通関業者と通関の予定日、ドレージの予約日、倉庫の入庫予定日台帳の手配のシート
顧客と納期顧客、納品先、納期、営業担当、納期の余裕の日数台帳
必要日数の表揚げ港ごとの、入港から通関・搬出・配送までにかかる日数の目安自社で作る表
過去の連絡の記録案件ごとに、誰にいつ何を連絡したか影響の一覧

質を決めるのは、いちばん下から2行目の必要日数の表です。 入港から納品まで何日かかるかが無ければ、入港予定が2日遅れたときに納期に響くかを計算できません。揚げ港と通関の種類(通常、検査が多い品目など)ごとに、過去の実績から目安を作ります。 表が無いうちは、納期への影響を判定しません。

台帳の入港予定は、「手配に使った値」として持ちます。 船会社の最新の予定ではなく、通関業者やドレージに伝えた時点の予定です。比べる相手を最新の予定にすると、手配がずれていることに気づけません。

Step3

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

取るものどこからどう取るか
本船・航海の予定船会社のAPIHTTP Request(GET)。本船名・航海番号で問い合わせる
予定変更のメールGmailGmail Trigger(ラベル「本船動静」)
台帳と手配の予定スプレッドシート読み取りのみ
過去の連絡影響の一覧読み取りのみ

船会社のAPIへの問い合わせは、台帳にある本船・航海だけにします。 HTTP Request ノードの Batching のオプションで、まとめて送る件数と間隔を決めます。応答のステータスを含め、Never Error にしておけば、1つの船会社のAPIが止まっても見回り全体は止まりません。 止まった船会社の分は「本日の予定取得なし」として通知の先頭に出します。

メールの本文からの取り出しは、エージェントの前段で別に行います。 本船名、航海番号、港、新しい予定、抜港かどうかを取り出し、取り出せなかったメールは、そのまま担当者に回します。 本文の書き方はフォワーダーごとに違うので、取り出しの成否を毎回記録します。

Step4

AIへ渡す前に整形する

  1. 本船名と航海番号の表記をそろえる … 「M/V」「MV」の有無、大文字小文字、航海番号の末尾の記号。そろえないと、同じ本船が別の本船として扱われます
  2. 日時を揚げ港の現地時刻にそろえる … 予定がUTCで届くものと現地時刻で届くものがあります
  3. 予定の種類を分ける … 計画値・見込み値・実績値。見込み値を実績として扱わない
  4. 本船・航海ごとに、台帳の値と比べて変化を判定する … 下の表のとおり
  5. 載っている案件を拾い、手配の日付と比べる … 新しい入港予定に必要日数を足し、手配の日と納期と比べます
変化の種類規則
delay新しい入港予定が、台帳の値より1日以上遅い
early新しい入港予定が、台帳の値より1日以上早い
port_omission揚げ港への寄港が予定から消えた、またはメールで抜港と知らされた
port_change揚げ港が変わった
unknown予定が取れず、メールからも読み取れない
影響の種類規則
customs_reschedule新しい入港予定が、通関の予定日の前提とずれる
drayage_rescheduleドレージの予約日が、新しい入港予定+搬出の日数より前
warehouse_reschedule倉庫の入庫予定日が、新しい予定で間に合わない
delivery_at_risk新しい入港予定+必要日数が、納期を超える
early_arrival早着で、書類の準備や引き取りの前倒しが要る

early を拾うのを忘れないでください。 遅延ばかりに目が行きますが、早着すると通関の書類が間に合わず、コンテナが港に置かれたままになる日数が増えることがあります。

Step5

AIに処理させる

させるのは、本船・航海1つごとに、載っている案件の手配の状況を調べ、影響を整理し、連絡の案を作ることです。 日付の計算と影響の種類は規則で付け終えています。

させること使う道具返すもの
案件ごとの手配の状況を確かめる手配の予約の状況を引く予約済みか、仮か、未手配か
同じ顧客の案件をまとめる案件の台帳を引く顧客ごとの案件の一覧
すでに連絡済みかを確かめる過去の連絡の記録を引く前回の連絡の日時と内容
抜港の詳細を探すフォワーダーのメールを探す代わりの港・次の本船の記載の有無
関係先への連絡の案を作る-通関業者・陸送の会社・倉庫あての文面
顧客への連絡の案を作る-顧客ごとに、案件をまとめた文面

顧客ごとにまとめるのが、エージェントに任せる理由の一つです。 同じ本船に同じ顧客の案件が3件載っていれば、連絡は1通にまとめます。担当者が別々だと、同じ顧客に3通届く、ということが起きていました。

させないこと理由
日付の計算規則で済ませている。AIに引き算をさせない
新しい納期の約束顧客への約束は営業担当が決める
抜港の代わりの港・本船の推測船会社とフォワーダーが決めること
代わりの輸送手段の提案航空への切り替えなどは費用と判断が要る
手配の変更・連絡の送付人が確かめてから行う
台帳の書き換えどの時点の予定で手配したかが分からなくなる

3行目がいちばん起きやすい失敗です。 抜港のメールに次の寄港地が書かれていると、エージェントは「次の港で揚げて陸送」と案を書きます。揚げる港を決めるのは船会社で、書かれた寄港地で揚がるとは限りません。 推測を禁じ、確認の依頼文を作らせます。

Step6

指示内容を固定する

AI Agent ノードの System Message に、次のように書きます。

あなたは輸入商社の輸入業務課で、本船の動静の変化が、通関・配送・納品の
手配にどう響くかを整理する担当です。入力は、規則で判定した本船・航海1つと、
そこに載っている案件と、案件ごとの影響の種類です。

【やること】
1. 案件ごとに手配の予約の状況を引き、予約済み・仮・未手配を確かめる。
2. 過去の連絡の記録を引き、同じ変化について連絡済みかを確かめる。
3. port_omission または port_change のときは、フォワーダーのメールを探し、
   代わりの港・次の本船について何が書かれているかを確かめる。
4. 関係先(通関業者・陸送の会社・倉庫)ごとに、連絡の案を作る。
5. 顧客ごとに案件をまとめ、営業担当が直して送れる連絡の案を作る。

【厳守事項】
- 日付は入力に書かれた値をそのまま使ってください。日数を足したり
  引いたりしないでください。
- 顧客への連絡の案に、新しい納期を書かないでください。
  「現時点の入港予定は○月○日です。納品日は改めてご連絡します」の形にしてください。
- 抜港・揚げ港の変更のとき、代わりの港や本船を推測しないでください。
  メールに書かれていなければ「船会社・フォワーダーに確認中」と書き、
  フォワーダーへの確認の依頼文を作ってください。
- 航空への切り替えなど、代わりの輸送手段を提案しないでください。
- 連絡済みで、その後に予定が変わっていない案件には、新しい連絡の案を
  作らないでください。
- 道具で確かめられなかったことは unverified に書いてください。
- 「見込み」の予定を「確定」と書かないでください。

【出力】指定のJSONの形で返してください。

「新しい納期を書かない」を明記しないと、入港予定に必要日数を足した日を、納期として書きます。 計算としては合っていても、通関で検査が入れば数日ずれます。 一度顧客に書いた日付は、約束として受け取られます。

「見込みを確定と書かない」も同じ理由です。 船会社の予定には、計画・見込み・実績の区別があり、見込みの日付で「入港しました」と書くと、ドレージを手配してしまう相手が出ます。

Step7

出力形式を固定する

Structured Output Parser で、次の形のJSONを返させます。 スキーマは JSON Schema で定義します。JSONの例から作ると、すべての項目が必須として扱われるとされているので、unverified のような空になりうる項目がある場合は、JSON Schema で必須を指定します。

{
  "vessel": "", "voyage": "", "port": "",
  "change_type": "delay | early | port_omission | port_change | unknown",
  "planned_eta_in_ledger": "", "latest_eta": "", "eta_status": "planned | estimated | actual",
  "shipments": [
    {
      "bl_no": "", "customer": "", "owner": "",
      "impacts": ["customs_reschedule", "drayage_reschedule", "warehouse_reschedule", "delivery_at_risk", "early_arrival"],
      "booking_status": { "customs": "booked | tentative | none", "drayage": "", "warehouse": "" },
      "already_notified": false
    }
  ],
  "drafts_to_partners": [ { "partner": "", "bl_nos": [""], "body": "" } ],
  "drafts_to_customers": [ { "customer": "", "bl_nos": [""], "sales_owner": "", "body": "" } ],
  "forwarder_inquiry": "",
  "unverified": [""]
}

1つ目の理由は、本船・航海を1つの単位にできることです。 変化は本船ごとに起き、影響は案件ごとに出ます。shipments に案件を並べることで、1隻の遅れが何件に響くかが一目で分かります。 第3章の(b)がここで解けます。

2つ目は、eta_status で見込みと実績を分けられることです。 通知でも、見込みの日付には「見込み」と付けて出します。

3つ目は、already_notified で連絡の重なりを止められることです。 予定が細かく何度も変わる本船では、毎朝同じ顧客に連絡の案が出ます。連絡済みで予定が変わっていなければ、案を作りません。

並べ順中身
1port_omission、port_change を含む本船
2delivery_at_risk を含む案件
3drayage_reschedule、early_arrival を含む案件
4それ以外の変化
Step8

システムへ連携する

つなぎ先方式内容
船会社のAPIHTTP Request(GET)本船・航海の予定を取る
GmailGmail Trigger と読み取り予定変更のメールを受け、抜港の詳細を探す
輸入案件の台帳スプレッドシートの読み取り案件、手配の予定、顧客と納期
Claude APIAnthropic Chat Model ノード影響の整理と連絡の案
影響の一覧スプレッドシートへの追記エージェントの出力と、人の対応の結果
社内チャット通知並べ順のとおりに一覧を出す

書き込むのは影響の一覧だけです。 台帳、通関業者、陸送の会社、倉庫、顧客へは、この構成からは何も送りません。エージェントに渡す道具も読み取りだけにし、メールを送る道具をつなぎません。

Step9

人が確認する

  1. 抜港・揚げ港の変更を最初に見る … フォワーダーへの確認の依頼文を直して送ります。返事が来るまで、顧客には「確認中」とだけ伝えます
  2. delivery_at_risk の案件を営業担当に回す … 顧客への連絡の案を添えます。納期をどう伝えるかは営業担当が決めます
  3. 手配を動かす … ドレージの予約、倉庫の受け入れ、通関業者への連絡を、案を直して行います
  4. 台帳を直す … 手配に使う入港予定を、新しい値に更新します。直した時点で、次の朝からはこの値と比べます
  5. unverified を見る … 予定が取れなかった本船は、船会社のサイトかフォワーダーへの問い合わせで確かめます
  6. 入港した本船は、Colins で搬出可否を確かめる … eta_status が actual になった本船について、コンテナを引き取れる状態かを見てから、ドレージに最終の連絡をします。入港したことと、コンテナを引き取れることは別です

4番目を忘れると、同じ変化が毎朝出ます。 台帳を直すまで、規則は古い値と比べ続けます。連絡を送ったら台帳を直す、を1つの手順にします。

目標は、1件をならして4分です。 影響の一覧と案の確認に2分、連絡の確認と送付に1分、台帳の更新に1分という見込みです。

Step10

例外に対処する

起きること対応
船会社のAPIが応答しないその船会社の分を「本日の予定取得なし」として先頭に出す。前日の予定で判定しない
本船名・航海番号が台帳と一致しない表記をそろえても合わなければ unknown。担当者が台帳を確かめる
メールから予定を取り出せないメールをそのまま担当者に回す
APIとメールで予定が違う両方を並べて出す。どちらが正しいかを決めない
必要日数の表に揚げ港が無いdelivery_at_risk を判定せず、担当者に回す
見込みの予定が毎日変わる1日以上の変化だけを拾う。数時間の変化では案を作らない
抜港で代わりの情報が無いフォワーダーへの確認の依頼文だけを作る
エージェントの出力がスキーマに合わない本船の情報と影響の種類だけを規則の結果として出す

上から4行目を、運用の最初に決めてください。 船会社のAPIとフォワーダーのメールで日付が違うことは珍しくありません。更新のタイミングが違うだけのこともあれば、片方が古いこともあります。 どちらを手配に使うかは、担当者がフォワーダーに確かめて決めます。

Step11

記録を残す

  • その日に取った船会社のAPIの応答と、受けたメールのID
  • 規則で判定した変化と影響の種類
  • エージェントのJSON出力と、呼んだ道具の順番
  • 担当者の対応 … 手配を動かした、連絡を送った、台帳を直した、とその日時
  • 変化に気づいた日と、入港予定日の差 … 何日前に気づけたか

最後の行が、この構成の物差しです。 気づくのが入港の前日だった案件が、何日前に気づけるようになったかを毎月数えます。ドレージの予約を動かせる日数が残っているかどうかが、この差で決まります。

04実装レベルの3段階

最小構成:案件の一覧と新しい予定を生成AIの画面に貼る / 1隻ごとの影響の洗い出し
半自動化:上記+n8n で毎朝船会社のAPIとメールから予定を集め、規則で変化と影響を判定して一覧にする / 変化の検知と影響の一覧
本格構成:上記+エージェントによる手配の状況の確認、顧客ごとのまとめ、連絡の案 / 見回りの全体と連絡の案

半自動化で、①の見に行く時間がほぼ無くなります。 変化の検知と影響の判定は規則なので、AIを使わなくても組めます。残るのは、影響の出た案件の手配の状況を調べ、連絡を書く時間です。 本格構成で減るのは、その調べる時間と書く時間です。 1隻に10件載っていれば、10件の予約の状況を見て、顧客ごとにまとめて書くところまでをエージェントが引き受けます。半自動化の一覧を1か月見て、規則が正しく拾えていることを確かめてから、エージェントを足してください。

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

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

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

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

AI活用について相談する

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

向いている
  1. 海外から海上コンテナで商品や原材料を輸入し、月に百件以上の船荷証券(B/L)を扱っている商社・小売・メーカーの輸入業務の部署。本船の入港予定が変わるたびに、通関業者・ドレージ(コンテナの陸送)・倉庫・顧客への連絡を担当者が手で調整している場合。輸入案件の台帳に、本船名・航海番号・入港予定・通関と配送の予定日・顧客の納期を持っている場合。
向いていない
  1. 輸入が月に数件で、本船の動静を担当者が頭に入れておける場合。通関から配送・納品までをすべてフォワーダーに任せ、自社で手配の調整をしていない場合。航空貨物が中心で、本船の動静を見る必要がない場合。なお、顧客へ新しい納期を約束するか、代わりの輸送手段を使うかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 今週入港する本船を5隻選び、それぞれに載っている案件を台帳から書き出す
  2. 生成AIの画面に、案件の一覧(B/L番号、顧客、通関・ドレージ・倉庫の予定日、納期)と、本船の新しい入港予定を貼る
  3. 「新しい入港予定で、どの案件のどの手配を動かす必要があるかを表にしてください。日付の計算は書かれた必要日数だけを使ってください。顧客ごとに、新しい納期を書かない連絡の案を作ってください」と指示する
  4. 出てきた表を、担当者が自分の見立てと比べる

5隻は必ずやってください。 1隻ごとに、影響の拾い漏れが無いか、日付の計算を間違えていないかを見ます。

出てきた内容判断
担当者の見立てと同じ影響が出たワークフローを組む段階に進む
日付の計算を間違えた想定どおり。計算は規則に置く設計で進める
必要日数が分からず判定できない必要日数の表を作るのが先

2行目が出ても、構成は有効です。 この構成は、日付の計算を最初からAIにさせない作りだからです。最小構成で間違いが出ることを確かめておくと、規則に置く理由が社内で伝わります。

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

問題対策
同じ本船が別の本船として扱われる本船名と航海番号の表記を前処理でそろえる
予定のタイムゾーンがばらばら揚げ港の現地時刻にそろえる
見込みの予定を実績として扱う計画・見込み・実績を分け、通知にも付ける
早着を見落とすearly を規則に入れる
エージェントが納期を書く指示で禁じ、「改めて連絡」の形にする
抜港の代わりの港を推測するメールに無ければ「確認中」と書かせる
同じ顧客に毎朝連絡の案が出る連絡済みの記録を引き、変化が無ければ作らない
台帳を直さず、同じ変化が毎朝出る連絡を送ったら台帳を直す、を1つの手順にする
ワークフローが日本の夜中に動くワークフローのタイムゾーンを Asia/Tokyo にする
朝のメールが取り切れないGmail Trigger の1回あたりの上限を上げる
APIとメールで予定が違う両方を並べ、担当者がフォワーダーに確かめる

上の3行が、この構成の失敗のほとんどです。 どれも、予定のデータをそろえる段階の問題で、ここがずれると、規則もエージェントも正しく動きません。

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

この構成で扱うデータ: 本船・航海の予定、B/L番号、顧客と納品先、納期、手配先の業者、輸入する品目です。取引先の名前と取引の量は、自社の商売の情報そのものです。

  1. AIに渡す範囲を絞る … 影響の整理と連絡の案に、仕入れ値や販売価格は要りません。台帳から渡す列を決め、金額の列を含めないでください
  2. 連絡を自動で送らない … 顧客への連絡は、納期の約束として受け取られます。誤った日付の連絡1通は、取り消しの連絡と信頼の両方を失います
  3. 納期と代わりの輸送手段は人が決める … この構成が出すのは、影響の整理と連絡の案です
  4. 船会社のAPIとColinsの利用条件を守る … APIの認証情報は n8n の資格情報に置き、ワークフローの中に書き込みません。Colins のような会員登録制のサービスを、利用条件で認められていない方法で機械的に巡回しないでください

誤りが起きた場合のリスクは、影響を見落として手配が崩れることと、誤った日付を顧客に伝えることの2つです。 前者は規則の判定で、後者は日付の計算と約束を人の側に置くことで防ぎます。

10まず何から始めるか

1週目:必要日数の表を作る

揚げ港ごとに、入港から通関・搬出・配送までの日数を、過去3か月の実績から書き出します。この表が無いと、納期への影響を判定できません。

2週目:5隻で試す

第8章の手順で、今週入港する5隻の影響を洗い出させます。担当者の見立てと比べ、日付の計算の誤りがどこに出るかを見ます。

3週目:予定の入口を2つに絞ってつなぐ

取引の多い船会社2社のAPIの利用条件を確かめ、フォワーダー2社のメールに Gmail のラベルを付けます。本船名と航海番号の表記をそろえる規則を作ります。

4週目:規則の判定を n8n で毎朝動かす

変化と影響の判定を一覧にしてチャットに出します。エージェントはまだ入れず、規則の判定を1か月見ます。

2か月目以降: エージェントを足し、変化に気づいた日と入港予定日の差を毎月数えます。入港の3日前までに気づける案件が大半になった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-06/最終更新:2026-10-06
確認した内容情報源確認日
DCSA の運航スケジュールの標準が、本船のスケジュールと例外の情報を、サービス・航海・寄港の単位で扱い、船会社・ターミナルなどの間で交換するための共通の構造・データ項目・API を定めていることDCSA: Operational Vessel Schedules2026-10-06
Colins が国土交通省港湾局の開発・運営する会員登録制のシステムで、輸入コンテナ搬出可否情報と船舶動静情報などを提供していること。公開ページに API などの連携方法の記載がないことColins: Colinsとは2026-10-06
Gmail Trigger がポーリングで新しいメッセージを見ること、ラベル・検索・差出人で絞れること、1回あたりの取得数が既定10・最大50であることn8n Docs: Gmail Trigger2026-10-06
Schedule Trigger が、ワークフローのタイムゾーンかインスタンスのタイムゾーン(セルフホストの既定は America/New York)を使うこと。保存して公開しないと動かないことn8n Docs: Schedule Trigger2026-10-06
HTTP Request ノードの、応答のステータスを含める、Never Error、Batching のオプションn8n Docs: HTTP Request2026-10-06
Tools Agent が道具の機能を理解して使う道具を決めること。少なくとも1つの道具をつなぐ必要があることn8n Docs: Tools Agent2026-10-06
Structured Output Parser が JSON Schema に沿って項目を返すこと。JSONの例から作るとすべての項目が必須として扱われることn8n Docs: Structured Output Parser2026-10-06

船会社のAPIの提供の有無と利用条件は、船会社ごとに違います。 導入の前に、契約している船会社とフォワーダーに確かめてください。

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

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

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

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