スプレッドシートで在庫管理をしている場合、「現在の在庫数」を把握すること自体はそれほど難しくありません。入出庫を記録していけば、在庫数は自動的に可視化できます。
一方で難しいのは、「いつ・何個発注するか」という判断です。

  • どのくらいのペースで売れているのか
  • 発注してから届くまでの間に在庫が尽きないか
  • 最近の売れ行きに変化はないか

こうした要素を踏まえて発注数を決める作業は、担当者の経験や感覚に頼っている現場も多いのではないでしょうか。
そこで本記事では、スプレッドシート (Google Sheets を使用)に蓄積した販売データと在庫数をもとに、自動化ツールであるn8nと生成AIを用いて適切な発注数を予測し、通知まで行う一連の自動化フローを作成しました。今回はその全体像と各手順を解説します。

【目次】

  1. チームへの共有やあとで見返す用にこの記事まるごとダウンロードできます
  2. n8n・AI・スプレッドシートで作る在庫管理システムの全体像
  3. 在庫管理システムで扱うスプレッドシートのデータ構成
  4. 在庫管理システムの各手順の詳細
  5. 実際の使用結果例
  6. ワークフロー使用時の注意点
  7. まとめ

自社の業務に合わせたシステムを。
既製のツールでは足りない部分は、独自システムで解決。要件の整理から開発まで一貫して支援します。
⇒無理な営業は行いません。まずはお話し聞かせてください。

生成AIを、業務の仕組みに組み込む
日々の業務に生成AIを取り入れる仕組みづくりから、独自の業務システム開発まで。自社に合った形をCoopelが一緒に設計します。
⇒AI活用方法について相談する

「漠然とした不安」を、具体的な打ち手に。リスクの把握から安全な構築・運用体制づくりまで、AIエージェント活用の進め方を専門チームがご相談に応じます。
⇒AIエージェント活用について相談する

AIエージェントか?RPAか?両方の選択肢を正直にお伝えします
重要なのは流行に乗ることではなく、自社の業務に合った仕組みを整えること。
⇒要件が整っていなくても、何でも相談できる窓口があります

業務システムの効率化を一緒に始めませんか?
複雑な業務フロー構築のご支援をしています。
無料相談はこちらから

業務に合わせた「ちょうどいい」システムを開発します。市販システムでは解決できないお悩みをぜひ聞かせてください。
⇒要件が整ってなくても大丈夫です。こちらからお問い合わせください。

「漠然とした不安」を、具体的な打ち手に。リスクの把握から安全な構築・運用体制づくりまで、AIエージェント活用の進め方を専門チームがご相談に応じます。
AIエージェント活用について相談する

チームへの共有やあとで見返す用にこの記事まるごとダウンロードできます

n8n・AI・スプレッドシートで作る在庫管理システムの全体像

今回は、スプレッドシートから現在の商品の在庫状況、および直近30日間・7日間の販売履歴を取得し、生成AIにそこから分かる販売傾向をもとに今後の需要量と必要な発注数を予測させ、発注が必要なものはSlackに通知する形としました。
一連のワークフローの全体像は以下の通りです。

ここでは、スプレッドシート、n8n、生成AIを以下のように役割分担しています。

  • スプレッドシート:商品マスタ・販売履歴・予測結果などのデータを保存
  • n8n:スプレッドシートからデータを取得、生成AIによる予測など、ワークフロー全体の制御
  • 生成AI:取得したデータから直近の販売傾向を分析、発注数を予測

また、本ワークフローは以下の3つの流れで自動化を行います。

1.データ取得:商品マスタに加え、販売履歴から商品ごとの販売実績(30日間の平均販売数・7日間の平均販売数)を集計し、生成AIに利用する
2.発注数の予測:取得したデータをもとに、生成AIが傾向を分析して発注数を予測する
3.結果の保存、通知:予測した発注数を保存し、発注が必要な商品はSlackで担当者へ通知する

使いこなせば、業務効率は大きく変わる
AIを「どの業務に、どう活かすか」。効率化の第一歩を、ダウンロード資料でわかりやすく解説します。
資料を無料でダウンロード

AI活用の遠回りを防いで、最短ルートで効率化を支援します
やみくもに始めて手戻りする前に。自社に合った進め方の考え方を、無料資料にまとめました。
無料で資料を見る

