主要な仕入先のWebのお知らせ(価格改定・製造中止・納期遅延)をエージェントが毎週見回り、自社の購買品目と照らして影響する品目と手配の担当を一覧にする
主要な仕入先のWebサイトに出る価格改定・製造中止・納期遅延のお知らせを、エージェントが毎週見回ります。お知らせから対象の型番と実施日を取り出し、自社の購買品目と発注残に照らして、影響する品目と手配の担当を一覧にします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 商社/建設/製造
- 対象部門
- 購買
- 対象業務
- 情報検索/比較検討
- 主な課題
- 属人化している/情報が見つからない/期限・対応漏れが起きる
- AIで行う処理
- エージェント
- 主な効果
- 属人化解消/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 週に一度、バイヤーが受け持ちの仕入先のお知らせのページを順に開き、前回から増えた項目を探す
- 新しいお知らせと、付いているPDF(対象品番の一覧など)を開き、種類・対象の型番・実施日・最終受注日・代替品を書き出す
- 書き出した型番を、生産管理システムの購買品目マスタでメーカー型番から検索する
- 該当した品目について、発注残と年間の使用量を確かめる
- 品目の担当バイヤーを調べ、影響のメモと一緒に回す
- 担当バイヤーが、値上げの確認、最終の買い置き、代替品の評価の依頼などを進める
- 自動毎週月曜の朝7時にワークフローが動き、仕入先の一覧にある URL を順に取りに行く
- 自動RSS があるものは RSS を読み、無いものはページの HTML からお知らせのリンクと見出しを取り出す
- 自動前回の一覧と比べ、新しいお知らせだけを拾う
- 自動見出しに価格・生産終了・納期などの語を含むものに絞り、本文と添付のPDFから文字を取り出す
- 【AI】 エージェントが種類・対象の型番・実施日・最終受注日・代替品を取り出し、品目マスタと発注残を引いて影響の候補を挙げる
- 自動影響の候補に担当バイヤーを付け、最終受注日と実施日の近い順に一覧へ書き、購買部のチャットへ知らせる
- 人担当バイヤーが候補を確かめ、影響の有無と対応を一覧に記録する
- 人値上げの確認、最終の買い置き、代替品の評価を、設計や生産管理と進める
各工程の詳しい説明を読む
- 週に一度、バイヤーが受け持ちの仕入先のお知らせのページを順に開き、前回から増えた項目を探す
- 新しいお知らせと、付いているPDF(対象品番の一覧など)を開き、種類・対象の型番・実施日・最終受注日・代替品を書き出す
- 書き出した型番を、生産管理システムの購買品目マスタでメーカー型番から検索する
- 該当した品目について、発注残と年間の使用量を確かめる
- 品目の担当バイヤーを調べ、影響のメモと一緒に回す
- 担当バイヤーが、値上げの確認、最終の買い置き、代替品の評価の依頼などを進める
(a)見回りがバイヤーの手の空き具合で決まる。 月末の納期調整に追われる週は、見回りが後回しになります。80社のページを毎週全部見るのは、受け持ちを分けても続きません。 抜けた週に出た製造中止のお知らせに、翌月まで気づかないことがあります。
(b)お知らせの型番と自社の品目がそのまま一致しない。 お知らせには「XXシリーズ(一部を除く)」「型番末尾 -T(テーピング品)」のように書かれ、品目マスタには梱包の違いや色違いの品番が別々に登録されています。1件のお知らせに対し、前方一致や部分一致で何度も検索し直します。
(c)PDFの品番一覧が長い。 製造中止のお知らせには、数十から数百の品番がPDFの表で付いていることがあります。1つずつ検索に打ち込むので、表の長さだけ時間がかかります。
(d)最終受注日と実施日が一覧になっていない。 価格改定の実施日、製造中止の最終受注日、納期遅延の見込みが、バイヤーごとのメモに散らばっています。どの品目の期限が近いかを、購買部として一度に見られません。
- 【自動】 毎週月曜の朝7時にワークフローが動き、仕入先の一覧にある URL を順に取りに行く
- 【自動】 RSS があるものは RSS を読み、無いものはページの HTML からお知らせのリンクと見出しを取り出す
- 【自動】 前回の一覧と比べ、新しいお知らせだけを拾う
- 【自動】 見出しに価格・生産終了・納期などの語を含むものに絞り、本文と添付のPDFから文字を取り出す
- 【AI】 エージェントが種類・対象の型番・実施日・最終受注日・代替品を取り出し、品目マスタと発注残を引いて影響の候補を挙げる
- 【自動】 影響の候補に担当バイヤーを付け、最終受注日と実施日の近い順に一覧へ書き、購買部のチャットへ知らせる
- 【人】 担当バイヤーが候補を確かめ、影響の有無と対応を一覧に記録する
- 【人】 値上げの確認、最終の買い置き、代替品の評価を、設計や生産管理と進める
3番目をAIにさせないのは、意図してのことです。 新しいお知らせかどうかは、リンクと見出しの比較で確実に決まります。AIに「新しいか」を判断させると、見落としたときに理由を追えません。
4番目で見出しの語で絞るのも同じ考えです。 仕入先のお知らせには、展示会の案内や休業日の案内も混ざります。語で絞り込んだものだけをエージェントに渡し、絞り込みで外したものは見出しだけを一覧の末尾に残します。
02今回想定するシステム構成
仕入先のWebサイト(お知らせ・ニュース・生産終了品のページ、RSS) │ ▼【トリガー】Schedule Trigger(毎週月曜 7時、Asia/Tokyo) n8n のワークフロー ├──▶ RSS Read(RSS がある仕入先) ├──▶ HTTP Request + HTML(RSS が無い仕入先。リンクと見出しを取り出す) ├──▶ Compare Datasets で前回の一覧と比べ、新しいお知らせを拾う ├──▶ 見出しの語で絞り、本文の HTML と添付の PDF から文字を取り出す ▼ AI Agent ノード(Tools Agent)+ Claude │ お知らせ1件ごとに、道具を選んで引く │ ・品目マスタをメーカー型番で引く(完全一致/前方一致) │ ・品目マスタをシリーズ名で引く ・発注残を品目で引く │ ・過去のお知らせの記録を引く │ Structured Output Parser で決まった形のJSONを返す ▼ 影響の一覧(PostgreSQL の別の表)→ 購買部のチャットへ通知 ▼【人】影響の判断・値上げの確認・最終の買い置き・代替品の評価
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Power Automate、Zapier |
| 生成AI | Claude API(n8n の Anthropic Chat Model ノード) | OpenAI API、Gemini API |
| 連携 | PostgreSQL(購買品目マスタと発注残の写し、影響の一覧) | MySQL |
| 通知 | 社内チャット | メール |
新しく足すのは、n8n のワークフローと、品目マスタ・発注残の写しと、影響の一覧だけです。 生産管理システムには書き込みません。毎晩、生産管理システムから品目マスタと発注残を書き出して写しを作り、エージェントはその写しを引きます。
お知らせの取り方は、仕入先ごとに2通りです。 RSS を出している仕入先は、n8n の RSS Read ノードで読みます。RSS が無い仕入先は、HTTP Request でページを取り、HTML ノードで取り出します。HTML ノードの Extract HTML Content は、CSS セレクターで要素を指定し、テキスト・属性(リンク先など)・HTML を取り出せます。 仕入先の一覧の表に、URL と、お知らせの一覧の部分を指す CSS セレクターを持たせます。
新しいお知らせは、Compare Datasets で拾います。 2つの入力を比べ、Aにだけあるもの、同じもの、違うもの、Bにだけあるものの4つに分けて出すノードです。比べる項目は複数指定できます。今回の一覧と前回の一覧を、リンク先と見出しの組で比べ、今回にだけあるものが新しいお知らせです。
照合は、エージェントの道具として Postgres ノードで引きます。 Postgres ノードはAIエージェントの道具として使え、多くのパラメーターをAIの指示で設定できるとされています。この構成では Select と、パラメーター付きの Execute Query だけを道具に渡します。
n8n のエージェントを選ぶ理由は、お知らせ1件ごとに引き方が変わるからです。 1品番の価格改定は型番の完全一致で済み、シリーズ全品の製造中止はシリーズ名と前方一致で引き、納期遅延は発注残まで引きます。Tools Agent は、道具の機能を理解し、タスクに応じてどの道具を使うかを決めるとされています。
03どうやって実装するのか
処理の起点を決める
毎週月曜の朝7時に、Schedule Trigger で動かします。 週の初めにバイヤーが一覧を見て、その週の手配に反映できるようにするためです。Schedule Trigger の週単位の設定では、何週ごとか、曜日、時、分を指定できます。
Schedule Trigger は、ワークフローのタイムゾーンが無ければ n8n のインスタンスのタイムゾーンを使い、セルフホストの既定は America/New York とされています。ワークフローの設定でタイムゾーンを Asia/Tokyo にし、保存して公開します。公開しないと Schedule Trigger は動かないとされています。
見回りの対象は、仕入先の一覧の表で持ちます。 列は、仕入先コード、仕入先名、URL、RSS の有無、CSS セレクター、取り扱いの区分(メーカー直/商社経由)、受け持ちのバイヤーです。ワークフローの中にURLを書き込まないでください。 仕入先が増えたとき、表に1行足すだけで見回りの対象になります。第3章の(a)は、この表で解きます。
商社経由で買う品目は、商社ではなくメーカーのページを見回りの対象にします。 第2章で書いたとおり、メーカーの公表のほうが商社からの連絡より早いからです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 仕入先の一覧 | URL、RSS の有無、CSS セレクター、受け持ちのバイヤー | 自社で作る表 |
| 前回のお知らせの一覧 | 仕入先ごとのリンク先と見出し | 前回の実行の記録 |
| お知らせの本文 | ページの本文の文字と、添付のPDFの文字 | 仕入先のWebサイト |
| 購買品目マスタの写し | 社内品番、メーカー名、メーカー型番、シリーズ名、仕入先、担当バイヤー、年間使用量 | 生産管理システムから毎晩写す |
| 発注残の写し | 社内品番、発注番号、数量、納期 | 生産管理システムから毎晩写す |
| 過去のお知らせの記録 | 同じ型番・シリーズについての前回のお知らせと、バイヤーの判断 | 影響の一覧 |
質を決めるのは、品目マスタのシリーズ名の列です。 お知らせが「XXシリーズ全品」と書いてきたとき、品目マスタにシリーズ名が無ければ、エージェントは型番の前方一致で推し量るしかありません。型番の頭の文字が同じでも別のシリーズということがあり、候補が広がりすぎます。 年間の使用量の多い品目から、シリーズ名を埋めます。
過去のお知らせの記録は、同じ型番が何度も出てくるために持ちます。 価格改定の予告と確定、製造中止の予告と最終受注日の決定のように、同じ品目について2回、3回とお知らせが出ます。 前回のお知らせを添えると、バイヤーは差分だけを見れば済みます。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| RSS の項目 | RSS がある仕入先 | RSS Read(URL を指定) |
| ページの HTML | RSS が無い仕入先のお知らせのページ | HTTP Request(GET) |
| リンクと見出し | 取った HTML | HTML ノードの Extract HTML Content(CSS セレクター、テキストと href 属性) |
| 新しいお知らせ | 前回と今回の一覧 | Compare Datasets(今回にだけあるもの) |
| 本文と添付 | 新しいお知らせのリンク先 | HTTP Request で取り、PDF はファイルとして受けて文字を取り出す |
80社のページは、間隔を空けて1件ずつ取ります。 HTTP Request には、1回に送る件数と、次の送信までの待ち時間を決める Batching の設定があります。1件ずつ、数秒の間隔で取ります。応答のヘッダーを待つ時間の上限も Timeout で決めます。1社のページが止まっていても、見回り全体が止まらないようにします。
リンクの比較は、リンク先と見出しの組で行います。 仕入先によっては、同じお知らせを更新すると見出しに「(更新)」が付くだけでURLは変わりません。見出しが違う同じURLは「更新」として拾います。 Compare Datasets の「違うもの」の出力がそれに当たります。
RSS とページの両方がある仕入先は、RSS を優先します。 ページの作りの変更に左右されないからです。
AIへ渡す前に整形する
- 見出しで絞る … 「価格」「改定」「値上げ」「生産終了」「製造中止」「販売終了」「EOL」「納期」「供給」「出荷」などの語を見出しに含むものだけを、エージェントに渡します。外したものは見出しとURLだけを一覧の末尾に残します
- 本文の共通部分を外す … メニュー、フッター、関連記事の欄を外し、お知らせの本文だけにします
- PDFの文字が取れたかを確かめる … 画像だけのPDFは文字が取れません。取れた文字数が極端に少なければ、人に回します
- 型番の書き方をそろえる … 全角・半角、ハイフンと長音記号の取り違え、空白を、お知らせと品目マスタの両方で同じ規則でそろえます
- 写しの日付を確かめる … 前夜の品目マスタと発注残の写しが作られていなければ、照合を止めます
- 新しいお知らせの件数を確かめる … 1社で20件を超えたら、ページの作りが変わったとみなして、その仕入先の比較を止めます
4番目を軽く見ないでください。 型番には「-」と「‐」と「ー」が混ざり、PDFから取り出した文字では全角になっていることがあります。そろえずに照合すると、品目マスタにある品目が「該当なし」になります。 エージェントが見落としたように見えますが、原因は文字の違いです。
AIに処理させる
させるのは、お知らせ1件ごとに、種類・対象の型番・日付・代替品を取り出し、品目マスタと発注残を引いて影響の候補を挙げることです。
| させること | 使う道具 | 返すもの |
|---|---|---|
| 種類を見分ける | - | 価格改定/製造中止/納期遅延/その他 |
| 対象を取り出す | - | 型番、シリーズ名、「一部を除く」などの条件の文言 |
| 日付を取り出す | - | 実施日、最終受注日、最終出荷日、遅延の見込みの期間 |
| 代替品を取り出す | - | お知らせに書かれた推奨の代替品の型番 |
| 品目マスタを型番で引く | 型番の完全一致・前方一致 | 一致した社内品番と担当バイヤー |
| 品目マスタをシリーズで引く | シリーズ名で引く | シリーズの品目 |
| 発注残を引く | 品目で発注残を引く | 発注番号、数量、納期 |
| 前回のお知らせを添える | 過去のお知らせの記録を引く | 同じ型番の前回のお知らせと判断 |
取り出しの段階では、お知らせに書かれた文言をそのまま写させます。 価格改定の率が「平均10%」と書かれていれば「平均10%」、「品目により異なる」と書かれていれば、そのまま写します。品目ごとの改定率を推し量らせません。
| させないこと | 理由 |
|---|---|
| 影響の有無の結論 | 「一部を除く」の当てはめは、型番の表を見てバイヤーが行う |
| 改定後の価格の計算 | 率の書き方がまちまちで、品目ごとの率が書かれていないことが多い |
| 最終受注日の推測 | 書かれていなければ「記載なし」。仕入先に問い合わせる |
| 代替品の採否 | 互換の確認は設計が行う |
| 品目マスタや発注の書き換え | 道具は読み取りだけ |
3行目がいちばん起きやすい失敗です。 「2027年3月末で生産を終了します」とだけ書かれたお知らせを渡すと、生成AIは最終受注日を数か月前に置いて書き添えることがあります。最終受注日は仕入先が決めるもので、推した日付で手配を組むと間に合いません。
指示内容を固定する
AI Agent ノードの System Message に、次のように書きます。
あなたは装置メーカーの購買部で、仕入先のWebサイトに出たお知らせを、
自社の購買品目と照らす担当です。入力は、新しく見つかったお知らせ1件の
本文(添付のPDFから取り出した文字を含む)と、仕入先の名前です。
【やること】
1. お知らせの種類を price_change / discontinuation / delay / other から選ぶ。
2. 対象の型番、シリーズ名、「一部を除く」などの条件の文言を取り出す。
3. 実施日、最終受注日、最終出荷日、遅延の見込みの期間、推奨の代替品を取り出す。
4. 型番は、まず完全一致で、次に前方一致で品目マスタを引く。
5. シリーズ名が書かれていれば、シリーズ名で品目マスタを引く。
6. 見つかった品目について、発注残と、過去のお知らせの記録を引く。
【厳守事項】
- 型番、条件、日付、率は、お知らせに書かれた文言をそのまま写してください。
- 書かれていない日付を推測しないでください。最終受注日が無ければ
「記載なし」とし、check_points に「最終受注日を仕入先に確認」と書いてください。
- 改定後の価格を計算しないでください。
- 影響する・しないの結論を書かないでください。match_basis に、
どの道具で何が一致したか(exact / prefix / series)だけを書いてください。
- 「一部を除く」「対象外の品番あり」と書かれているときは、
excluded_note にその文言を写し、check_points に除外の確認を書いてください。
- 品目マスタに見つからなかった型番も、not_found に残してください。
- 購買に関係のないお知らせ(展示会、休業日など)は relevant を false にしてください。
【出力】指定のJSONの形で返してください。
「not_found にも残す」を書くのは、見つからなかった型番が、型番の書き方の違いである可能性があるからです。 見つからなかったものを捨てると、前処理の不備に気づく手がかりも消えます。not_found が毎週多い仕入先は、型番のそろえ方を見直します。
「結論を書かない」も同じ考えです。 「一部を除く」の除外の表は、PDFの奥に付いていることが多く、エージェントが読み落とすと、除外された品目を「影響あり」として回してしまいます。 当てはめは、バイヤーが除外の表を見て行います。
出力形式を固定する
Structured Output Parser で、次の形のJSONを返させます。
{
"supplier": "", "source_url": "", "title": "", "relevant": true,
"notice_type": "price_change | discontinuation | delay | other",
"effective_date": "", "last_order_date": "", "last_ship_date": "",
"rate_text": "", "delay_text": "", "excluded_note": "",
"items": [
{
"part_no_in_source": "", "series": "", "replacement": "",
"hits": [
{ "internal_no": "", "maker_part_no": "", "match_basis": "exact | prefix | series",
"buyer": "", "annual_usage": "",
"open_po": [ { "po_no": "", "qty": "", "due": "" } ],
"previous_notice": "" }
]
}
],
"not_found": [""],
"check_points": [""]
}
Structured Output Parser は、JSON スキーマに沿った項目を返させる部品で、JSON の例からスキーマを作る方法と、JSON スキーマを直接書く方法があります。例から作るとすべての項目が必須として扱われるとされています。$ref による参照は使えないので、スキーマは入れ子のまま書きます。
1つ目の理由は、match_basis で確からしさを分けられることです。 exact の一致は確度が高く、prefix と series は人が確かめる前提です。通知では、exact とそれ以外を分けて出します。
2つ目は、last_order_date と effective_date で並べられることです。 第3章の(d)は、ここで解けます。
| 並べ順 | 中身 |
|---|---|
| 1 | 製造中止で、最終受注日まで90日以内、かつ hits があるもの |
| 2 | 納期遅延で、open_po があるもの |
| 3 | 価格改定で、実施日まで60日以内、かつ hits があるもの |
| 4 | match_basis が prefix または series のもの |
| 5 | hits が無かったもの(件数と見出しだけ) |
5行目も消さずに残します。 「自社の品目に該当なし」も、見回りをした記録だからです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 仕入先のWebサイト | RSS Read、HTTP Request(GET) | お知らせの一覧、本文、PDFを取る |
| 品目マスタ・発注残の写し | Postgres ノード(Select、パラメーター付きの Execute Query) | 型番・シリーズ・品目で引く |
| Claude API | Anthropic Chat Model ノード | 取り出しと照合の整理 |
| 影響の一覧 | Postgres ノード(Insert) | エージェントの出力とバイヤーの判断 |
| 社内チャット | 通知 | 並べ順のとおりに、担当バイヤーごとに出す |
影響の一覧への書き込みは、ワークフローの側で行います。 エージェントの道具には Insert を含めず、写しを引く Select と Execute Query だけを渡します。Execute Query では $1 のようなパラメーターに値を渡す形を使います。公式の説明では、クエリパラメーターのデータは n8n が無害化し、SQL インジェクションを防ぐとされています。仕入先のページから取った文字を、そのまま問い合わせに埋め込まないでください。
通知は担当バイヤーごとに分けます。一覧の全体を全員に流すと、自分の品目を探すところから始まります。
人が確認する
- 最終受注日の近い製造中止から見る … 90日以内のものは、その週のうちに最終の買い置きと代替品の評価の要否を決めます
exactの一致を確かめる … お知らせの型番と品目マスタの型番が同じものかを見ますprefixとseriesの候補を判断する … 除外の表とシリーズの範囲を見て、自社の品目が対象かを決めます。ここがバイヤーの仕事の中心ですnot_foundを眺める … 型番の書き方の違いで見つからなかったものが無いかを見ます- 判断を記録する … 影響の有無、対応(値上げの確認、買い置き、代替品の評価)、仕入先への問い合わせの要否を一覧に残します
3番目を省かないでください。 前方一致とシリーズの照合は、候補を広めに挙げる作りです。候補に挙がったことは、影響があることを意味しません。
目標は、1件をならして12分です。 取り出しと照合の結果の確認に6分、除外とシリーズの範囲の判断に4分、一覧の確認と回付に2分という見込みです。
例外に対処する
| 起きること | 対応 |
|---|---|
| ページが取れない・応答が遅い | その仕入先を「今週取得なし」として通知。前回の一覧を今回とみなさない |
| ページの作りが変わり、全部が新しく見える | 1社で20件を超えたら比較を止め、CSS セレクターの見直しを人に回す |
| 画像だけのPDFで文字が取れない | 見出しとURLだけを一覧に載せ、人に回す |
| お知らせがログインの先にある | 見回りの対象から外し、仕入先の営業担当にメールでの連絡を頼む |
| 写しが古い | 照合を止める |
| 同じ型番が予告と確定の2回出る | 前回のお知らせを添え、日付の変化を check_points に書く |
| エージェントの出力がスキーマに合わない | 見出しとURLだけを一覧に載せ、人に回す |
| 道具の呼び出しがくり返し止まらない | Max Iterations で上限を決め、超えたら人へ |
上から2行目は、仕入先のサイトの模様替えのときに起きます。 Tools Agent の Max Iterations は、答えを出すためにモデルを何回動かすかの上限で、既定は10です。件数の上限と回数の上限の2つで、暴走を止めます。
記録を残す
- 実行ごとの、仕入先ごとの取得の成否と、新しく拾ったお知らせの一覧
- 取った本文とPDFのファイル
- エージェントのJSON出力と、呼んだ道具の順番
- バイヤーの判断 … 影響の有無、対応、判断した日
- お知らせが公表された日、見回りで拾った日、最終受注日、手配を終えた日
最後の行が、この構成の物差しです。 最終受注日の何日前に拾い、何日前に手配を終えたかを並べると、見回りが遅れているのか、社内の判断が遅れているのかが分かれて見えます。
04実装レベルの3段階
半自動化だけでも、①の見回りの時間はほぼ無くなります。 ページの比較はAIを使わずに組めます。残るのは、お知らせを読んで型番を拾う②と、品目を引く③です。 本格構成で減るのは、その②と③と④です。 段階を飛ばさず、半自動化の見回りを1〜2か月回して、拾ったお知らせに漏れが無いかをバイヤーのこれまでの見回りと比べてから、エージェントを足してください。
05工数削減シミュレーション
導入後 60件 × 12分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 電子部品・機構部品・樹脂材料などを数十社の仕入先から買い、購買品目が数千点ある機械・装置メーカーや、メーカー品を仕入れて販売する商社。仕入先が価格改定・製造中止(生産終了)・納期遅延をメールではなく自社のWebサイトのお知らせやニュースのページで公表していて、バイヤーが手の空いたときに見に行っている場合。製造中止の最終受注日に気づくのが遅れ、最終の買い置きや代替品の評価の時間がなくなることがある場合。購買品目マスタにメーカー型番と仕入先と担当バイヤーの列がそろっている場合。
- 仕入先が数社に限られ、価格改定や製造中止を必ず営業担当がメールや訪問で知らせてくれる場合(メールで届く通知を扱う構成のほうが合います)。購買品目マスタにメーカー型番が入っておらず、社内品番だけで管理している場合。仕入先のWebサイトの利用規約が機械による取得を禁じている場合は、その仕入先を対象から外してください。なお、最終の買い置きの数量や代替品の採用、値上げを受け入れるかの判断は、この構成では代替できません。
07最小構成で試す方法
- 過去半年の仕入先のお知らせから、5件を選ぶ(シリーズ全品の製造中止と、「一部を除く」の付いたものを1件ずつ入れる)
- 品目マスタから、その仕入先の品目の行を書き出す(社内品番、メーカー型番、シリーズ名)
- 生成AIの画面に、お知らせの本文と品目の行を貼り、「お知らせから種類・型番・実施日・最終受注日を書かれたまま取り出し、品目の行と照らして一致の候補を挙げてください。書かれていない日付を推測せず、影響の結論は書かないでください」と指示する
- 出てきた候補を、当時のバイヤーの判断と比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時の判断と同じ候補が出た | ワークフローを組む段階に進む |
| 最終受注日を推して書いた | 指示の書き方で直る。「記載なし」を必ず書かせる |
| シリーズの候補が出ない・広がりすぎる | 品目マスタにシリーズ名が無い。 列の整備が先 |
3行目が出ることは珍しくありません。 その場合は、年間の使用量の多い品目から、シリーズ名を埋めてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 最終受注日を推して書く | 指示で禁じ、「記載なし」と確認の項目を必ず書かせる |
| 型番の記号の違いで「該当なし」になる | 前処理で全角・半角、ハイフンの類をそろえる |
| シリーズ全品の候補が広がりすぎる | 品目マスタにシリーズ名の列を持たせる |
| 「一部を除く」の除外を読み落とす | excluded_note に写させ、当てはめは人 |
| サイトの模様替えで全部が新しく見える | 1社の件数に上限を置き、超えたら止める |
| 1社のページが止まると全体が止まる | Timeout と間隔を決め、取得の失敗を仕入先ごとに記録する |
| 古い写しで照合する | 写しが作られていなければ止める |
| ページの文字をSQLに埋め込む | パラメーター付きの Execute Query を使う |
| 商社経由の品目の公表に気づかない | メーカーのページを見回りの対象にする |
上の4行が、この構成の失敗のほとんどです。 どれも「お知らせに書かれていること」と「自社の品目に当てはまるか」の境目の問題です。エージェントが拾い、バイヤーが決める、の線を出力の形で守ってください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 仕入先の公開情報、自社の購買品目(どの部品をどれだけ使うか)、発注残と納期です。購買品目と使用量は、自社の製品の構成そのものです。
- AIに渡す範囲を絞る … 照合に要るのは、メーカー型番、シリーズ名と、候補になった品目の使用量と発注残だけです。品目マスタの全件を一度に渡さず、道具で必要な行だけを引かせます
- 仕入先のサイトの利用規約を確かめる … 機械による取得を禁じている仕入先は対象から外し、営業担当にメールでの連絡を頼みます
- 仕入先のサイトへの負荷を抑える … 決まったURLだけを週1回、間隔を空けて取ります。サイト全体を巡回しません
- 判断と手配は人が行う … この構成が出すのは候補と根拠です。値上げの受け入れ、買い置きの数量、代替品の採用は、バイヤーと設計が決めてください
- 生産管理システムに書き込ませない … エージェントの道具は読み取りだけにし、判断の記録はワークフローの側で書きます
誤りが起きた場合のリスクは、影響する品目を見落とすことと、影響しない品目で手配を急ぐことの2つです。 前者は型番のそろえ方と日付の推測で起き、後者は候補を結論として扱うと起きます。
10まず何から始めるか
1週目:仕入先の一覧を作る
バイヤー3名に、見ている仕入先のお知らせのページを書き出してもらい、1つの表にします。RSS の有無も調べます。この表ができた時点で、第3章の(a)の半分は解けています。
2週目:5件で試す
第8章の手順で、過去のお知らせ5件の取り出しと照合をさせます。最終受注日を推していないかと、シリーズの候補が出るかを見ます。
3週目:品目マスタを整える
品目マスタと発注残の写しを毎晩作る仕組みを用意し、使用量の多い品目からシリーズ名を埋めます。
4週目:見回りと新着の比較を n8n で動かす
RSS のある仕入先と、使用量の多い仕入先20社から、見回りと新着の比較を組みます。エージェントはまだ入れず、拾ったお知らせをバイヤーの見回りと1〜2か月比べます。
それ以降: エージェントを足し、公表された日・拾った日・最終受注日・手配を終えた日を毎月並べます。製造中止の手配が、最終受注日の30日前までにすべて終わるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Schedule Trigger が、ワークフローのタイムゾーンかインスタンスのタイムゾーン(セルフホストの既定は America/New York)を使うこと。保存して公開しないと動かないこと。週単位で何週ごと・曜日・時・分を指定できること | n8n Docs: Schedule Trigger | 2026-10-07 |
| HTTP Request ノードの応答の形式(自動判定・ファイル・JSON・テキスト)、Batching(1回の件数と待ち時間)、Timeout、ページ送りの設定があること | n8n Docs: HTTP Request | 2026-10-07 |
| RSS Read ノードが、URL を指定して RSS フィードを読むこと | n8n Docs: RSS Read | 2026-10-07 |
| HTML ノードの Extract HTML Content が、CSS セレクターでテキスト・属性・HTML・値を取り出せること | n8n Docs: HTML | 2026-10-07 |
| Compare Datasets ノードが2つの入力を比べ、Aにだけあるもの・同じもの・違うもの・Bにだけあるものに分けて出すこと。比べる項目を複数指定できること | n8n Docs: Compare Datasets | 2026-10-07 |
| Postgres ノードの操作(Delete、Execute Query、Insert、Insert or Update、Select、Update)。AIエージェントの道具として使えること。クエリパラメーターのデータが無害化され SQL インジェクションを防ぐこと | n8n Docs: Postgres | 2026-10-07 |
| Tools Agent が道具の機能を理解して使う道具を決めること。System Message、Max Iterations(既定10)、出力パーサーをつなぐ Require Specific Output Format の設定があること | n8n Docs: Tools Agent | 2026-10-07 |
Structured Output Parser が JSON スキーマに沿った項目を返させ、JSON の例から作る方法と JSON スキーマを書く方法があること。例から作るとすべての項目が必須になること。$ref が使えないこと | n8n Docs: Structured Output Parser | 2026-10-07 |
価格改定・製造中止の正式な条件と日付は、仕入先の正式な通知と営業担当への確認で確かめてください。 本記事は確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0771)についてのご相談はこちらから。
