試薬の期限切れを防ぐ!n8nで在庫管理を自動化する方法
研究用試薬の期限切れは、廃棄費用だけでなく実験のやり直しにもつながります。本記事では、n8nとGoogleスプレッドシートを使い、期限が近い試薬を週次で一覧化してSlackやメールへ知らせる方法を解説します。中小規模のラボが小さく始めるための構成です。
📋 この記事のポイント
- 期限管理を自動化 — 使用期限が近い試薬を定期的に抽出します
- Googleスプレッドシートを活用 — 特別な在庫管理システムを用意せずに始められます
- n8nの費用条件を確認 — セルフホスト版はライセンス条件を確認したうえで利用します
- 週次通知で確認漏れを減らす — Slackやメールに一覧を送信できます
- 30日前・7日前の警告に対応 — 余裕を持って使用計画や発注を見直せます
編集長の見解
試薬管理は、研究結果の信頼性とラボのコストに関わる業務です。n8nを使うと、既存の表計算ソフトと通知サービスを組み合わせ、確認作業を定期化できます。ただし、n8nのライセンス条件、サーバー管理、日付データの品質を確認してから導入しましょう。
🔬 研究ラボの試薬管理における課題
手作業による在庫管理の限界
多くの研究ラボでは、試薬の在庫を手書きの台帳やExcelで管理しています。この方法では、次のような問題が起こります。
- 記入漏れや記入ミスで、実在庫と台帳が一致しない
- 使用期限の確認が不定期になり、期限切れに気づきにくい
- 担当者が変わると、管理方法が引き継がれにくい
- 在庫の重複購入や、必要な試薬の欠品が起こる
こうした問題は、実験の遅れだけでなく、研究品質にも影響します。
期限切れ試薬が実験結果に与える影響
試薬の使用期限は、品質を確認する重要な目安です。期限切れの試薬を使うと、次のようなリスクがあります。
- 化学的な活性が低下し、結果の再現性が損なわれる
- 不純物の影響で、分析結果の信頼性が下がる
- 細胞培養や生化学実験で、予期しない結果が出る
論文発表や特許出願に関わる実験では、使用試薬の管理記録も重要です。期限切れ試薬の使用が判明すると、関連データの信頼性を確認し直す必要があります。
廃棄コストと再購入コストの二重負担
期限切れ試薬には、廃棄や再購入の費用が発生します。金額は試薬の種類、容量、処理方法、地域によって変わるため、下表は編集部による試算上の目安です。実際の費用は、契約している廃棄業者や販売元に確認してください。
| コスト項目 | 内容 | 編集部試算の目安 |
|---|---|---|
| 廃棄処理費用 | 試薬の種類によっては特別管理産業廃棄物として処理 | 1本あたり数百円〜数千円 |
| 再購入費用 | 同じ試薬を再度購入する費用 | 1本あたり数千円〜数万円 |
| 実験のやり直し費用 | 人件費や消耗品費を含む編集部試算 | 1回あたり数千円〜 |
| 納期遅れの影響 | 試薬不足で実験が止まる場合の機会損失 | 案件ごとに異なる |
実際の損失を把握するには、過去の廃棄記録、購入履歴、実験時間を使って自社の金額を試算するのが現実的です。
⚠️ 編集部の警告
期限切れを放置すると、試薬の購入費用だけでなく、実験のやり直しにかかる時間も失います。特に納期が近い研究では影響が大きくなるため、通知後の廃棄、使用可否確認、再発注の担当者を先に決めておきましょう。
次のセクションでは、中小規模のラボがn8nを導入する際の機能と費用条件を確認します。
🤖 n8nとは?中小規模ラボ向け自動化ツール
n8nの基本概要
n8nは、複数のサービスをつないで処理を自動化するワークフロー基盤です。画面上でノードを接続して処理を組み立てられますが、複雑な処理ではJavaScriptなどの知識が必要になる場合もあります。
n8nは、多数のサービスやデータベースとの連携に対応しています。連携先の数や対応内容は更新されるため、導入前にn8n公式の連携一覧で確認してください。
試薬管理では、次のような組み合わせが使えます。
- Googleスプレッドシートから在庫を取得
- 使用期限を条件に対象を絞り込み
- Slackやメールへ通知
- データベースへ履歴を保存
セルフホスト版の費用とライセンス条件
n8nには、n8nが管理する環境を使うクラウド版と、自分で環境を用意するセルフホスト版があります。セルフホスト版は、利用するソフトウェア自体の料金がかからないプランとして案内されていますが、サーバー代、通信費、バックアップ、保守費用は別途必要です。
また、セルフホスト版は「どのような用途でも無条件に無料」という意味ではありません。n8nのライセンスでは、利用方法によって制限や条件があります。特に、n8nを自社の業務で使う場合と、n8nそのものを第三者向けサービスとして提供する場合では扱いが異なる可能性があります。
導入前に、n8nの料金ページとライセンス情報を確認してください。大規模組織での利用、顧客向けサービスへの組み込み、再販に近い形での提供を検討する場合は、必要に応じてn8nへ確認しましょう。
| 確認項目 | セルフホスト版での扱い |
|---|---|
| ソフトウェア利用料 | 料金ページとライセンス条件を確認 |
| サーバー・通信費 | 利用者が負担 |
| アップデート・バックアップ | 利用者が運用 |
| 商用利用 | 利用形態に応じてライセンスを確認 |
| 大規模利用・第三者提供 | 事前に条件を確認 |
中小規模のラボでは、まず少人数の内部業務で試し、運用負担とライセンス条件を確認する進め方が安全です。
💡 編集部のヒント
Dockerが動く環境は、n8nのセルフホスト先の候補になります。NASを使う場合は、SynologyやQNAPの機種、Docker対応状況、OSの設定方法を各メーカーの公式情報で確認してください。n8nの導入可否や手順は、機種や構成によって異なります。
主要サービスとの連携
n8nでは、試薬管理に必要なサービスを組み合わせられます。
| 連携先 | 用途 | n8nのノード例 |
|---|---|---|
| Googleスプレッドシート | 試薬在庫の一元管理 | Google Sheets |
| Slack | ラボメンバーへの通知 | Slack |
| Gmail、Outlook | メール通知 | Gmail、Microsoft Outlook |
| Google Calendar | 確認日のリマインダー | Google Calendar |
| Airtable | 表計算より整理しやすいデータ管理 | Airtable |
| MySQL、PostgreSQL | データ量が多い場合の管理 | 各データベース用ノード |
既存ツールを活用すると、導入時の負担を抑えられます。
次のセクションでは、試薬情報を登録してから通知するまでの流れを整理します。
📊 試薬在庫管理ワークフローの全体像
基本の流れ
試薬在庫管理のワークフローは、次の4段階で構成します。
- 試薬情報を一元管理する
- スケジュール実行で定期的に起動する
- 期限が近い試薬を抽出する
- Slackやメールで通知する
スプレッドシートでの一元管理
まず、Googleスプレッドシートで在庫情報を管理します。
| 列名 | 内容 | 記入例 |
|---|---|---|
| 試薬名 | 正式名称 | Anti-Mouse IgG (H+L) |
| カタログ番号 | メーカーの製品番号 | 115-035-003 |
| ロット番号 | 製造ロット番号 | 1234567 |
| 開封日 | 開封した日 | 2026-04-01 |
| 使用期限 | 使用可能な期日 | 2026-08-31 |
| 保管場所 | 冷蔵庫や冷凍庫の位置 | 4℃庫 A段 |
| 担当者 | 主な使用者 | 佐藤 |
| 数量 | 本数や容量 | 2本 |
| 状態 | 使用中、未開封、廃棄済みなど | 使用中 |
受け取り時、使用時、廃棄時の更新担当を決めることが、自動化を安定させる鍵です。
スケジュールトリガーでの週次実行
n8nのSchedule Triggerを使うと、毎週決まった曜日と時刻に実行できます。
- 毎週月曜日の午前9時
- 日次、週次、月次などの間隔
- n8nのタイムゾーン設定に応じた実行
日本で運用する場合は、n8nのタイムゾーンをAsia/Tokyoに設定し、夏時間の影響を受けないよう確認します。
期限切れ試薬の抽出
抽出条件の例は次のとおりです。
- 使用期限が今日より前: 期限切れ
- 使用期限が今日以降、30日以内: 30日前警告
- 使用期限が今日以降、7日以内: 7日前警告
日付データは、n8nの日時処理で使う形式にそろえます。入力形式だけでなく、スプレッドシートのセルが日付として認識されているかも確認してください。
次のセクションでは、Googleスプレッドシートから通知までの設定手順を説明します。
⚙️ n8nで構築する具体的なステップ
ここでは、テストデータを使って構築します。設置時間の目安は約90分ですが、認証や社内環境によって前後します。
ステップ1: 試薬在庫スプレッドシートを作成する
Googleスプレッドシートで「試薬在庫管理」という表を作成します。
| 列 | ヘッダー名 | データ型 | 記入例 |
|---|---|---|---|
| A | 試薬名 | テキスト | Anti-Mouse IgG |
| B | カタログ番号 | テキスト | 115-035-003 |
| C | ロット番号 | テキスト | 123456 |
| D | 開封日 | 日付 | 2026-04-01 |
| E | 使用期限 | 日付 | 2026-08-31 |
| F | 保管場所 | テキスト | 4℃庫 A段 |
| G | 担当者 | テキスト | 佐藤 |
| H | 数量 | 数値 | 2 |
| I | 状態 | テキスト | 使用中 |
テストデータを入力する
動作確認用に、期限切れ、期限間近、期限に余裕があるデータを用意します。
| 試薬名 | カタログ番号 | ロット番号 | 開封日 | 使用期限 | 保管場所 | 担当者 | 数量 | 状態 |
|---|---|---|---|---|---|---|---|---|
| Anti-Mouse IgG | 115-035-003 | 123456 | 2026-04-01 | 2026-08-31 | 4℃庫 A段 | 佐藤 | 2 | 使用中 |
| PBS (10x) | 100-100-023 | 789012 | 2026-01-15 | 2026-06-30 | 室温 B棚 | 鈴木 | 1 | 使用中 |
| Trypsin-EDTA | 252-000-56 | 345678 | 2026-05-10 | 2026-12-31 | -20℃庫 C段 | 高橋 | 3 | 未開封 |
| D-MEM (高グルコース) | 043-300-85 | 901234 | 2025-11-20 | 2026-04-15 | 4℃庫 B段 | 佐藤 | 4 | 使用中 |
| FBS (ウシ胎児血清) | 172-012-47 | 567890 | 2026-03-01 | 2026-09-30 | -20℃庫 A段 | 鈴木 | 1 | 使用中 |
ステップ2: Schedule Triggerを設定する
n8nのエディターで新しいワークフローを作成します。
- 「+」からSchedule Triggerを追加します。
- 実行間隔をWeeksにします。
- 曜日をMonday、時刻を9:00にします。
- タイムゾーンを
Asia/Tokyoに設定します。
実行前に、手動テストで想定した時刻になるか確認してください。
ステップ3: Google Sheetsノードを設定する
- Schedule Triggerの後ろにGoogle Sheetsノードを追加します。
- 表の行を取得する操作を選びます。
- GoogleアカウントをOAuth認証します。
- スプレッドシートのIDとシート名を指定します。
- 1行目をヘッダーとして扱います。
スプレッドシートのURLは、通常、次のような形式です。
https://docs.google.com/spreadsheets/d/【ドキュメントID】/edit
/d/と/editの間にある文字列がドキュメントIDです。
💡 認証情報を安全に扱う
n8nの認証情報には、スプレッドシートの読み取り権限だけを付与するなど、必要最小限の権限を設定します。認証情報をワークフロー本文や共有シートに直接書かないでください。
ステップ4: 期限切れ試薬を抽出する
Google Sheetsノードの後ろに、日付処理と条件分岐のノードを追加します。
4-1. 現在日付を取得する
n8nの日時処理ノードで現在日付を取得します。タイムゾーンがAsia/Tokyoになっていることを確認してください。
4-2. 条件を設定する
日付を比較する前に、スプレッドシートの値をn8nが認識できる日付形式へ変換します。実際のノード名や項目名は、n8nのバージョンによって異なる場合があります。
| 判定 | 条件 |
|---|---|
| 期限切れ | 使用期限が今日より前 |
| 30日前警告 | 使用期限が今日以降、今日から30日以内 |
| 7日前警告 | 使用期限が今日以降、今日から7日以内 |
スプレッドシートに表示される日付と、内部で扱われる値が異なる場合があります。表示形式だけで判断せず、テスト実行の出力を確認してください。
ステップ5: Slackまたはメールで通知する
フィルター後にSlackまたはメールのノードを追加します。
Slack通知
- Slackノードで通知先を設定します。
- 通知先を
#reagentなどの専用チャンネルにします。 - 期限、試薬名、ロット番号、担当者を本文に含めます。
通知本文の例は次のとおりです。n8nへ入力する際は、実際のデータ項目名に合わせて調整してください。
⚠️ 【期限切れ試薬があります】
次の試薬が使用期限を過ぎています。
{% for item in items %}
・{{ item.試薬名 }}(ロット: {{ item.ロット番号 }})
使用期限: {{ item.使用期限 }} / 担当: {{ item.担当者 }}
{% endfor %}
廃棄または使用可否を確認してください。
⚠️ 波括弧の扱いに注意
上のコードブロックでは、MDXが波括弧を式として解釈しないようHTMLエンティティで表記しています。n8nの入力欄へコピーする際は、表示されるテンプレート記法に戻し、実際のノードで使える式や項目名に置き換えてください。n8nのテンプレート記法は、利用するノードとバージョンの公式ドキュメントで確認します。
メール通知
Slackを使わない場合は、メール送信ノードを使います。
| 項目 | 設定例 |
|---|---|
| From Email | 通知用アドレス |
| To Email | ラボ管理者のアドレス |
| Subject | 【試薬管理】期限切れ・期限間近の試薬があります |
| Email Format | Text |
| Message | Slack通知と同じ内容 |
ここまで設定すると、毎週、期限切れと期限間近の試薬を通知できます。
編集長の見解
最初から全試薬を対象にせず、購入単価が高い試薬や期限管理が重要な試薬から始めましょう。テストデータで通知内容を確認し、担当者が実際に対応できることを確かめてから本番データへ切り替えるのが安全です。
次のセクションでは、通知を受けた人が行動しやすい表示方法を紹介します。
📱 通知内容の設計とカスタマイズ
期限切れ試薬を見やすく整理する
通知は、受信者がすぐ判断できる形にします。次の情報を含めると、確認しやすくなります。
- 試薬名とロット番号
- 使用期限と残り日数
- 保管場所
- 担当者
- 必要な対応
保管場所、期限、担当者の順に整理すると、廃棄や使用計画の変更を進めやすくなります。
30日前・7日前の段階的な警告
警告を段階化すると、期限切れ前に使い切るか、発注や廃棄を判断できます。
| タイミング | 通知内容 | 目的 |
|---|---|---|
| 30日前 | 期限が近いことを知らせる | 使用計画を確認する |
| 7日前 | 対応期限が迫っていると知らせる | 使用、移管、廃棄を判断する |
| 期限切れ後 | 使用を止めて確認を促す | 品質管理と記録を確認する |
30日前と7日前の対象が重複する場合は、通知済みフラグを管理すると通知の重複を減らせます。
通知先をカスタマイズする
| 通知対象 | 内容 | 通知先 |
|---|---|---|
| ラボ全体 | 期限切れ試薬の一覧 | #reagentチャンネル |
| 管理者 | 廃棄や再発注が必要な試薬 | 管理者のダイレクトメッセージ |
| 担当者 | 担当試薬の期限間近情報 | 担当者の個別通知 |
Slack以外にも、メール、Microsoft Teams、Chatworkなど、n8nで利用できる連携先があります。SMSを使う場合は、Twilioなどの外部サービスと料金、送信元番号、個人情報の扱いを確認してください。
通知文は、次の3点を明記すると行動につながりやすくなります。
- 何を確認するか
- いつまでに行うか
- 誰が対応するか
💡 通知文の例
「【至急】PBS(ロット789012)が期限切れです。本日中に担当者が保管状態と使用可否を確認し、必要なら廃棄記録を更新してください」のように、対象と期限、担当者を明記します。
次のセクションでは、自動化を定着させるために避けたい失敗を整理します。
⚠️ 編集部の警告:自動化導入時の失敗パターン
失敗パターン1: 入力ルールを決めない
原因: 誰が、いつ、どの項目を更新するか決めていないため、情報が古くなります。
対策:
- 試薬を受け取った時点で登録する
- 使用した時点で数量を更新する
- 廃棄時に状態と廃棄日を更新する
- 管理責任者が週次でデータを確認する
失敗パターン2: 日付形式を確認しない
原因: 表示形式や入力方法が人によって異なり、n8n側で日付として扱えない場合があります。
対策:
- 入力形式を文書化する
- 日付列を日付データとして管理する
- n8nのテスト実行で取得値を確認する
- 必要に応じて日付変換処理を追加する
「YYYY-MM-DD」だけに固定しても、保存先やノードによって解釈が異なる場合があります。n8nの日時処理に合わせて変換し、実データで検証してください。
失敗パターン3: 通知後の対応を決めない
通知だけでは、期限切れ問題は解決しません。次の対応を事前に決めます。
- 通知を受信する
- 担当者が現物と記録を確認する
- 使用、移管、廃棄を判断する
- 在庫表と廃棄記録を更新する
- 必要に応じて再発注する
⚠️ 自動化は手段です
自動化の効果は、入力データの正確さと、通知後の対応手順で決まります。月1回は通知履歴と在庫表を照合し、誤通知や見落としがないか確認してください。
次のセクションでは、経営者やラボ管理者が導入後に確認すべき運用項目を整理します。
💡 経営者・ラボ管理者が押さえるべき運用ポイント
責任者と役割を明確にする
自動化を定着させるには、担当者を決める必要があります。
| 役割 | 担当例 | 主な業務 |
|---|---|---|
| 在庫管理責任者 | ラボマネージャー | 全体運用、通知確認 |
| データ更新担当 | 実験担当者 | 受け取り、使用、廃棄時の更新 |
| 発注担当 | 事務担当 | 期限間近品の発注 |
| システム担当 | 管理担当者 | n8nの更新、バックアップ、障害確認 |
月次で効果を見直す
月次レビューでは、次の項目を確認します。
- 期限切れ試薬の本数
- データ入力漏れの件数
- 通知から対応までの時間
- 誤通知や重複通知の件数
- 廃棄と再購入にかかった費用
成果指標は、ラボの規模と過去実績を基準に設定してください。
| 成果指標 | 初期目標の例 |
|---|---|
| 期限切れ試薬の本数 | 前月以下 |
| 入力漏れの件数 | 前月以下 |
| 通知から対応までの時間 | 1週間以内 |
| 重複通知の件数 | 0件を目指す |
他の業務と連携する
n8nは、試薬管理以外の業務にも応用できます。
- 発注管理: 期限間近品の発注候補を作成
- 実験記録: 使用試薬のロット番号を記録
- 機器管理: 点検日のリマインダーを送信
- 監査対応: 在庫と廃棄の履歴を保存
ただし、自動発注や廃棄処理を完全自動化する場合は、承認者と記録方法を決めてから実装してください。
編集長の見解
試薬管理の自動化は、作業時間を減らすだけでなく、研究記録の確認を習慣化する仕組みです。無料のソフトウェア利用料だけで判断せず、サーバー管理やバックアップを含めた総コストと、ライセンス条件を確認して導入しましょう。
次のセクションでは、導入前に確認したい質問に回答します。
❓ よくある質問
Q1. n8nのセルフホスト版は本当に無料で使えるのか?
セルフホスト版には、ソフトウェア利用料を抑えて始められる選択肢があります。ただし、「無料で全機能を無条件に使える」とは表現できません。
n8nの料金ページとライセンス情報を確認し、次の費用と条件を整理してください。
- サーバー、通信、バックアップの費用
- アップデートと障害対応の担当
- 商用利用に関するライセンス条件
- 大規模組織での利用条件
- n8n自体を第三者へ提供する場合の条件
自社ラボの内部業務で使う場合でも、利用形態がライセンスに合っているか確認することが重要です。
Q2. スプレッドシート以外のデータベースにも対応できるか?
対応できます。利用するデータ量や運用体制に応じて選びます。
| データソース | n8nノード例 | 特徴 |
|---|---|---|
| Googleスプレッドシート | Google Sheets | 導入しやすい |
| Airtable | Airtable | 表を整理しやすい |
| MySQL、PostgreSQL | 各データベース用ノード | 大量データに向く |
| Google BigQuery | Google BigQuery | 分析用途に向く |
まずはスプレッドシートで始め、履歴や権限管理が必要になった段階で移行を検討します。
Q3. 通知先をSlack以外にすることは可能か?
可能です。メール、Microsoft Teams、Chatworkなどを通知先にできます。SMSを使う場合は、Twilioなどの外部サービスを経由します。
サービスごとに料金、送信制限、個人情報の扱いが異なるため、導入前に条件を確認してください。
Q4. セルフホスト版のサーバーには何が必要か?
Dockerが動く環境が候補になります。ただし、n8nの公式ドキュメントでは、必要なリソースはワークフローの数、同時実行数、データ量によって変わると説明されています。固定の「メモリ4GB、ストレージ10GB」という基準だけで判断するのは避けてください。
小規模な検証では、次の項目を確認します。
| 確認項目 | 内容 |
|---|---|
| CPU・メモリ | ワークフローと同時実行数に応じて決める |
| ストレージ | 実行履歴、データベース、バックアップを含める |
| OS・Docker | n8nの対応環境とバージョンを確認 |
| バックアップ | 復旧手順と保存先を決める |
| ネットワーク | 外部サービスとの通信と認証を確認 |
実際の構成は、n8n公式ドキュメントと利用するDocker環境の仕様を参照してください。
Q5. 導入にプログラミング知識は必要か?
基本的なワークフローは、ノードを接続して作成できます。ただし、日付変換、複雑な条件分岐、API連携では、式やJavaScriptの知識が役立ちます。
最初は、Schedule Trigger、Google Sheets、条件分岐、Slack通知の組み合わせから始めるとよいでしょう。
Q6. 複数拠点のラボでも使えるか?
使えます。拠点名の列を追加し、通知条件で拠点を分けます。各拠点の管理者へ必要な情報だけを送る構成にすると、通知の見落としを減らせます。
💡 小さく始める
最初は高額な試薬や使用頻度の高い試薬に限定し、1つの通知先で運用します。1か月ほど使って入力漏れと誤通知を確認してから、対象範囲を広げると失敗を抑えられます。
📚 参考情報
本記事では、仕様や料金条件が更新される可能性のある情報について、公式ページを参照しています。
- n8n公式ドキュメント
- n8n公式サイト
- n8n連携一覧
- n8n料金ページ
- n8nライセンス情報
- n8nホスティング情報
- GoogleスプレッドシートAPI公式ドキュメント
- Slack API公式ドキュメント
編集長のまとめ
n8nとGoogleスプレッドシートを組み合わせると、試薬の期限確認と通知を定期化できます。中小規模のラボは、対象試薬を絞ってテストし、入力ルールと通知後の対応を整えてから本格運用へ進みましょう。
セルフホスト版を使う場合は、ソフトウェア料金だけでなく、サーバー、バックアップ、保守、ライセンス条件も確認してください。まずはテストデータで動かし、ラボの実情に合う構成へ調整することが、無理なく続ける第一歩です。
Mira / AI経営ラボ 編集長