自社の業務をAIで変えられるか確かめる
判断やイレギュラーを含む業務にも対応できる時代に。始め方のヒントを一本にまとめました。
資料をダウンロード

大きなDXの前に、まず一つの業務から
「何から手をつけるか」を考えるための実践的なヒントを資料に凝縮しました。
無料ダウンロードはこちら

標準化しづらい業務こそ、AIの始めどき
パッケージやRPAでは合わなかった自社ならではの業務。AIで始めるヒントを資料にまとめました。
資料を無料で受け取る

「どの業務から効率化を始めるか」が分かる資料
AI活用がまだ進んでいなくても大丈夫です。自社の業務から始める最初の一歩をまとめました。
無料で資料をダウンロードする

AI活用、最初の一歩の見つけ方
AIで何か始めたいけれど、どう活かすか迷っている方へ。自社に合った始め方の考え方をご紹介します。
無料で資料をダウンロードする

在庫管理システムで扱うスプレッドシートのデータ構成

今回は、3つのシートを使用します。各シートの構成は以下の通りです。

products(商品マスタ)

列名

内容 

product_id

商品ID

product_name

商品名

category

カテゴリ

current_stock

現在庫数

safety_stock

安全在庫数 (最低在庫数)

lead_time_days

リードタイム (発注から入荷までの日数)

unit_price

単価

supplier

仕入先

sales_history(販売履歴)

列名

内容 

date

販売日

purchase_id

購入ID

product_id

商品ID

quantity

販売数量

purchase_recommendations(発注予測の保存先)

列名

内容 

calculated_at

算出日時

product_id

商品ID

product_name

商品名

current_stock

現在庫数

avg_30_quantity

30日間の平均販売数

avg_7_quantity

7日間の平均販売数

lead_time_days

リードタイム (発注から入荷までの日数)

safety_stock

安全在庫数 (最低在庫数)

forecast_demand_daily

1日あたりの予測需要数

recommended_quantity

最終的な推奨発注数

reason

理由

在庫管理システムの各手順の詳細

スプレッドシートからのデータ取得・整理

データを取得し、生成AIで扱う形へと整理する流れは以下の通りです。

各ノードを順に解説します。

  • 「Schedule Trigger」:指定した時刻をトリガーにワークフローを開始します。以下の例では、毎朝6時にワークフローが実行されるように設定しています。

設定例:

項目

設定値 

Trigger Interval

Days

Days Between Triggers

1

Trigger at Hour

6am

Trigger at Minute

0

  • 「Get row(s) in sheet」:対象のシートを指定し、行単位でデータを取得します。

設定例:

項目

設定値 

Resource

Sheet Within Document

Operation

Get Row(s)

Document

スプレッドシート名

Sheet

products / sales_history

  • 「Filter」:「Get row(s) in sheet」では販売履歴をすべて取得しているため、このノードで「直近30日」と「直近7日」をそれぞれ抽出します。「Get row(s) in sheet」ノードから2つに分岐させ、それぞれ設定します。

条件設定:

{{ $json.date }} is after {{ $now.minus({days:31}).toFormat('yyyy-MM-dd') }} (30日間)

{{ $json.date }} is after {{ $now.minus({days:8}).toFormat('yyyy-MM-dd') }} (7日間)


  • 「Summarize」:product_id ごとに販売数量を合計します。

設定例:

項目

設定値 

Aggregation

Sum

Field

quantity

Fields to Split By

product_id

  • 「Edit Fields|avg_30(7)days」:それぞれ30(7)日間における1日あたりの平均販売数を計算し、product_id とあわせてデータを保持します。

設定例:

名前

形式

値 

product_id

String

{{ $json.product_id }}

avg_30(7)_quantity

Number

{{ $json.sum_quantity/30(7) }}

  • 「Merge」:2つのデータを product_id をキーに結合します。Mergeノードの「Combine」は2つのデータしか扱えないため、30日間の平均販売数と7日間の平均販売数の結合、およびそれらと商品マスタの結合で、Mergeノードを2つ使用します。最終的には、各商品のレコード末尾に平均販売数が追加される形になります。

設定例:

項目

設定値 

Mode

Combine

Combine By

Matching Fields

Fields to Match

product_id

Output Type

Keep Everything

ここまでで、生成AIの予測に必要なデータを整理します。

生成AIによる発注数予測

今回は、Google Gemini を用いて発注数を予測します。

