ゴールと前提条件
このワークフローでは、在庫管理と発注業務の70%を自動化し、在庫切れや過剰在庫のリスクを大幅に削減します。手作業での在庫確認や発注タイミングの判断から解放され、より戦略的な業務に集中できる環境を整えます。
自動化する業務範囲
- 在庫データのリアルタイム管理:入出庫情報の自動記録と在庫数の即座な反映
- 在庫アラートの自動通知:設定した閾値を下回った際の自動アラート
- 発注リストの自動生成:在庫状況に基づく発注推奨商品の自動抽出
- 発注履歴の一元管理:発注データの自動記録と分析ダッシュボードの構築
- チーム内での情報共有:Slackを通じた在庫状況のリアルタイム共有
前提となる環境
このワークフローを実装するために、以下のツールとアカウントが必要です:
- Notion:在庫マスタと発注管理の中核データベース(無料プランで開始可能)
- Googleスプレッドシート:入出庫データの記録と集計用(Googleアカウントがあれば利用可能)
- Make(旧Integromat):各ツール間の連携を自動化(無料プランは月1,000オペレーションまで)
- Slack:在庫アラートとチーム通知用(無料プランで十分)
これらのツールは基本的に無料プランでスタートでき、事業規模が拡大した際に有料プランへ移行できる柔軟性があります。
全体フローの俯瞰図
在庫管理・発注業務の自動化ワークフローは、以下の4つのステージで構成されます:
フロー全体像
1. トリガー(入出庫の記録)
↓
Googleスプレッドシートに入出庫データを記録(手入力またはバーコードスキャン連携)
2. データ同期と在庫更新
↓
Makeが新規データを検知し、Notionの在庫データベースを自動更新
3. 在庫チェックとアラート判定
↓
Makeが在庫数を監視し、設定した閾値(安全在庫数)を下回った場合に自動判定
4. 通知と発注リスト生成
↓
Slackへアラート通知を送信、Notionに発注推奨リストを自動生成
このフローにより、入出庫の記録から在庫アラートまでが完全自動化され、担当者は発注の最終判断のみに集中できます。
使用するツールと役割
Notion:在庫管理の司令塔
Notionは、このワークフローの中核となるデータベースプラットフォームです。
このワークフローでの役割:
- 商品マスタデータベースの管理(商品名、SKU、安全在庫数、仕入先情報など)
- 現在庫数のリアルタイム表示
- 発注推奨リストの自動生成と管理
- 発注履歴の記録と追跡
- 在庫分析ダッシュボードの提供
Notionのデータベース機能(特にリレーションとロールアップ)を活用することで、複雑な在庫管理を直感的に可視化できます。
Googleスプレッドシート:入出庫の記録帳
Googleスプレッドシートは、日々の入出庫データを記録する第一接点です。
このワークフローでの役割:
- 入出庫データの簡単入力(現場スタッフが慣れているインターフェース)
- 入出庫履歴の時系列記録
- バーコードスキャナーやGoogle Formsとの連携による入力効率化
- 月次・年次の集計レポート作成
スプレッドシートの利点は、現場スタッフが使い慣れていることと、スマートフォンからも簡単に入力できる点です。
Make:自動化エンジン
Makeは、各ツール間のデータ連携を自動化するノーコードプラットフォームです。
このワークフローでの役割:
- Googleスプレッドシートの新規行を監視
- 入出庫データをNotionの在庫数に自動反映
- 在庫数と安全在庫数を比較し、アラート条件を判定
- 発注推奨商品のリストを自動生成
- Slackへの通知メッセージを整形して送信
Makeのビジュアルエディタにより、複雑なロジックもフローチャート感覚で構築できます。
Slack:リアルタイム通知ハブ
Slackは、在庫状況をチーム全体にリアルタイムで共有するコミュニケーションツールです。
このワークフローでの役割:
- 在庫切れアラートの即座通知(緊急度に応じてメンション付き)
- 発注推奨商品リストの定期配信
- 発注完了報告の自動投稿
- 週次在庫レポートのサマリー配信
専用の「#在庫管理」チャンネルを作成することで、在庫に関する情報が一元化され、履歴も簡単に遡れます。
手順詳細(ステップバイステップ)
STEP 1:Notionで在庫管理データベースを構築する
まず、在庫管理の土台となるNotionデータベースを作成します。
1-1. 商品マスタデータベースの作成
- Notionで新しいページを作成し、「商品マスタ」という名前をつける
- 「テーブル – フルページ」形式のデータベースを追加
- 以下のプロパティ(列)を設定:
- 商品名(タイトル):商品の名称
- SKUコード(テキスト):商品識別コード
- カテゴリ(セレクト):商品分類
- 現在庫数(数値):リアルタイムの在庫数
- 安全在庫数(数値):これを下回るとアラート発動
- 発注ロット(数値):1回の発注単位
- 仕入単価(数値):1個あたりの仕入れ価格
- 仕入先(テキスト):発注先業者名
- 仕入先担当者(テキスト):連絡先情報
- リードタイム(日)(数値):発注から納品までの日数
- 在庫ステータス(フォーミュラ):在庫状況を自動判定
- 最終更新日(最終編集日時):データ更新の追跡用
1-2. 在庫ステータスのフォーミュラ設定
「在庫ステータス」プロパティに以下のフォーミュラを設定します:
if(prop("現在庫数") <= 0, "⚠️ 在庫切れ",
if(prop("現在庫数") < prop("安全在庫数"), "🔔 発注推奨",
if(prop("現在庫数") < prop("安全在庫数") * 1.5, "⚡ 要注意", "✅ 適正")))
このフォーミュラにより、在庫数に応じて自動的にステータスが変わり、視覚的に在庫状況を把握できます。
1-3. 発注管理データベースの作成
- 同じページ内に「発注管理」データベースを追加
- 以下のプロパティを設定:
- 発注日(日付)
- 商品(リレーション):商品マスタとリンク
- 発注数量(数値)
- 発注金額(数値)
- 納品予定日(日付)
- 納品済(チェックボックス)
- 発注ステータス(セレクト):発注中/納品済/キャンセル
つまづきポイント
⚠️ リレーション設定が難しい場合:「商品」プロパティでリレーションを設定する際、「商品マスタ」データベースを選択します。これにより、発注管理から商品情報を参照できるようになります。最初は1対多の関係で十分です。
STEP 2:Googleスプレッドシートで入出庫記録シートを作成する
次に、日々の入出庫を記録するスプレッドシートを準備します。
2-1. 入出庫記録シートの作成
- 新しいGoogleスプレッドシートを作成し、「在庫入出庫記録」と名付ける
- シート名を「入出庫履歴」に変更
- 以下の列見出しを設定(A〜G列):
- A列:日時(例:2024/12/08 14:30)
- B列:SKUコード(商品識別コード)
- C列:商品名(参照用)
- D列:種別(入庫 or 出庫)
- E列:数量(正の数値)
- F列:担当者(記録者名)
- G列:備考(任意のメモ)
2-2. データ入力の効率化(オプション)
現場での入力を簡単にするため、以下の工夫を推奨します:
- 種別列にプルダウンを設定:D列を選択し、データ→データの入力規則→リストで「入庫,出庫」を設定
- 日時を自動入力:A列にカスタム関数を設定し、NOW()で現在時刻を自動記録
- Google Formsとの連携:スマートフォンから簡単に入力できるフォームを作成し、回答を自動的にスプレッドシートに記録
つまづきポイント
⚠️ SKUコードを覚えられない場合:別シートに「商品一覧」を作り、SKUコードと商品名の対照表を用意しておくと便利です。VLOOKUP関数を使えば、SKUコードを入力するだけで商品名が自動表示されます。
STEP 3:Makeで自動化シナリオを構築する
ここが最も重要なステップです。Makeで各ツールを連携させ、自動化の仕組みを作ります。
3-1. Makeアカウントの準備
- Makeにアクセスし、無料アカウントを作成
- ダッシュボードから「Create a new scenario」をクリック
- シナリオ名を「在庫管理自動化」に設定
3-2. トリガー設定:Googleスプレッドシートの監視
- 最初のモジュールとして「Google Sheets」を選択
- トリガーは「Watch New Rows」を選択
- Googleアカウントと連携し、作成した「在庫入出庫記録」スプレッドシートを選択
- 監視するシートを「入出庫履歴」に設定
- 実行間隔を「15分ごと」に設定(無料プランの範囲内)
これにより、15分ごとにスプレッドシートをチェックし、新しい行が追加されると自動的に処理が開始されます。
3-3. Notionの在庫数を更新する
- 次のモジュールとして「Notion」を追加
- アクション「Search Objects」を選択
- Notionアカウントと連携し、「商品マスタ」データベースを選択
- フィルター条件で「SKUコード」が「Googleスプレッドシートの列B」と一致するものを検索
- さらに「Notion」モジュールを追加
- アクション「Update a Database Item」を選択
- 更新する項目として、検索で見つかった商品レコードを指定
- 「現在庫数」プロパティを更新:
- 種別が「入庫」の場合:現在庫数 + 数量
- 種別が「出庫」の場合:現在庫数 - 数量
このロジックは、Makeの「Router」機能を使って分岐させます:
Router
├─ フィルター:種別 = "入庫"
│ └─ Notion Update(現在庫数に加算)
└─ フィルター:種別 = "出庫"
└─ Notion Update(現在庫数から減算)
3-4. 在庫アラート判定とSlack通知
- Notionの更新後、「Filter」モジュールを追加
- 条件を設定:「更新後の現在庫数」<「安全在庫数」
- 条件を満たす場合のみ、次の処理に進む
- 「Slack」モジュールを追加
- アクション「Create a Message」を選択
- Slackワークスペースと連携し、通知先チャンネル(例:#在庫管理)を選択
- メッセージテンプレートを設定:
🔔 **在庫アラート**
商品名:{{商品名}}
SKUコード:{{SKUコード}}
現在庫数:{{現在庫数}}個
安全在庫数:{{安全在庫数}}個
⚠️ 発注を検討してください。
発注ロット:{{発注ロット}}個
仕入先:{{仕入先}}({{仕入先担当者}})
リードタイム:{{リードタイム}}日
詳細を確認 → [Notionで開く]
3-5. 発注推奨リストの自動生成
- 並行して、「Notion」モジュールを追加
- アクション「Create a Database Item」を選択
- 「発注管理」データベースを選択
- 以下のプロパティを自動入力:
- 発注日:今日の日付
- 商品:該当商品へのリレーション
- 発注数量:発注ロット数
- 発注金額:発注ロット × 仕入単価
- 納品予定日:今日の日付 + リードタイム
- 発注ステータス:「発注推奨」
これにより、在庫が安全在庫数を下回ると、自動的に発注管理データベースに推奨レコードが作成されます。
3-6. シナリオのテストと有効化
- 「Run once」ボタンでシナリオをテスト実行
- Googleスプレッドシートにテストデータを入力して動作確認
- 各モジュールで正しくデータが流れているか確認
- 問題なければ「ON」にしてシナリオを有効化
つまづきポイント
⚠️ Notionの検索で商品が見つからない場合:SKUコードの表記揺れ(全角/半角、大文字/小文字)が原因の可能性があります。Makeのテキスト関数(toLower、trimなど)で正規化してから検索すると確実です。
⚠️ 計算結果が正しくない場合:Makeでは数値を文字列として扱うことがあります。「parseNumber()」関数で明示的に数値に変換してから計算しましょう。
STEP 4:定期レポートの自動配信を設定する(オプション)
日々のアラートに加えて、週次で在庫サマリーをSlackに配信すると、チーム全体の在庫意識が高まります。
4-1. 週次レポート用シナリオの作成
- Makeで新しいシナリオを作成
- トリガーは「Schedule」を選択し、毎週月曜日の9時に実行するよう設定
- 「Notion」モジュールで「商品マスタ」データベースから全商品を取得
- 「Aggregator」モジュールで在庫ステータス別に集計:
- 在庫切れ:◯件
- 発注推奨:◯件
- 要注意:◯件
- 適正:◯件
- 「Slack」モジュールで週次レポートを投稿
4-2. レポートメッセージテンプレート
📊 **週次在庫レポート**({{今日の日付}})
【在庫ステータス サマリー】
⚠️ 在庫切れ:{{在庫切れ件数}}件
🔔 発注推奨:{{発注推奨件数}}件
⚡ 要注意:{{要注意件数}}件
✅ 適正:{{適正件数}}件
【発注待ちリスト】
{{発注ステータスが「発注推奨」の商品一覧}}
詳細はNotionで確認してください 👉 [在庫ダッシュボード]
自動化前後でどう変わるか(ビフォーアフター)
作業時間の変化
| 業務内容 | 自動化前 | 自動化後 | 削減率 |
|---|---|---|---|
| 在庫数の手動集計 | 1日30分 | 0分 | 100%削減 |
| 在庫確認と発注判断 | 1日20分 | 5分(最終確認のみ) | 75%削減 |
| 発注リストの作成 | 1回15分 | 0分(自動生成) | 100%削減 |
| チーム内情報共有 | 1日10分 | 0分(自動通知) | 100%削減 |
| 合計(1日あたり) | 75分 | 5分 | 93%削減 |
月間では約1,500分(25時間)の作業時間が削減され、より付加価値の高い業務に時間を使えるようになります。
ミスの発生率
| ミスの種類 | 自動化前 | 自動化後 |
|---|---|---|
| 在庫切れの見逃し | 月2〜3回 | ほぼゼロ(即座にアラート) |
| 在庫数の転記ミス | 月4〜5回 | ゼロ(自動連携) |
| 発注タイミングの遅れ | 月1〜2回 | ほぼゼロ(リードタイムも考慮) |
| 過剰在庫の発生 | 四半期に1回 | 大幅に減少(データに基づく判断) |
特に、在庫切れによる販売機会損失や、過剰在庫による資金繰りの悪化といったビジネスインパクトの大きいミスが激減します。
メンバー間の情報共有
自動化前:
- 在庫担当者しか最新の在庫状況を把握していない
- 発注が必要なことに気づいても、関係者への連絡が遅れる
- 営業部門が在庫状況を確認するために、いちいち在庫担当に問い合わせる必要がある
- Excelファイルが複数のバージョンで存在し、どれが最新か不明
自動化後:
- Notionのダッシュボードでリアルタイムに在庫状況を全員が確認できる
- 在庫アラートがSlackで自動共有され、関係者全員が即座に把握
- 営業担当も在庫数を自分で確認でき、顧客への納期回答がスムーズに
- 単一の情報源(Notion)で一元管理され、情報の齟齬がゼロに
応用・拡張アイデア
基本的なワークフローが稼働し始めたら、以下のような拡張機能を追加することで、さらに効率と精度を高められます。
1. バーコード・QRコードスキャンとの連携
スマートフォンのバーコードスキャンアプリ(例:Google Lens、専用在庫管理アプリ)とGoogleスプレッドシートを連携させることで、入出庫記録が一瞬で完了します。
実装方法:
- Google Formsにバーコードスキャン機能を持つアプリから送信
- スキャンしたSKUコードと数量をフォームに入力
- フォームの回答が自動的にスプレッドシートに記録され、Makeが処理
これにより、倉庫現場での入力作業がさらに70%高速化されます。
2. AI(ChatGPT API)による発注数量の最適化
過去の入出庫データをAIに分析させ、季節変動や販売トレンドを考慮した最適発注数量を提案させることができます。
実装方法:
- Makeシナリオに「OpenAI」モジュールを追加
- 過去3ヶ月の入出庫データをプロンプトに含める
- 「次の1ヶ月で必要な発注数量を予測してください」とリクエスト
- AIの回答をNotionの「推奨発注数量」フィールドに記録
3. 複数倉庫・拠点の在庫管理
事業規模が拡大し、複数の倉庫や店舗を持つようになった場合も、同じ仕組みを拡張できます。
実装方法:
- Notionの商品マスタに「倉庫A在庫」「倉庫B在庫」などのプロパティを追加
- Googleスプレッドシートに「倉庫/店舗」列を追加
- Makeで倉庫ごとに在庫数を振り分けて更新
- 倉庫間の在庫移動も記録できるように「移動」種別を追加
4. 仕入先への自動発注メール送信
発注推奨リストが作成されたら、Gmailを通じて仕入先に自動で発注メールを送信することも可能です。
実装方法:
- Makeシナリオに「Gmail」モジュールを追加
- Notionの発注管理データベースで「発注ステータス」が「発注推奨」→「発注確定」に変更されたことをトリガーに
- 仕入先メールアドレスに定型フォーマットの発注メールを自動送信
- 送信後、発注ステータスを「発注済」に自動更新
ただし、金額や契約条件の確認が必要な場合は、最終的な送信前に人間の承認ステップを挟むことを推奨します。
5. 売上データとの連携による需要予測
ShopifyやEC-CUBEなどのECプラットフォームやPOSシステムと連携し、実際の売上データから需要を予測することで、より精度の高い在庫管理が可能になります。
実装方法:
- MakeでShopify APIやPOSシステムと連携
- 日次の売上データをGoogleスプレッドシートに蓄積
- 過去の売上トレンドから、今後1週間・1ヶ月の需要を予測
- 予測需要に基づいて安全在庫数を動的に調整
6. コスト分析ダッシュボードの追加
在庫保管コスト、発注頻度、仕入単価の変動などを可視化し、経営判断に活用できるダッシュボードを作成できます。
実装方法:
- Notionの発注管理データベースから月次・四半期の集計を作成
- Googleデータポータル(Looker Studio)でNotionデータを可視化
- 「在庫回転率」「在庫保管日数」「ABC分析」などの指標を自動算出
よくある質問・つまづきポイントQ&A
Q1: Makeのシナリオが実行されない、またはエラーが出る
A: 以下のポイントを確認してください:
- API連携の認証が切れていないか:Makeの「Connections」メニューから、Notion、Googleスプレッドシート、Slackの接続状態を確認し、必要に応じて再認証
- 無料プランのオペレーション上限に達していないか:Makeダッシュボードで今月の使用量を確認。上限に達している場合は有料プランへのアップグレードか、実行頻度の調整を検討
- データベースIDやシートIDが正しいか:NotionのデータベースやGoogleスプレッドシートを作り直した場合、IDが変わるため再設定が必要
- フィルター条件が厳しすぎないか:テスト実行時に「No data」と表示される場合、フィルター条件を緩めて確認
Q2: 在庫数の計算が合わない
A: 以下の原因が考えられます:
- Makeの処理が重複している:Googleスプレッドシートの同じ行を複数回処理してしまうことがあります。「Watch New Rows」の設定で、処理済みの行をマークする仕組みを追加しましょう(例:H列に「処理済」フラグを立てる)
- 手動でNotionを編集している:自動化と手動編集が混在すると、データの整合性が崩れます。在庫数の編集は必ずGoogleスプレッドシート経由で行うルールを徹底してください
- 初期在庫数の設定ミス:ワークフロー開始時の現在庫数が正しく設定されているか、棚卸しで確認しましょう
Q3: Slackの通知が多すぎて重要な情報が埋もれる
A: 通知の優先度を設定しましょう:
- 緊急度別にチャンネルを分ける:「#在庫アラート-緊急」と「#在庫レポート」のように、重要度に応じてチャンネルを分離
- メンション機能を活用:在庫切れの場合は「@channel」でメンション、発注推奨は通常通知、というように使い分ける
- 通知の閾値を調整:安全在庫数の設定を見直し、本当に通知が必要なタイミングだけアラートが出るように調整
- サマリー通知に集約:個別の通知ではなく、1日1回のサマリー通知にまとめる選択肢も
Q4: 複数人が同時にGoogleスプレッドシートに入力すると問題が起きる?
A: Googleスプレッドシートは複数人の同時編集に対応しているため、基本的に問題ありません。ただし、以下の点に注意:
- 同じ商品を同時に入出庫する場合:タイミングによっては、在庫数の計算順序が前後する可能性があります。これを防ぐには、Makeの処理を「シーケンシャル(順次処理)」に設定します
- 大量のデータが一度に追加される場合:Makeの無料プランでは処理速度に制限があるため、数百件の一括入力は避け、バッチ処理に分けることを推奨します
Q5: このワークフローの運用コストはどれくらい?
A: 以下が目安です:
| ツール | 無料プラン | 有料プラン(推奨) |
|---|---|---|
| Notion | 個人利用は無料 | チームプラン $10/月(年払い$8) |
| Googleスプレッドシート | 完全無料 | Google Workspace $6/月〜 |
| Make | 月1,000オペレーション | Coreプラン $10.59/月(10,000オペレーション) |
| Slack | メッセージ履歴90日 | Proプラン $8.75/月(年払い) |
| 合計 | $0/月 | 約$30〜40/月 |
小規模事業であれば無料プランでも十分運用可能です。取引量が増えてきたら、Makeの有料プランへのアップグレードを検討しましょう。
Q6: セキュリティやデータ保護は大丈夫?
A: 使用するツールはすべてエンタープライズグレードのセキュリティを備えています:
- Notion:SOC 2 Type II認証取得、データは暗号化されて保存
- Google:世界最高水準のセキュリティインフラ、2段階認証の設定を推奨
- Make:GDPR準拠、データは欧州またはアメリカのデータセンターで管理
- Slack:エンタープライズ向けセキュリティ機能、SSOやデータ暗号化に対応
さらに安心するために:
- 各ツールで2段階認証を有効化
- アクセス権限を必要最小限に設定(Notionやスプレッドシートの共有設定)
- 定期的にアクセスログを確認
まとめ:まずどこから着手すべきか
在庫管理・発注業務の自動化は、一度に完璧を目指す必要はありません。スモールスタートで始めて、段階的に拡張していくアプローチが成功の鍵です。
推奨する導入ステップ
【第1週】データベースの整備(自動化なし)
- Notionで商品マスタを作成し、現在の在庫状況を入力
- Googleスプレッドシートに入出庫記録のフォーマットを作成
- 1週間、手動で入出庫を記録する習慣をつける
この段階の目的: データの流れを理解し、自社の在庫管理に必要な項目を見極める
【第2週】基本的な自動化の実装
- Makeで「スプレッドシート監視 → Notion在庫更新」のシナリオを作成
- テストデータで動作確認
- 実際の入出庫データで1週間運用テスト
この段階の目的: 在庫数の自動更新が正確に動作することを確認
【第3週】アラート機能の追加
- 安全在庫数を設定
- Makeに在庫アラート判定とSlack通知を追加
- チーム全体でアラートを受け取る体制を整備
この段階の目的: 在庫切れの見逃しをゼロにする
【第4週以降】発注管理と応用機能の追加
- 発注管理データベースを作成し、発注推奨リストの自動生成を実装
- 週次レポートの自動配信を設定
- 必要に応じて、バーコードスキャンやAI予測などの拡張機能を追加
この段階の目的: 完全自動化を実現し、業務効率を最大化
最初の一歩として今すぐできること
もし「まだちょっと難しそう」と感じる場合は、以下の超シンプル版から始めることをおすすめします:
- Notionだけで在庫管理を始める:自動化なしで、Notionの商品マスタに手動で在庫数を入力し、在庫ステータスのフォーミュラで可視化
- Googleスプレッドシートで入出庫を記録する習慣をつける:まずは1週間、紙やExcelからスプレッドシートに移行してデータを蓄積
- Slackで在庫状況を共有する習慣をつける:自動化の前に、手動でも在庫状況をチームに報告する文化を作る
この「手動運用」を1〜2週間続けることで、自動化すべきポイントが明確になり、その後の自動化がスムーズに進みます。
在庫管理自動化がもたらす未来
このワークフローを導入することで、あなたのビジネスには以下のような変化が訪れます:
- ✅ 在庫切れによる販売機会損失がゼロに:顧客に「在庫切れです」と言う必要がなくなる
- ✅ 過剰在庫による資金繰り悪化を回避:キャッシュフローが改善し、事業の安定性が向上
- ✅ チーム全体の在庫意識が高まる:Slackでの可視化により、全員が在庫状況を把握
- ✅ データに基づく経営判断が可能に:勘や経験ではなく、正確なデータで意思決定
- ✅ 担当者の負担軽減と業務の属人化解消:在庫管理が特定の人に依存しない体制へ
在庫管理は地味に見えますが、ビジネスの生命線です。このワークフローで在庫管理を自動化し、あなたのビジネスをより強固なものにしていきましょう。
まずは、Notionで商品マスタを作るところから始めてみてください。最初の一歩を踏み出せば、あとは自然と次のステップに進めます。応援しています!