家電・日用品のリコールの公表をエージェントが毎日見回り、自社の取扱商品と販売の記録に照らして、該当しそうな商品を品質の担当に届ける
消費者庁のリコール情報サイトに載る家電製品・住居品などのリコールを、エージェントが毎日見回ります。詳細から型番と販売期間を取り出し、自社の商品マスタと販売の記録に照らして、該当しそうな商品を品質の担当に届けます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- EC/商社/小売
- 対象部門
- カスタマーサポート/品質管理
- 対象業務
- 内容確認・チェック/情報検索
- 主な課題
- 情報が見つからない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- エージェント
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 品質管理の担当者が毎朝、リコール情報サイトの新規登録を開き、食料品以外のカテゴリーで前日に見たところまで戻って確かめる
- 自社で扱っていそうなリコールの詳細を開き、事業者・商品名・型番・販売期間・理由・対応方法を書き出す
- 商品マスタを型番とメーカー名で検索し、当たったものについて販売の記録で、いつからいつまで何個売ったかを調べる
- 売場と倉庫の在庫を確かめるよう店舗に頼み、会員の購入履歴から購入者の数を出す
- 品質管理とお客さま相談室の責任者が、撤去と案内の要否を決める
- 自動毎日朝6時と午後1時にワークフローが動き、食料品以外のカテゴリーの一覧を取る
- 自動前回までに取った管理番号と比べ、新しいリコールだけを拾う
- 自動新しいリコールの詳細のページを取り、各欄の文字を取り出す
- 【AI】 エージェントが事業者・商品名・型番・販売期間・理由を取り出し、商品マスタと販売の記録を引いて該当の候補を挙げる
- 自動リコールの販売期間と自社の販売期間の重なりを規則で計算し、急ぎの度合いの順に品質管理部のチャットへ知らせる
- 人品質管理の担当者が候補を確かめ、店舗に在庫の確認を頼む
- 人品質管理とお客さま相談室の責任者が、撤去と案内の要否を決める
各工程の詳しい説明を読む
- 品質管理の担当者が毎朝、リコール情報サイトの新規登録を開き、食料品以外のカテゴリーで前日に見たところまで戻って確かめる
- 自社で扱っていそうなリコールの詳細を開き、事業者・商品名・型番・販売期間・理由・対応方法を書き出す
- 商品マスタを型番とメーカー名で検索し、当たったものについて販売の記録で、いつからいつまで何個売ったかを調べる
- 売場と倉庫の在庫を確かめるよう店舗に頼み、会員の購入履歴から購入者の数を出す
- 品質管理とお客さま相談室の責任者が、撤去と案内の要否を決める
(a)見回りが担当者の手の空き具合で決まる。 新商品の表示の点検やお客さまの申し出の対応が重なる日は、一覧を開けません。翌日にまとめて見ると、前日に見たところまで戻るのに時間がかかります。
(b)型番の書き方が合わない。 リコールの詳細は「W5PRO」、商品マスタは「W5 PRO」「W-5PRO」のように、同じ型番でも空白や記号の入り方が違います。 色違い・容量違いで末尾の文字だけが違う型番もあります。
(c)販売期間を見ないと影響が分からない。 型番が当たっても、リコールの対象の販売期間に自社が売っていたかは、販売の記録を別の画面で引かないと分かりません。ここを省くと、関係のない店舗まで在庫を探すことになります。
(d)発火・発煙の理由が埋もれる。 リコールの理由には、正常に使えない不具合から、発熱・発火の事故まであります。一覧の件名だけでは理由が分からず、詳細を開くまで急ぎかどうかが見えません。
- 【自動】 毎日朝6時と午後1時にワークフローが動き、食料品以外のカテゴリーの一覧を取る
- 【自動】 前回までに取った管理番号と比べ、新しいリコールだけを拾う
- 【自動】 新しいリコールの詳細のページを取り、各欄の文字を取り出す
- 【AI】 エージェントが事業者・商品名・型番・販売期間・理由を取り出し、商品マスタと販売の記録を引いて該当の候補を挙げる
- 【自動】 リコールの販売期間と自社の販売期間の重なりを規則で計算し、急ぎの度合いの順に品質管理部のチャットへ知らせる
- 【人】 品質管理の担当者が候補を確かめ、店舗に在庫の確認を頼む
- 【人】 品質管理とお客さま相談室の責任者が、撤去と案内の要否を決める
2番目と5番目をAIにさせないのは、意図してのことです。 新しいリコールかどうかは管理番号で、期間が重なるかは日付の比較で、確実に決まります。AIに「新しいか」「期間が重なるか」を判断させると、見落としたときに理由を追えません。
02今回想定するシステム構成
消費者庁 リコール情報サイト(家電製品・住居品・保健衛生品などの一覧と詳細) │ ▼【トリガー】Schedule Trigger(毎日 6時・13時、Asia/Tokyo) n8n のワークフロー ├──▶ HTTP Request で一覧を取り、管理番号・件名・掲載日・詳細のリンクを取り出す ├──▶ 前回までに取った管理番号と比べ、新しいリコールを拾う ├──▶ HTTP Request で詳細のページを取り、Code ノードで各欄の文字を取り出す ▼ AI Agent ノード(Tools Agent)+ Claude │ リコール1件ごとに、道具を選んで引く │ ・商品マスタを型番で引く(そろえた型番・前方一致) │ ・商品マスタをメーカー名・JANコードで引く │ ・販売の記録を引く(店舗と通販の、販売の期間と数) │ ・過去の照合の記録を引く │ Structured Output Parser で決まった形のJSONを返す ▼ 期間の重なりを規則で計算 → 照合の一覧(PostgreSQL)→ 品質管理部のチャット ▼【人】候補の確認・店舗の在庫の確認・撤去と案内の判断
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Power Automate、Zapier |
| 生成AI | Claude API(n8n の Anthropic Chat Model ノード) | OpenAI API、Gemini API |
| 連携 | PostgreSQL(商品マスタ・販売の記録の写し、照合の一覧) | MySQL |
| 通知 | 社内チャット | メール |
新しく足すのは、n8n のワークフローと、写しのデータベースだけです。 商品の仕組みと POS には書き込みません。毎晩、商品マスタと直近の販売の記録を写し、エージェントはその写しを引きます。
一覧は、カテゴリーごとに取ります。 一覧には件名、掲載日、対応開始日が並び、15件・30件・45件・60件ごとに表示を切り替えられます。詳細のページのURLには管理番号(rcl=00000035913 のような番号)が入っていて、これを新しいリコールかどうかの鍵にします。
詳細のページには、件名、理由、商品名、連絡先、対応方法、対応開始日、対象の特定情報、参照情報、備考の欄があります。 2026年10月8日にモバイルバッテリーのリコールの詳細を見たときは、対象の特定情報の欄に「型番:W5PRO」「販売期間:2025年2月~2025年9月」「対象台数:100台」とリコール事業者名と法人番号が書かれ、理由の欄には「使用中に発熱・発火事故が発生し、電池セル内部に不具合が存在する可能性がある」こと、参照情報に経済産業省が挙がっていました。
注意が要るのは、詳細の欄の多くが、ページの HTML の文字としてではなく、ページの中のスクリプトに埋め込まれた文字として届くことです。 商品名や対応開始日は HTML の文字で取れますが、対象の特定情報や連絡先、理由の詳しい文は、表示のときにスクリプトが組み立てています。 CSS セレクターで要素の文字を取るだけでは空になるので、n8n の Code ノードで、スクリプトに埋め込まれた文字を取り出します。
n8n のエージェントを選ぶ理由は、リコール1件ごとに引き方が変わるからです。 型番が書かれていれば型番で引き、JANコードがあればそれで引き、どちらも無ければ事業者名と商品名で引きます。Tools Agent は、道具の機能を理解し、タスクに応じてどの道具を使うかを決めるとされています。
03どうやって実装するのか
処理の起点を決める
毎日朝6時と午後1時に、Schedule Trigger で動かします。 朝6時は開店前に店舗へ知らせるため、午後1時は午前中に載ったリコールを夕方の売場の点検の前に拾うためです。週末と祝日も止めません。 店舗は営業しているからです。
Schedule Trigger は、ワークフローのタイムゾーンが無ければ n8n のインスタンスのタイムゾーンを使い、セルフホストの既定は America/New York とされています。ワークフローのタイムゾーンを Asia/Tokyo にし、保存して公開します。公開しないと Schedule Trigger は動かないとされています。1つの Schedule Trigger に複数の実行の規則を足せるので、6時と13時の2つの規則を置きます。
リコール情報サイトには、リコール情報メールサービスもあります。 品質管理部の共有のメールボックスで受け取っておき、ワークフローが止まったときの控えとして人が見るようにします。
このワークフローが止まったことに、人が気づける仕組みを必ず作ります。 朝6時の実行が終わったら、件数がゼロでも「本日の見回り完了(新しいリコール 0件)」をチャットに出します。通知が来ないこと自体が、止まった合図になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 一覧 | 管理番号、件名、カテゴリー、掲載日、対応開始日、詳細のリンク | リコール情報サイトの各カテゴリーの一覧 |
| 詳細 | 理由、商品名、連絡先、対応方法、対応開始日、対象の特定情報、参照情報、備考 | 詳細のページ |
| 取得済みの管理番号 | 前回までに取った管理番号の一覧 | 照合の一覧 |
| 商品マスタの写し | 商品コード、メーカー名、販売者名、商品名、型番、そろえた型番、JANコード、仕入先、自社ブランドの印 | 商品の仕組みから毎晩写す |
| 販売の記録の写し | 商品コード、店舗・通販の別、販売の初日・最終日、販売数、在庫数 | POS と通販の注文から毎晩集計して写す |
| メーカー名の対応表 | リコールに出る事業者名の書き方と、商品マスタのメーカー名の対応 | 品質管理部が作る表 |
| 過去の照合の記録 | 同じ事業者・型番の前回の照合と、人の判断 | 照合の一覧 |
質を決めるのは、そろえた型番の列です。 第3章の(b)のとおり、同じ型番でも空白や記号の入り方が違います。商品マスタに、空白・ハイフン・全角半角を取り除いた「そろえた型番」の列を毎晩作り、リコール側の型番も同じ規則でそろえてから引きます。
販売の記録は、明細ではなく商品ごとの集計で写します。 照合に要るのは、その商品をいつからいつまで、どこで、何個売ったかだけです。会員の購入履歴は写しに入れず、人が案内を決めたあとに別の手順で引きます。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 一覧の HTML | 食料品以外の各カテゴリーの一覧(60件ごとの表示) | HTTP Request(GET) |
| 管理番号・件名・リンク | 一覧の HTML | Code ノード(リンクから管理番号を取り出す) |
| 新しいリコール | 取得済みの管理番号との比較 | Postgres ノードで取得済みを引き、含まれないものを残す |
| 詳細の各欄 | 詳細のページ | HTTP Request + Code ノード(HTML の文字と、スクリプトに埋め込まれた文字) |
| 商品・販売 | 写しのデータベース | エージェントの道具(Postgres の Select) |
一覧は60件ごとの表示で取り、1ページ目に前回の最新の管理番号が無ければ、次のページも取ります。 連休明けの朝は前回の続きが2ページ目に入ることがあります。ページを送るのは、前回の管理番号が見つかるまでにします。
詳細のページは、間隔を空けて1件ずつ取ります。 HTTP Request の Batching で、1回に送る件数と次の送信までの待ち時間を決められます。応答のヘッダーを待つ時間の上限を Timeout で決め、1件が止まっても全体を止めないようにします。
Code ノードは、JavaScript か Python を書いてワークフローの1段として動かせます。 詳細のページの HTML から、欄の見出しと、スクリプトに埋め込まれた文字を順に拾い、欄の名前と文字の組にそろえてからエージェントに渡します。 ページの作りが変わったときに直す場所を、この1か所にまとめます。
AIへ渡す前に整形する
- 型番をそろえる … 空白、ハイフン、スラッシュ、全角・半角を取り除き、大文字にそろえます。リコール側と商品マスタ側の両方に同じ規則を当てます
- 対象の特定情報を分ける … 「型番:」「販売期間:」「対象台数:」「製造番号:」のような見出しで行を分け、見出しと値の組にします。分けられない行もそのまま渡します
- 期間を日付に直す … 「2025年2月~2025年9月」を、開始の月初と終了の月末に直します。直せないものは文字のまま残し、人が見ます
- 自社ブランドを分ける … 事業者名が自社と同じものは、この流れから外し、自社ブランドの担当に回します
- 写しの日付を確かめる … 前夜の商品マスタと販売の記録の写しが作られていなければ、照合を止め、「照合できていない」と通知します
- スクリプトの文字が取れたかを確かめる … 対象の特定情報の欄が空なら、
fields_missingを付けて人に回します
6番目は、ページの作りの変化に気づくための前処理です。 スクリプトの埋め込み方が変わると、エラーにならずに欄が空のまま流れます。空の欄で照合すると、型番が無いまま「当たらない」になります。
AIに処理させる
させるのは、リコール1件ごとに、事業者・商品・型番・期間・理由を取り出し、商品マスタと販売の記録を引いて該当の候補を挙げることです。
| させること | 使う道具 | 返すもの |
|---|---|---|
| 事業者と商品を取り出す | - | リコール事業者名、法人番号、商品名、製品名 |
| 対象を取り出す | - | 型番(書かれたまま)、JANコード、製造番号、販売期間、対象台数 |
| 理由を取り出す | - | 理由の文言と、区分(発火・発煙・発熱/けが/感電/正常に使えない/表示/その他) |
| 型番で引く | 商品マスタを型番で引く | 一致・前方一致の商品コード |
| 事業者で引く | 対応表と商品マスタを引く | 事業者が当たった商品と、商品名の近さ |
| 販売を添える | 販売の記録を引く | 候補の商品の、店舗・通販別の販売の期間と数、在庫数 |
| 前回を添える | 過去の照合の記録を引く | 同じ事業者・型番の前回の判断 |
理由の区分を分けさせるのが、第3章の(d)への答えです。 発火・発煙・発熱とけが・感電は、急ぎの度合いを上げます。理由の文言は詳細のまま写させ、区分はその文言から選ばせます。
| させないこと | 理由 |
|---|---|
| 該当なしの結論 | 事業者か型番が当たったものは必ず人に回す |
| 期間の重なりの判断 | 前処理で直した日付を、規則で比べる |
| 型番の補完 | 末尾の色や容量の記号を、推して足さない |
| 撤去・案内の判断 | 責任者が、在庫と販売の数を見て決める |
| 危険の大きさの見立て | 事業者と行政機関の公表による |
3行目が、この構成で特に大事な線です。 「W5PRO」のリコールに対して、商品マスタに「W5PRO-BK」「W5PRO-WH」があれば、前方一致の候補として挙げさせますが、「末尾の色違いも対象」とは書かせません。 対象かどうかは、詳細の文と事業者の公表で人が確かめます。
指示内容を固定する
AI Agent ノードの System Message に、次のように書きます。
あなたはホームセンターのチェーンの品質管理部で、消費者庁のリコール情報サイトに
載ったリコールを、自社の取扱商品と販売の記録に照らす担当です。
入力は、新しく見つかったリコール1件の件名と、詳細のページの各欄の文字です。
【やること】
1. リコール事業者名、法人番号、商品名、製品名、型番、JANコード、製造番号、
販売期間、対象台数、理由を取り出す。
2. 理由の区分を fire_smoke_heat / injury / electric_shock / malfunction /
label / other から1つ選ぶ。
3. 型番があれば、そろえた型番で商品マスタを引く(一致と前方一致)。
4. メーカー名の対応表を引き、当たった事業者名で商品マスタを引く。
5. 当たった商品について、販売の記録を引き、店舗・通販別の販売の期間と数、
在庫数を添える。
6. 過去の照合の記録を引き、同じ事業者・型番の前回の判断を添える。
【厳守事項】
- 事業者名、型番、期間、理由は、詳細に書かれた文言をそのまま写してください。
- 書かれていない型番や期間を推測しないでください。「記載なし」としてください。
- 型番の末尾に記号を足したり、取り除いたりしないでください。
- 事業者名か型番のどちらかが商品に当たったときは、candidates に必ず残して
ください。色や容量の違いがあっても外さないでください。違いは
check_points に書いてください。
- 該当する・しないの結論を書かないでください。match_basis に、
何が一致したか(model_exact / model_prefix / jan / maker)だけを書いてください。
- 販売の期間がリコールの期間と重なるかを判断しないでください。
- 危険の大きさや、取るべき対応を書かないでください。
- 対象の特定情報の欄が空のときは、fields_missing を true にしてください。
【出力】指定のJSONの形で返してください。
「型番の末尾に記号を足したり、取り除いたりしない」が、この指示の要です。 エージェントは「W5 PRO」と「W5PRO」を同じとみなすのと同じ調子で、「W5PRO-BK」も同じ商品とみなして結論を書き始めます。 そろえる規則は前処理で決め、それ以上の近づけはさせません。
出力形式を固定する
Structured Output Parser で、次の形のJSONを返させます。
{
"recall_id": "", "title": "", "posted": "", "category": "",
"company": "", "corporate_no": "", "product": "",
"models": [""], "jan": [""], "serial": "",
"sales_period_text": "", "units_text": "",
"reason_text": "",
"reason_type": "fire_smoke_heat | injury | electric_shock | malfunction | label | other",
"fields_missing": false,
"candidates": [
{ "item_code": "", "maker": "", "item_name": "", "model": "",
"match_basis": "model_exact | model_prefix | jan | maker",
"sales": [ { "channel": "store | online", "first_sold": "", "last_sold": "",
"units": 0, "stock": 0 } ],
"previous_judgment": "", "check_points": [""] }
],
"check_points": [""]
}
1つ目の理由は、sales の期間を規則でリコールの期間と比べられることです。 ワークフローは、前処理で直したリコールの期間と、first_sold・last_sold を比べ、重なる・重ならない・分からないの3つを付けます。第3章の(c)は、ここで解けます。
2つ目は、reason_type と match_basis と期間の重なりで、急ぎの順を規則で決められることです。 急ぎの度合いはAIに決めさせず、ワークフローが次の規則で付けます。
| 急ぎ | 条件 |
|---|---|
| 至急 | 型番が一致し、期間が重なるか分からない、かつ在庫がある。または reason_type が fire_smoke_heat か injury で候補がある |
| 当日 | 型番が一致し、期間が重ならない。または model_prefix か jan で当たった |
| 確認 | maker だけで当たった |
| 記録 | 候補が無い(件数と件名だけを1日1回まとめる) |
3つ目は、fields_missing で人が詳細のページを見るリコールを分けられることです。 対象の特定情報が取れなかったリコールは、型番の照合が効きません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| リコール情報サイト | HTTP Request(GET)+ Code ノード | 一覧と詳細を取る |
| 写しのデータベース | Postgres ノード(Select) | 商品・販売・対応表・過去の照合を引く |
| Claude API | Anthropic Chat Model ノード | 取り出しと照合の整理 |
| 照合の一覧 | Postgres ノード(Insert) | エージェントの出力、期間の重なり、人の判断 |
| 社内チャット | 通知 | 急ぎの順に、品質管理部へ出す |
照合の一覧への書き込みは、ワークフローの側で行います。 エージェントの道具には写しを引く Select だけを渡します。Postgres ノードはAIエージェントの道具として使え、公式の説明では、クエリパラメーターのデータは n8n が無害化し、SQL インジェクションを防ぐとされています。詳細の文字を、そのまま問い合わせに埋め込まないでください。
店舗やお客さまへの連絡は、この構成から直接は出しません。 品質管理の担当者が候補を確かめ、店舗に在庫の確認を頼みます。会員への案内は、お客さま相談室が責任者の判断のあとに行います。
人が確認する
- 至急から見る … 型番が一致して在庫があるもの、発火・けがの理由で候補があるものは、すぐに店舗と倉庫に在庫の確認を頼みます
- 当日の候補を確かめる … 型番の前方一致や JANコードで当たったものは、詳細の文と事業者の公表で対象の型番を確かめます
- 確認の候補を判断する … 事業者名だけが当たったものは、商品名と型番を見て自社の商品かを確かめます
- 候補の無いリコールを流し見る … 1日1回のまとめで件名を見て、取引先なのに当たらなかったものがあれば、メーカー名の対応表に足します
- 判断を記録する … 該当の有無、撤去、会員への案内の有無を照合の一覧に残します
4番目を省かないでください。 照合の漏れは、対応表の抜けと、型番の書き方の違いから起きます。人が件名を見て気づくことが、対応表と型番をそろえる規則を育てる経路です。
目標は、1件をならして6分です。 照合の結果の確認に4分、撤去と案内の材料の確認に2分という見込みです。
例外に対処する
| 起きること | 対応 |
|---|---|
| サイトが取れない | 「見回りできず」を通知。前回の一覧を今回とみなさない |
| 一覧の作りが変わり、管理番号が取れない | 比較を止め、人に回す |
| スクリプトの文字が取れず、欄が空 | fields_missing を付け、人が詳細のページを見る |
| 1回で新しいリコールが極端に多い | 作りの変化を疑い、件数の上限を超えたら止める |
| 期間が日付に直せない | 文字のまま残し、重なりを「分からない」として人へ |
| 写しが古い | 照合を止め、「照合できていない」と通知 |
| 同じリコールの掲載内容が更新される | 前回の照合を添え、変わった欄を check_points に書く |
| エージェントの出力がスキーマに合わない | 件名とURLだけを至急の扱いで人に回す |
| 道具の呼び出しがくり返し止まらない | Max Iterations で上限を決め、超えたら人へ |
7行目は、リコール情報サイトの説明にもとづく対応です。 サイトの説明では、公表した行政機関等や事業者から追加の情報があれば、掲載の内容を更新することがあるとされています。対象の型番が後から足されることもあるので、更新は新しいリコールと同じ重さで扱います。
記録を残す
- 実行ごとの取得の成否と、新しく拾った管理番号の一覧
- 取った詳細のページの各欄の文字
- エージェントのJSON出力と、呼んだ道具の順番、期間の重なりの計算の結果
- 人の判断 … 該当の有無、撤去、会員への案内の有無、判断した日時
- リコールの掲載日、拾った日時、店舗に連絡した日時、売場から下げ終えた日時
最後の行が、この構成の物差しです。 掲載から売場から下げ終えるまでの時間を並べると、見回りの遅れか、店舗での作業の遅れかが分かれて見えます。
04実装レベルの3段階
半自動化だけでも、①の見回りの時間はほぼ無くなります。 新しいリコールの拾い出しと、型番が一致するものの照合は、AIを使わずに組めます。残るのは、詳細から対象を読み取る②と、販売の記録まで引く③です。 本格構成で減るのは、その②と③と④です。 半自動化を1か月回して、拾ったリコールに漏れが無いかを担当者のこれまでの見回りと比べてから、エージェントを足してください。
05工数削減シミュレーション
導入後 90件 × 6分 ÷ 60 = 9 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 家電・日用品・生活雑貨・DIY用品などを数万点扱うホームセンター・家電量販・生活雑貨のチェーンや通販の本部で、品質管理の担当者が消費者庁のリコール情報サイトを見て、自社の取扱商品に当たるものが無いかを手で確かめている場合。商品マスタにメーカー名・型番・JANコードがあり、店舗と通販の販売の記録を商品ごとに引ける場合。リコールの対象品が売場に残っていたことがある場合。
- 取扱商品が数百点で、仕入先が数社に限られ、リコールの際に必ず仕入先から連絡が来る体制がある場合。商品マスタに型番が無く、商品名でしか引けない場合(先にマスタの整備が要ります)。食品だけを扱う場合(食品の自主回収は別の情報源と照合の仕方になります)。なお、売場からの撤去、お客さまへの告知、販売の停止の判断は、この構成では代替できません。
07最小構成で試す方法
- 過去3か月の家電製品・住居品のリコールから、10件を選ぶ(自社で扱ったことのある型番、型番の末尾が色や容量で分かれるもの、発火の理由のものを入れる)
- 商品マスタから、その事業者の商品の行と、販売の期間・数を書き出す
- 生成AIの画面に、リコールの詳細の文と商品・販売の行を貼り、「詳細から事業者・型番・販売期間・理由を書かれたまま取り出し、商品の行と照らして候補を挙げてください。型番の末尾の違う商品も外さず、該当の結論と期間の重なりは書かないでください」と指示する
- 出てきた候補を、当時の担当者の照合と比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時の照合と同じ候補が出た | ワークフローを組む段階に進む |
| 末尾の違う型番を外した・同じ商品と言い切った | 指示の書き方で直る。match_basis を分けて持たせる |
| 型番の書き方の違いで候補が出ない | そろえた型番の列が先。 商品マスタに作る |
3行目が出ることは珍しくありません。 その場合は、商品マスタの型番の列から空白と記号を取り除いた列を作り、同じ10件で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 末尾の違う型番を外す、または同じと言い切る | 外す権限も言い切る権限も持たせず、match_basis と check_points に書かせる |
| 詳細の欄が空のまま照合する | スクリプトの文字を取り出し、欄が空なら fields_missing で人へ |
| 型番の書き方の違いで当たらない | そろえた型番の列を作り、同じ規則でリコール側もそろえる |
| 期間の重なりをAIに判断させる | 日付に直して規則で比べる |
| 見回りが止まったことに気づかない | 件数ゼロでも完了の通知を出す |
| 古い写しで「該当なし」になる | 写しが作られていなければ止めて知らせる |
| 掲載内容の更新を見落とす | 更新を新しいリコールと同じ重さで扱う |
| 詳細の文字を SQL に埋め込む | パラメーター付きの問い合わせを使う |
上の2行が、この構成の失敗のほとんどです。 どちらも、分からないことを「該当しない」に寄せることから起きます。リコールの照合では、分からないものは人へ、を出力の形で守ってください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公表されているリコールの情報、自社の取扱商品(どのメーカーの何を扱っているか)、販売の記録(いつどこで何個売ったか)です。会員の購入履歴は、この構成では扱いません。
- AIに渡す範囲を絞る … 照合に要るのは、事業者名、型番、JANコードと、候補になった商品の販売の期間と数だけです。商品マスタの全件を一度に渡さず、道具で必要な行だけを引かせます
- 会員の個人情報を写しに入れない … 購入者への案内が要ると責任者が決めたあとに、お客さま相談室が別の手順で購入履歴を引きます
- 撤去と案内の判断は人が行う … この構成が出すのは候補と根拠です。売場からの撤去、販売の停止、お客さまへの告知は、品質管理とお客さま相談室の責任者が決めてください
- 「該当なし」を自動の結論にしない … 照合できないこと、分からないことは、必ず人に回します
- 出典を明示して使う … リコール情報サイトの内容は、公共データ利用規約(第1.0版)に準拠した条件で利用でき、編集・加工したものは加工した旨を書き、国が作成したかのような形で使ってはいけないとされています。店舗への連絡にも、出典とリンクを付けます
- サイトへの負荷を抑える … 1日2回、決まった一覧と新しい詳細だけを、間隔を空けて取ります
誤りが起きた場合のリスクは、対象の商品を見落として売り続けることと、対象でない商品で店舗に確認を頼みすぎることの2つです。 前者のほうがはるかに重いので、迷ったものは人へ、の側に寄せて設計しています。 後者はそろえた型番の列と、メーカー名の対応表の整備で減らします。
10まず何から始めるか
1週目:型番をそろえる
商品マスタの型番の列から、空白・記号・全角半角を取り除いた「そろえた型番」の列を作ります。家電と電池を使う商品から、型番の列が空の商品を書き出します。
2週目:10件で試す
第8章の手順で、過去のリコール10件の照合をさせます。末尾の違う型番を外していないか、同じ商品と言い切っていないかを見ます。
3週目:写しを用意する
商品マスタと、商品ごとの販売の期間・数・在庫の集計の写しを毎晩作る仕組みを用意します。仕入額の多いメーカー50社について、リコールに出そうな事業者名の書き方を対応表に入れます。
4週目:見回りと型番での照合を n8n で動かす
一覧の取得、新しいリコールの拾い出し、詳細の欄の取り出し、そろえた型番での照合までを組み、件数ゼロでも完了を通知します。エージェントはまだ入れず、拾ったリコールを担当者の見回りと1か月比べます。
それ以降: エージェントと期間の重なりの計算を足し、掲載から売場から下げ終えるまでの時間を毎月並べます。型番が一致して在庫があるリコールが、掲載の当日のうちに店舗に届くようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| リコール情報サイトがリコールの情報をカテゴリー(食料品、家電製品、住居品、文具・娯楽用品、光熱水品、被服品、保健衛生品、車両・乗り物、建物・設備、その他)別に載せていること(原文を取得して確認) | 消費者庁: リコール情報サイト | 2026-10-08 |
| 家電製品の一覧に件名・掲載日・対応開始日と詳細のリンク(管理番号入り)が並び、15・30・45・60件ごとに表示を切り替えられること。2026年10月8日に945件が載り、10月5日・6日の掲載があったこと(原文を取得して確認) | 消費者庁: リコール情報サイト 家電製品の一覧 | 2026-10-08 |
| 詳細のページに理由・商品名・連絡先・対応方法・対応開始日・対象の特定情報・参照情報・備考の欄があり、対象の特定情報などがページの中のスクリプトに埋め込まれた文字で届くこと。型番 W5PRO、販売期間2025年2月~2025年9月、対象台数100台、発熱・発火の理由、参照情報に経済産業省が挙がっていたこと。追加の情報があれば掲載の内容を更新することがあると書かれていること(原文を取得して確認) | 消費者庁: リコール情報サイト 詳細(管理番号 00000035913) | 2026-10-08 |
| リコール情報メールサービスがあること。コンテンツが公共データ利用規約(第1.0版)に準拠した条件で利用でき、編集・加工したものは加工した旨を書き、国が作成したかのような形で使ってはいけないこと(原文を取得して確認) | 消費者庁: リコール情報サイトについて | 2026-10-08 |
| Schedule Trigger が、ワークフローのタイムゾーンかインスタンスのタイムゾーン(セルフホストの既定は America/New York)を使うこと。保存して公開しないと動かないこと。複数の実行の規則を足せること | n8n Docs: Schedule Trigger | 2026-10-08 |
| HTTP Request ノードの Batching(1回の件数と待ち時間)と Timeout の設定があること | n8n Docs: HTTP Request | 2026-10-08 |
| Code ノードで JavaScript か Python を書き、ワークフローの1段として動かせること | n8n Docs: Code node | 2026-10-08 |
| Postgres ノードの操作(Select、Insert、Execute Query など)。AIエージェントの道具として使えること。クエリパラメーターのデータが無害化され SQL インジェクションを防ぐこと | n8n Docs: Postgres | 2026-10-08 |
| Tools Agent が道具の機能を理解して使う道具を決めること。System Message、Max Iterations、出力パーサーをつなぐ設定があること | n8n Docs: Tools Agent | 2026-10-08 |
ある商品がリコールの対象に当たるかと、取るべき対応は、事業者の公表と、事業者・仕入先への確認で確かめてください。 本記事は確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1012)についてのご相談はこちらから。