生成AIに渡すプロンプトには、ここまで整理した以下の項目を入力データとして含めます。

商品ID: {{ $json.product_id }}
商品名:{{ $json.product_name }}
現在庫数:{{ $json.current_stock }}
30日間の平均販売数:{{ $json.avg_30_quantity }}
7日間の平均販売数:{{ $json.avg_7_quantity }}
安全在庫数: {{ $json.safety_stock }}
リードタイム: {{ $json.lead_time_days }}

また、プロンプト内で次の方針も明示します。

30日間の平均販売数と直近7日間の平均販売数を比較し、販売傾向を分析すること
7日間の平均販売数と30日間の平均販売数の乖離や販売傾向の方向性を踏まえて1日あたりの需要を予測すること
最近の販売増加/減少が一時的な変動である可能性も考え、根拠が弱い場合は過度に見積もらないこと
1日あたりの予測需要数とリードタイムを考慮して必要な発注数を計算すること
在庫過多によるコストと欠品のリスクの両方を考慮し、過剰な発注を避けること
1日あたりの予測需要数は小数点1桁、最終的な推奨発注数は整数とすること、発注不要な場合は0とすること
それぞれの平均の評価、1日あたりの予測需要数、最終的な推奨発注数を理由に必ず明記すること

これにより、販売傾向の分析から需要の予測、推奨発注数の算出までを、過去の販売実績だけでなく、現在庫数・リードタイム・安全在庫数 (最低在庫数)も踏まえて総合的に判断できるようになります。また、発注コストを意識し、在庫が残ってしまうリスクや過剰な発注を考慮したうえで予測をしています。

出力は必ずJSON形式とし、出力のキー名を purchase_recommendations のシートの列名に統一するよう、以下をプロンプトに明示します。

{
  "calculated_at": "{{ $now.setZone('Asia/Tokyo').toFormat('yyyy-MM-dd HH:mm:ss') }}",
  "product_id": "商品ID",
  "product_name": "商品名",
  "current_stock": 現在庫数,
  "avg_30_quantity": 30日間の平均販売数,
  "avg_7_quantity": 7日間の平均販売数,
  "lead_time_days": リードタイム,
  "safety_stock": 安全在庫数,
  "forecast_demand_daily": 1日あたりの予測需要数,
  "recommended_quantity": 最終的な推奨発注数,
  "reason": "日本語で1〜2文で簡潔に記載。30日間の平均販売数と7日間の平均販売数をどのように評価したか、1日あたりの予測需要数、最終的な推奨発注数は必ず明記すること。発注不要の場合はその旨を記載すること。"
}


これにより出力が統一され、以降のワークフローでのエラー発生を防止します。

「Google Gemini」 ノードでは「Output Content as JSON」のトグルをオンにすると、出力形式が自動的にJSONになります。

なお、このノードで使用したプロンプトの全文はこちらからダウンロードいただけます。

スプレッドシートへの結果保存と通知

生成AIが予測した結果を保存し通知する流れは、以下の通りです。

  • 「Append or update row in sheet」:結果を purchase_recommendations シートに追加します。

設定例:

項目

設定値 

Resource

Sheet Within Document

Operation

Append or Update Row

Document

スプレッドシート名

Sheet

purchase_recommendations

Mapping Column Mode

Map Each Column Manually

Column to match on

calculated_at

(列名)

JSON.parse($json.content.parts[0].text).(列名) }}

  • 「If」:発注が必要なものだけSlackに通知するよう条件分岐します。最終的な推奨発注数 {{ $json.recommended_quantity }} が0より大きい場合を条件に、当てはまる商品のみ次の処理を行います。
  • 「Send a message」:Slackでメッセージを作成し、担当者へ通知します。商品名・現在庫数・推奨発注数など、担当者がひと目で現在の状況と必要な発注数が分かるようにすることを推奨します。

自社の業務に合わせたシステムを。
既製のツールでは足りない部分は、独自システムで解決。要件の整理から開発まで一貫して支援します。
⇒無理な営業は行いません。まずはお話し聞かせてください。

生成AIを、業務の仕組みに組み込む
日々の業務に生成AIを取り入れる仕組みづくりから、独自の業務システム開発まで。自社に合った形をCoopelが一緒に設計します。
⇒AI活用方法について相談する

