仕入先から届く製造中止・仕様変更の通知を読み取って、影響する製品と手配を洗い出す
仕入先から届く製造中止・仕様変更の通知を入力に、部品番号・変更区分・最終発注期限を読み取り、部品表と突き合わせて影響する製品と在庫を一覧にします。担当者の作業は、通知を読んで調べることから、出てきた一覧を見て手配を決めることに変わります。
- 利用ツール
- ChatGPT/Claude/Gemini/Make/n8n/Power Automate/Zapier
- 対象業界
- IT・SaaS/医療/商社/建設/製造
- 対象部門
- 生産/購買
- 対象業務
- 内容確認・チェック/情報検索
- 主な課題
- 人手が足りない/情報が見つからない/期限・対応漏れが起きる
- AIで行う処理
- 抽出
- 主な効果
- 品質標準化/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 仕入先から通知がメールで届く。宛先は担当者個人か、購買の共有メールボックス
- 担当者がPDFを開き、部品番号・変更内容・期限を読む
- 生産管理システムを開き、その部品番号を使っている製品を検索する
- 出てきた製品ごとに、生産計画と在庫、発注残を確認する
- 在庫が期限までの生産量に足りるかを計算する
- 足りなければ、最終発注の数量を決めて起案する
- 仕様変更なら、生産技術と品質保証に回して影響の判断を仰ぐ
- 対応した記録を、Excelの管理表に残す
- 仕入先からの通知が、購買の共有メールボックスに届く
- 自動添付PDFと本文を読み取り、通知かどうかを判定する(価格改定や営業案内は除く)
- 自動部品番号・変更区分・最終発注期限・切替予定日を抽出する
- 自動抽出した部品番号を、表記のゆれを吸収して自社の部品番号に対応づける
- 自動部品表を展開し、その部品を使っている製品をすべて洗い出す
- 自動製品ごとに、今後12か月の生産計画数と現在庫・発注残を集める
- 自動期限までに必要な数量と、不足する数量を計算する
- 自動影響一覧を作り、担当者と生産技術にまとめて通知する
- 人担当者が一覧を見て、最終発注・代替品評価・設計変更のいずれにするかを決める
- 自動決めた対応を管理台帳に記録し、期限の前にリマインドする
各工程の詳しい説明を読む
- 仕入先から通知がメールで届く。宛先は担当者個人か、購買の共有メールボックス
- 担当者がPDFを開き、部品番号・変更内容・期限を読む
- 生産管理システムを開き、その部品番号を使っている製品を検索する
- 出てきた製品ごとに、生産計画と在庫、発注残を確認する
- 在庫が期限までの生産量に足りるかを計算する
- 足りなければ、最終発注の数量を決めて起案する
- 仕様変更なら、生産技術と品質保証に回して影響の判断を仰ぐ
- 対応した記録を、Excelの管理表に残す
問題は4つあります。
(a)通知が担当者のメールに埋もれる。 仕入先からのメールは1日に何十通も届きます。「重要なお知らせ」という件名で送られてくるものの中身が、単なる価格改定の案内であることもあります。本当に急ぐ通知が、急がない通知と同じ見た目で届きます。
(b)部品番号の表記が仕入先ごとに違う。 仕入先の型番と、自社で付けた部品番号が一致しません。「ABC-1234-05」と「ABC1234-05」と「ABC-1234/05」が同じ部品ということがあります。検索で1文字違うと出てきません。
(c)1つの部品が何製品に使われているかが読めない。 部品表は階層構造です。ある部品がユニットAに使われ、ユニットAが製品XとYに使われている場合、部品番号で検索しただけではユニットAしか出ません。展開してたどる必要があります。
(d)対応の記録が担当者ごとのExcelにある。 誰がどの通知にどう対応したかが一覧になっていません。担当者が休むと、その人あての通知が止まります。
- 仕入先からの通知が、購買の共有メールボックスに届く
- 【自動】 添付PDFと本文を読み取り、通知かどうかを判定する(価格改定や営業案内は除く)
- 【自動】 部品番号・変更区分・最終発注期限・切替予定日を抽出する
- 【自動】 抽出した部品番号を、表記のゆれを吸収して自社の部品番号に対応づける
- 【自動】 部品表を展開し、その部品を使っている製品をすべて洗い出す
- 【自動】 製品ごとに、今後12か月の生産計画数と現在庫・発注残を集める
- 【自動】 期限までに必要な数量と、不足する数量を計算する
- 【自動】 影響一覧を作り、担当者と生産技術にまとめて通知する
- 【人】 担当者が一覧を見て、最終発注・代替品評価・設計変更のいずれにするかを決める
- 【自動】 決めた対応を管理台帳に記録し、期限の前にリマインドする
自動化されるのは「読む」「探す」「展開する」「集める」「計算する」の5つです。残るのは「どうするか決める」だけになります。
不足数量の計算まで自動化する点が、この構成の価値です。 一覧に「製品Xで来年3月までに240個必要、在庫120個、発注残0個、不足120個」と出ていれば、担当者はその場で起案できます。
02今回想定するシステム構成
仕入先からのメール(PDF添付) │ ▼【トリガー】共有メールボックスに新着 Make(シナリオ) │ ├──▶ Gemini API ── 通知かどうかの判定/部品番号・区分・期限の抽出 │ ├──▶ 部品番号の名寄せ(表記ゆれの吸収) │ ├──▶ 生産管理システム ── 部品表の展開/在庫・発注残・生産計画の取得 │ (Iterator で製品ごとに回し、Array aggregator でまとめる) │ └──▶ 不足数量の計算 │ ▼ 影響一覧(製品・必要数・在庫・不足数・期限)──【人が判断】 │ ▼ 対応台帳への記録 + 期限前のリマインド
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make | n8n、Power Automate、Zapier |
| 処理 | Gemini API | Claude API、OpenAI API |
| 台帳 | 生産管理システム | 各社のERP、スプレッドシート |
| 通知 | Microsoft Teams | Slack、電子メール |
Makeを選ぶ理由は、1件の通知から複数の製品に枝分かれする処理に向いているためです。 Makeでは、配列を一連のバンドルに変換する Iterator と、複数のバンドルを1つにまとめる Array aggregator が用意されています。「1つの部品番号 → 影響する8製品 → 製品ごとに在庫照会 → 1つの一覧に戻す」という形が、ノードを並べるだけで書けます。
生産管理システムとの連携方法は製品によって違います。APIがあればそれを使い、なければ日次でエクスポートしたファイルを参照します。部品表と在庫は、リアルタイムである必要がありません。 前日時点の値で判断できます。
03どうやって実装するのか
処理の起点を決める
購買の共有メールボックスに新着メールが届いたことを起点にします。担当者個人のメールアドレスを起点にしません。理由は3つあります。
1つは、担当者が休んだときに止まるのを避けるためです。2つ目は、個人のメールを外部サービスが読む構成を作ると、私信まで対象になってしまうためです。3つ目は、仕入先に「今後の通知はこのアドレスへ」と依頼できるためです。
仕入先ポータルにしか掲示されない通知は、この構成では拾えません。ポータル運用の仕入先には、メール通知の設定を依頼してください。 それができない数社は、従来どおり人が週1回見に行く運用を残します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 通知メール | 本文と添付PDF | 共有メールボックス |
| 部品マスタ | 自社部品番号、仕入先の型番、仕入先コード、代替品の指定 | 生産管理システム |
| 部品表(BOM) | 製品と部品の親子関係、員数 | 生産管理システム |
| 在庫・発注残 | 部品ごとの現在庫、発注済み未入荷 | 生産管理システム |
| 生産計画 | 製品ごとの今後12か月の計画数 | 生産管理システム |
| 過去の通知と対応 | どう判断したかの記録 | 対応台帳 |
部品マスタに「仕入先の型番」の欄があるかどうかが、この構成の成否を分けます。 ない場合は、この欄を作ることから始めます。6,000点すべてを埋める必要はありません。通知が届いた部品から順に埋めていけば、半年で主要な仕入先はそろいます。
データの取得方法を決める
通知の本文とPDF: メールの本文はそのままテキストで取れます。添付PDFはテキスト情報を持つものが大半ですが、スキャンした紙をPDFにしたものも混ざります。テキストが取れない場合は、AIの画像入力に渡します。1ページの通知なので、この程度なら十分に読めます。
部品表の展開: 部品番号から製品をたどる処理は、生産管理システムの「逆展開」「使用先照会」といった機能を使います。この機能がない場合は、部品表のデータをエクスポートし、親子関係を再帰的にたどるスクリプトを書きます。
在庫と生産計画: 日次のエクスポートで足ります。夜間バッチで前日分をファイルに出し、それを参照します。
AIへ渡す前に整形する
- 通知かどうかの選別 … 仕入先からのメールには、価格改定、営業案内、納期回答、請求が混ざります。件名と本文の冒頭で一次選別し、迷うものだけAIに判定させます
- 部品番号の正規化 … ハイフン、スラッシュ、スペースを取り除いた文字列を作り、これで突き合わせます。「ABC-1234-05」「ABC1234/05」がどちらも
ABC123405になります - 同じ通知の重複除去 … 同じ通知が担当者あてと共有あての両方に届くことがあります。仕入先+部品番号+通知日で重複を検出します
- 複数部品が書かれた通知の分割 … 1通の通知に部品が20点並ぶことがあります。部品ごとに1件として処理します
- 期限の書式の統一 … 「2026年12月31日」「2026/12/31」「Dec 31, 2026」を同じ形にそろえます
AIに処理させる
AIと従来の処理で役割を分けます。
従来の処理にさせること: 部品表の展開、在庫と生産計画の集計、不足数量の計算。ここは計算であって判断ではありません。 AIにさせると、数字が合わなかったときに原因が追えません。
AIにさせること:
| 処理 | 内容 |
|---|---|
| 通知の種類の判定 | 製造中止/仕様変更/製造場所の変更/代替品案内/対象外(価格改定など) |
| 項目の抽出 | 部品番号、仕入先の型番、最終発注期限、切替予定日、代替品の型番 |
| 部品番号の対応づけ | 通知に書かれた型番が、自社のどの部品番号に当たるか |
| 変更内容の要約 | 「寸法が変わる」「材質が変わる」「梱包形態だけが変わる」を一文で |
| 緊急度の一次判定 | 期限までの日数と、変更が製品に及ぼす度合いから |
最後の緊急度はあくまで並べ替えの材料です。緊急度が低いと判定されたものを自動で放置する構成にはしません。
指示内容を固定する
あなたは製造業の調達担当を支援する立場です。
仕入先から届いた通知を読み、部品番号・変更区分・期限を抽出してください。
【厳守事項】
- 通知に書かれていない値を補わないでください。
期限の記載がなければ deadline を null にしてください。
「おそらく月末」のような推測を入れないでください。
- 部品番号は、通知に書かれた文字列をそのまま part_number_as_written に入れ、
自社部品番号への対応づけは candidates に候補として列挙してください。
1つに決めないでください。
- 1通に複数の部品が書かれている場合は、部品ごとに1件ずつ返してください。
- 変更区分は次から選んでください。判断がつかない場合は "unknown" にしてください。
eol / spec_change / site_change / alternative / not_applicable
- 「梱包形態のみの変更」「ラベルのみの変更」は spec_change ではなく
site_change として扱い、その旨を note に書いてください。
- 原文の該当箇所を evidence にそのまま入れてください。要約しないでください。
【メール本文】
{mail_body}
【添付PDFのテキスト】
{pdf_text}
【この仕入先の過去の通知(直近10件の書式)】
{past_notices}
「1つに決めないでください」の指示が重要です。 部品番号の対応づけをAIに断定させると、似た型番の別部品に紐づいた場合に、まったく関係のない製品の影響一覧が出ます。候補を並べさせ、絞り込みは正規化した文字列の一致で機械的に行います。
過去の通知を10件渡すのも効きます。 仕入先ごとに通知の書式は決まっています。同じ書式の例を見せると、項目の取り違えが減ります。
出力形式を固定する
Gemini API の構造化出力を使い、決めた形のJSONで受け取ります。スキーマは properties でプロパティを定義し、required で必須項目を列挙します。非常に大きい、あるいは深くネストしたスキーマは拒否されることがあるため、1回の呼び出しで返させる構造は浅く保ちます。
{
"notices": [
{
"notice_type": "eol | spec_change | site_change | alternative | not_applicable | unknown",
"supplier_name": "",
"part_number_as_written": "",
"candidates": [
{ "internal_part_no": "", "match_reason": "" }
],
"deadline": null,
"switch_date": null,
"alternative_part_no": "",
"change_summary": "",
"evidence": "",
"confidence": "high | medium | low"
}
]
}
影響の計算結果は、AIではなく後段の処理が作ります。
{
"internal_part_no": "",
"affected_products": [
{
"product_no": "",
"qty_per_unit": 0,
"plan_12m": 0,
"required_by_deadline": 0,
"stock_on_hand": 0,
"on_order": 0,
"shortage": 0
}
],
"total_shortage": 0
} システムへ連携する
つなぎ先は3つです。
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有メールボックス | Make のメールコネクタ | 通知の取り込み |
| 生産管理システム | API または日次エクスポート | 部品表・在庫・生産計画の参照 |
| Teams | Make のコネクタ | 影響一覧の通知 |
生産管理システムへの書き込みはしません。 発注の起案は、担当者が既存の画面で行います。ここを自動化すると、誤った影響判定がそのまま発注になります。
Make のシナリオは、エラーで止まったときの扱いを決めておきます。Make には、エラーが起きたバンドルを、自分で定義した代替の出力に置き換えて処理を続ける Resume error handler があります。在庫照会が1製品だけ失敗したときに、シナリオ全体を止めないためにこれを使います。置き換えた値には「取得失敗」と分かる印を入れ、一覧上で人が気づけるようにします。
人が確認する
全件、人が判断します。対応を自動で決める構成にはしません。
理由は、対応の選択肢が状況で変わるためです。同じ製造中止でも、最終発注で数年分を買うのか、代替品に切り替えるのか、設計変更するのかは、製品の残存期間と在庫費用と評価工数を天秤にかけて決めます。この判断材料は部品表の外にあります。
確認を速くするための設計が重要です。
- 一覧を期限の近い順に並べる
- 不足数量が0の部品(在庫で足りる)を下に送る
confidenceが低い抽出結果と、部品番号の候補が2つ以上ある件に印を付ける- 影響製品が0件だった通知も必ず一覧に残す(対応づけが失敗しただけの可能性がある)
最後の項目が重要です。「影響なし」と「対応づけに失敗した」は見た目が同じになります。区別できないと、危険なほうを見落とします。
例外に対処する
| 起きること | 対応 |
|---|---|
| 部品番号が自社マスタに見つからない | 影響一覧を作らず、「対応づけ不能」として人へ回す。「影響なし」と表示しない |
| 候補が複数ある | 候補を並べて人に選ばせる。自動で1つに決めない |
| 添付PDFがスキャン画像でテキストが取れない | AIの画像入力に渡す。それでも読めなければ人へ回す |
| 1通に部品が50点並んでいる | 部品ごとに分割して処理する。一覧は1通単位でまとめて出す |
| 期限の記載がない | deadline を null にして人へ回す。仕入先への確認を促す文面を添える |
| 同じ通知が複数の宛先に届く | 仕入先+部品番号+通知日で重複を検出し、1件にまとめる |
| 在庫照会が失敗する | Resume error handler で「取得失敗」の値に置き換え、処理を続ける。一覧に印を残す |
| 部品表の階層が深く、展開が終わらない | 展開の深さに上限を設け、超えたら人へ回す。無限ループを防ぐ |
| 通知ではないメール(価格改定など)を拾う | 選別の段階で除く。除いたものの一覧を週次で人が見て、誤って除いていないか確認する |
| 仕入先ポータルにしか出ない通知 | この構成の対象外。対象の仕入先を一覧にして、週1回人が見る運用を残す |
記録を残す
- 受信した通知(メール本文と添付の原本)
- AIが抽出した項目と
evidence、confidence - 部品番号の対応づけの結果と、人が選び直したかどうか
- 影響一覧(計算に使った在庫・計画の値と、取得した日時)
- 人が決めた対応(最終発注/代替品評価/設計変更/対応不要)と、その理由
- 期限までの残日数と、リマインドを送った記録
4つ目で「計算に使った値と取得日時」を残すのが要です。後から「なぜこの数量で発注したのか」を問われたときに、当時の在庫と計画を再現できないと説明ができません。
対応の記録は、通知の期限から最低でも5年は保存します。製造中止の判断は、数年後に「なぜあのとき買わなかったのか」と振り返られることがあります。
04実装レベルの3段階
半自動化の時点で、35分が20分程度になります。 部品表をたどる作業が消えるためです。本格構成にすると12分程度になりますが、不足数量の計算と対応台帳の作り込みが必要です。 期限前リマインドは、本格構成まで待たずに作る価値があります。 対応を決めた後、実際に発注するまでの間に忘れることがあるためです。台帳に期限を入れて毎朝チェックするだけの処理は、半日で作れます。
05工数削減シミュレーション
導入後 60件 × 12分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 電子部品・機構部品を数千点以上調達しており、仕入先からの製造中止通知や仕様変更通知が月30件以上届く企業。部品表(BOM)が生産管理システムやERPで管理されており、部品番号で製品をたどれる場合。最終購入の期限が切られる通知が多く、対応が遅れると生産が止まる業種。
- 調達する部品が数十点で、通知が年に数件しかない場合。部品表が紙やスプレッドシートで個人管理されており、部品番号から製品をたどれない場合。仕入先が数社に限られ、変更の連絡が電話で来る運用の場合。
07最小構成で試す方法
- 直近3か月に届いた通知を20件集める(製造中止と仕様変更を混ぜる)
- PDFのテキストをAIの画面に貼り付け、「部品番号・変更区分・最終発注期限を表にしてください。書かれていない項目は空欄にしてください」と指示する
- 出てきた表を、当時の対応記録と突き合わせる
- 20件のうち、部品番号と期限が正しく取れたのが何件かを数える
この検証だけは必ずやってください。 抽出の精度は、仕入先が使う通知の書式に強く依存します。海外の仕入先からの英文通知が多い場合と、国内仕入先の定型フォーマットが多い場合では、結果がまったく違います。
判断の目安は次のとおりです。
| 部品番号と期限の正解率 | 判断 |
|---|---|
| 9割以上 | 自動化する価値がある |
| 7〜9割 | 主要仕入先20社に絞って始める。残りは人が読む |
| 7割未満 | 抽出より先に、部品マスタの「仕入先型番」欄を整備する |
あわせて、部品表の逆展開が何秒で終わるかも測ってください。 部品点数が多いと、ここが処理時間のほとんどを占めます。1件に5分かかるなら、通知が集中したときに詰まります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 部品番号の表記が一致せず、対応づけできない | ハイフン・スラッシュ・スペースを除いた文字列で突き合わせる。部品マスタに「仕入先型番」欄を作る |
| 「影響なし」と「対応づけ失敗」が区別できない | 影響製品0件の通知も必ず一覧に残し、理由を明記する。ここを誤ると見落としが起きる |
| 部品表の逆展開が遅い | 部品表を事前に展開した表(部品→最終製品)を夜間に作っておく。都度たどらない |
| 1つの部品が数十製品に使われ、一覧が長くなる | 生産計画に入っている製品だけを上に出す。計画のない製品は折りたたむ |
| 価格改定の案内まで拾ってしまう | 件名と本文冒頭で一次選別する。除いたものの一覧を週次で人が確認する |
| 期限のない通知が多い | deadline を null にして人へ回す。仕入先へ期限を確認する文面を自動で用意する |
| 海外仕入先の英文通知で抽出が落ちる | 仕入先ごとに過去の通知例をプロンプトに渡す。言語で分けたプロンプトを用意する |
| シナリオが途中で止まり、一部だけ処理される | Resume error handler で代替値に置き換え、処理を続ける。置き換えた箇所を一覧に明示する |
| 同じ通知を二重に処理する | 仕入先+部品番号+通知日を鍵にして重複を検出する |
| 対応を決めた後、発注を忘れる | 台帳に期限を持ち、毎朝の未対応一覧に出す。対応済みにするまで消えないようにする |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 仕入先名、部品番号、調達価格は含めないとしても、自社がどの部品をどの製品に使っているかという設計情報が含まれます。
- 外部AIへの入力可否 … 部品表は自社製品の構成そのものです。AIに渡すのは通知の本文とPDFまでとし、部品表と生産計画は外部に出さない設計にしてください。 影響範囲の計算は自社の環境内で行います
- 仕入先との秘密保持 … 通知には仕入先の生産計画に関する情報が含まれることがあります。仕入先との秘密保持契約に、第三者のサービスへの入力が抵触しないかを確認してください
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- アクセス権限 … 影響一覧には生産計画数が含まれます。閲覧できる範囲を購買・生産技術・生産管理に限定します
- 自動実行してよい範囲 … 発注の起案と確定は人が行います。不足数量が自動計算されることと、自動で発注されることは別です。 誤った対応づけがそのまま発注になる構成にしないでください
誤りが起きた場合のリスクは、影響製品の取りこぼしによる生産停止と、誤った対応づけによる不要な発注です。前者は「対応づけ失敗を影響なしと表示しない」設計で防ぎ、後者は人の確認で防ぎます。
10まず何から始めるか
1週目:20件で抽出の精度を測る
直近3か月の通知20件をAIに読ませ、部品番号と期限が正しく取れるかを測ります。あわせて、部品マスタに「仕入先型番」の欄があるかを確認してください。 なければ、そこから始めることになります。
2週目:部品表の逆展開を作る
部品→最終製品の対応表を、夜間バッチで作れるようにします。これが1件5分かかるようだと運用に乗りません。事前に展開した表を持つ形にします。この部分がいちばん時間がかかります。
3〜4週目:半自動化を作る
共有メールボックスの監視から影響一覧の出力までを作り、担当者1名が1か月使います。35分が何分になるかを実測します。不足数量の計算はまだ作りません。
2か月目以降: 削減効果が確認できたら、不足数量の計算と対応台帳、期限前リマインドを足します。並行して、対応づけに失敗した通知を見ながら、部品マスタの仕入先型番欄を埋めていきます。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Make のフロー制御に、配列を一連のバンドルに変換する Iterator と、複数のバンドルを1つにまとめる Array aggregator があること | Make: Flow control | 2026-09-22 |
| Make の Resume error handler が、エラーの起きたバンドルを自分で定義した代替の出力に置き換え、シナリオの残りを続行させること。Skip error handler と違い、バンドルがフローから除かれないこと | Make: Resume error handler | 2026-09-22 |
Gemini API の構造化出力で、properties と required を持つスキーマを指定できること。非常に大きい、あるいは深くネストしたスキーマは拒否される場合があること | Google: Structured output | 2026-09-22 |
生産管理システムからの部品表の逆展開、在庫・生産計画の取得方法は製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 APIの有無と仕様は、自社の生産管理システムのベンダーに確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0147)についてのご相談はこちらから。