「漠然とした不安」を、具体的な打ち手に。リスクの把握から安全な構築・運用体制づくりまで、AIエージェント活用の進め方を専門チームがご相談に応じます。
⇒AIエージェント活用について相談する

AIエージェントか?RPAか?両方の選択肢を正直にお伝えします
重要なのは流行に乗ることではなく、自社の業務に合った仕組みを整えること。
⇒要件が整っていなくても、何でも相談できる窓口があります

業務システムの効率化を一緒に始めませんか?
複雑な業務フロー構築のご支援をしています。
無料相談はこちらから

業務に合わせた「ちょうどいい」システムを開発します。市販システムでは解決できないお悩みをぜひ聞かせてください。
⇒要件が整ってなくても大丈夫です。こちらからお問い合わせください。

「漠然とした不安」を、具体的な打ち手に。リスクの把握から安全な構築・運用体制づくりまで、AIエージェント活用の進め方を専門チームがご相談に応じます。
AIエージェント活用について相談する

実際の使用結果例

本ワークフローを実際に使用した場合に、どのような結果が得られるかを確認します。以下の商品マスタをもとに、発注数の予測を行った結果を例として示します。

ワークフロー実行後の purchase_recommendations に保存された結果はこのようになりました。赤丸で囲まれている部分が1日あたりの予測需要数と最終的な推奨発注数です。(calculated_atとreasonは省略)

結果:

P001、P002、P003、P005、P008などは直近7日間の販売傾向に応じて、1日あたりの予測需要数が、30日間の平均販売数を基準に増減していることがわかります。さらに、P008のように30日間の平均販売数と7日間の平均販売数の差が大きいほど、予測需要数の変化も大きくなる傾向が見られます。
また、P009にあるように直近7日間の販売数が0であっても予測需要数は0にならず、30日間の平均販売数との比較を踏まえて予測している点が読み取れます。発注数についても、予測需要数・安全在庫数 (最低在庫数)・現在庫数を考慮し、必要な分だけ算出されていることが確認できました。

ワークフロー使用時の注意点

今回のワークフローを使用する際の注意点は以下の通りです。

入力データの限界

AIが分析に使用しているのは、30日間平均と直近7日間平均の販売数のみです。日別の販売推移までは入力していないため、急な変動を細かく捉えることはできません。

予測のタイムラグ

今回の分析では傾向変化の要因(例:セール)までは判断できません。そのため、セール終了後に販売が落ち着くケースなどでは、予測が反映されるまでに時間がかかる可能性があります。

AI利用量の増加

商品数が増えるほど生成AIへのリクエスト回数も増え、トークン使用量も相対的に増加します。大量の商品を扱う場合は、AIに分析させる対象範囲や、必要なデータの粒度を事前に検討することを推奨します。

まとめ

本記事では、スプレッドシートに蓄積した販売実績をもとにAIで需要を予測し、発注数の算出から記録・通知までを自動化しました。これにより、販売実績を目視で確認しながら計算し、発注数を検討する工程を効率化できることが期待できます。

自社の業務に合わせたシステムを。
既製のツールでは足りない部分は、独自システムで解決。要件の整理から開発まで一貫して支援します。
⇒無理な営業は行いません。まずはお話し聞かせてください。

生成AIを、業務の仕組みに組み込む
日々の業務に生成AIを取り入れる仕組みづくりから、独自の業務システム開発まで。自社に合った形をCoopelが一緒に設計します。
⇒AI活用方法について相談する

「漠然とした不安」を、具体的な打ち手に。リスクの把握から安全な構築・運用体制づくりまで、AIエージェント活用の進め方を専門チームがご相談に応じます。
⇒AIエージェント活用について相談する

AIエージェントか?RPAか?両方の選択肢を正直にお伝えします
重要なのは流行に乗ることではなく、自社の業務に合った仕組みを整えること。
⇒要件が整っていなくても、何でも相談できる窓口があります

業務システムの効率化を一緒に始めませんか?
複雑な業務フロー構築のご支援をしています。
無料相談はこちらから

業務に合わせた「ちょうどいい」システムを開発します。市販システムでは解決できないお悩みをぜひ聞かせてください。
⇒要件が整ってなくても大丈夫です。こちらからお問い合わせください。

「漠然とした不安」を、具体的な打ち手に。リスクの把握から安全な構築・運用体制づくりまで、AIエージェント活用の進め方を専門チームがご相談に応じます。
AIエージェント活用について相談する