業務自動化

試薬の期限切れを防ぐ!n8nで在庫管理を自動化する方法

生命科学・研究機関 の業務自動化レシピ
業種生命科学・研究機関
ツールn8n
難易度★★☆ 中
設定時間約 90 分

研究用試薬の期限切れは、廃棄費用だけでなく実験のやり直しにもつながります。本記事では、n8nとGoogleスプレッドシートを使い、期限が近い試薬を週次で一覧化してSlackやメールへ知らせる方法を解説します。中小規模のラボが小さく始めるための構成です。

読了時間: 約 12 分

📋 この記事のポイント

編集長の見解

試薬管理は、研究結果の信頼性とラボのコストに関わる業務です。n8nを使うと、既存の表計算ソフトと通知サービスを組み合わせ、確認作業を定期化できます。ただし、n8nのライセンス条件、サーバー管理、日付データの品質を確認してから導入しましょう。

🔬 研究ラボの試薬管理における課題

手作業による在庫管理の限界

多くの研究ラボでは、試薬の在庫を手書きの台帳やExcelで管理しています。この方法では、次のような問題が起こります。

こうした問題は、実験の遅れだけでなく、研究品質にも影響します。

期限切れ試薬が実験結果に与える影響

試薬の使用期限は、品質を確認する重要な目安です。期限切れの試薬を使うと、次のようなリスクがあります。

論文発表や特許出願に関わる実験では、使用試薬の管理記録も重要です。期限切れ試薬の使用が判明すると、関連データの信頼性を確認し直す必要があります。

廃棄コストと再購入コストの二重負担

期限切れ試薬には、廃棄や再購入の費用が発生します。金額は試薬の種類、容量、処理方法、地域によって変わるため、下表は編集部による試算上の目安です。実際の費用は、契約している廃棄業者や販売元に確認してください。

コスト項目内容編集部試算の目安
廃棄処理費用試薬の種類によっては特別管理産業廃棄物として処理1本あたり数百円〜数千円
再購入費用同じ試薬を再度購入する費用1本あたり数千円〜数万円
実験のやり直し費用人件費や消耗品費を含む編集部試算1回あたり数千円〜
納期遅れの影響試薬不足で実験が止まる場合の機会損失案件ごとに異なる

実際の損失を把握するには、過去の廃棄記録、購入履歴、実験時間を使って自社の金額を試算するのが現実的です。

⚠️ 編集部の警告

期限切れを放置すると、試薬の購入費用だけでなく、実験のやり直しにかかる時間も失います。特に納期が近い研究では影響が大きくなるため、通知後の廃棄、使用可否確認、再発注の担当者を先に決めておきましょう。

次のセクションでは、中小規模のラボがn8nを導入する際の機能と費用条件を確認します。

🤖 n8nとは?中小規模ラボ向け自動化ツール

n8nの基本概要

n8nは、複数のサービスをつないで処理を自動化するワークフロー基盤です。画面上でノードを接続して処理を組み立てられますが、複雑な処理ではJavaScriptなどの知識が必要になる場合もあります。

n8nは、多数のサービスやデータベースとの連携に対応しています。連携先の数や対応内容は更新されるため、導入前にn8n公式の連携一覧で確認してください。

試薬管理では、次のような組み合わせが使えます。

セルフホスト版の費用とライセンス条件

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段階で構成します。

  1. 試薬情報を一元管理する
  2. スケジュール実行で定期的に起動する
  3. 期限が近い試薬を抽出する
  4. Slackやメールで通知する

スプレッドシートでの一元管理

まず、Googleスプレッドシートで在庫情報を管理します。

列名内容記入例
試薬名正式名称Anti-Mouse IgG (H+L)
カタログ番号メーカーの製品番号115-035-003
ロット番号製造ロット番号1234567
開封日開封した日2026-04-01
使用期限使用可能な期日2026-08-31
保管場所冷蔵庫や冷凍庫の位置4℃庫 A段
担当者主な使用者佐藤
数量本数や容量2本
状態使用中、未開封、廃棄済みなど使用中

受け取り時、使用時、廃棄時の更新担当を決めることが、自動化を安定させる鍵です。

スケジュールトリガーでの週次実行

n8nのSchedule Triggerを使うと、毎週決まった曜日と時刻に実行できます。

日本で運用する場合は、n8nのタイムゾーンをAsia/Tokyoに設定し、夏時間の影響を受けないよう確認します。

期限切れ試薬の抽出

抽出条件の例は次のとおりです。

  1. 使用期限が今日より前: 期限切れ
  2. 使用期限が今日以降、30日以内: 30日前警告
  3. 使用期限が今日以降、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 IgG115-035-0031234562026-04-012026-08-314℃庫 A段佐藤2使用中
PBS (10x)100-100-0237890122026-01-152026-06-30室温 B棚鈴木1使用中
Trypsin-EDTA252-000-563456782026-05-102026-12-31-20℃庫 C段高橋3未開封
D-MEM (高グルコース)043-300-859012342025-11-202026-04-154℃庫 B段佐藤4使用中
FBS (ウシ胎児血清)172-012-475678902026-03-012026-09-30-20℃庫 A段鈴木1使用中

ステップ2: Schedule Triggerを設定する

n8nのエディターで新しいワークフローを作成します。

  1. 「+」からSchedule Triggerを追加します。
  2. 実行間隔をWeeksにします。
  3. 曜日をMonday、時刻を9:00にします。
  4. タイムゾーンをAsia/Tokyoに設定します。

実行前に、手動テストで想定した時刻になるか確認してください。

ステップ3: Google Sheetsノードを設定する

  1. Schedule Triggerの後ろにGoogle Sheetsノードを追加します。
  2. 表の行を取得する操作を選びます。
  3. GoogleアカウントをOAuth認証します。
  4. スプレッドシートのIDとシート名を指定します。
  5. 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通知

  1. Slackノードで通知先を設定します。
  2. 通知先を#reagentなどの専用チャンネルにします。
  3. 期限、試薬名、ロット番号、担当者を本文に含めます。

通知本文の例は次のとおりです。n8nへ入力する際は、実際のデータ項目名に合わせて調整してください。

⚠️ 【期限切れ試薬があります】

次の試薬が使用期限を過ぎています。

{% for item in items %}
・{{ item.試薬名 }}(ロット: {{ item.ロット番号 }})
 使用期限: {{ item.使用期限 }} / 担当: {{ item.担当者 }}
{% endfor %}

廃棄または使用可否を確認してください。

⚠️ 波括弧の扱いに注意

上のコードブロックでは、MDXが波括弧を式として解釈しないようHTMLエンティティで表記しています。n8nの入力欄へコピーする際は、表示されるテンプレート記法に戻し、実際のノードで使える式や項目名に置き換えてください。n8nのテンプレート記法は、利用するノードとバージョンの公式ドキュメントで確認します。

メール通知

Slackを使わない場合は、メール送信ノードを使います。

項目設定例
From Email通知用アドレス
To Emailラボ管理者のアドレス
Subject【試薬管理】期限切れ・期限間近の試薬があります
Email FormatText
MessageSlack通知と同じ内容

ここまで設定すると、毎週、期限切れと期限間近の試薬を通知できます。

編集長の見解

最初から全試薬を対象にせず、購入単価が高い試薬や期限管理が重要な試薬から始めましょう。テストデータで通知内容を確認し、担当者が実際に対応できることを確かめてから本番データへ切り替えるのが安全です。

次のセクションでは、通知を受けた人が行動しやすい表示方法を紹介します。

📱 通知内容の設計とカスタマイズ

期限切れ試薬を見やすく整理する

通知は、受信者がすぐ判断できる形にします。次の情報を含めると、確認しやすくなります。

保管場所、期限、担当者の順に整理すると、廃棄や使用計画の変更を進めやすくなります。

30日前・7日前の段階的な警告

警告を段階化すると、期限切れ前に使い切るか、発注や廃棄を判断できます。

タイミング通知内容目的
30日前期限が近いことを知らせる使用計画を確認する
7日前対応期限が迫っていると知らせる使用、移管、廃棄を判断する
期限切れ後使用を止めて確認を促す品質管理と記録を確認する

30日前と7日前の対象が重複する場合は、通知済みフラグを管理すると通知の重複を減らせます。

通知先をカスタマイズする

通知対象内容通知先
ラボ全体期限切れ試薬の一覧#reagentチャンネル
管理者廃棄や再発注が必要な試薬管理者のダイレクトメッセージ
担当者担当試薬の期限間近情報担当者の個別通知

Slack以外にも、メール、Microsoft Teams、Chatworkなど、n8nで利用できる連携先があります。SMSを使う場合は、Twilioなどの外部サービスと料金、送信元番号、個人情報の扱いを確認してください。

通知文は、次の3点を明記すると行動につながりやすくなります。

💡 通知文の例

「【至急】PBS(ロット789012)が期限切れです。本日中に担当者が保管状態と使用可否を確認し、必要なら廃棄記録を更新してください」のように、対象と期限、担当者を明記します。

次のセクションでは、自動化を定着させるために避けたい失敗を整理します。

⚠️ 編集部の警告:自動化導入時の失敗パターン

失敗パターン1: 入力ルールを決めない

原因: 誰が、いつ、どの項目を更新するか決めていないため、情報が古くなります。

対策:

失敗パターン2: 日付形式を確認しない

原因: 表示形式や入力方法が人によって異なり、n8n側で日付として扱えない場合があります。

対策:

「YYYY-MM-DD」だけに固定しても、保存先やノードによって解釈が異なる場合があります。n8nの日時処理に合わせて変換し、実データで検証してください。

失敗パターン3: 通知後の対応を決めない

通知だけでは、期限切れ問題は解決しません。次の対応を事前に決めます。

  1. 通知を受信する
  2. 担当者が現物と記録を確認する
  3. 使用、移管、廃棄を判断する
  4. 在庫表と廃棄記録を更新する
  5. 必要に応じて再発注する

⚠️ 自動化は手段です

自動化の効果は、入力データの正確さと、通知後の対応手順で決まります。月1回は通知履歴と在庫表を照合し、誤通知や見落としがないか確認してください。

次のセクションでは、経営者やラボ管理者が導入後に確認すべき運用項目を整理します。

💡 経営者・ラボ管理者が押さえるべき運用ポイント

責任者と役割を明確にする

自動化を定着させるには、担当者を決める必要があります。

役割担当例主な業務
在庫管理責任者ラボマネージャー全体運用、通知確認
データ更新担当実験担当者受け取り、使用、廃棄時の更新
発注担当事務担当期限間近品の発注
システム担当管理担当者n8nの更新、バックアップ、障害確認

月次で効果を見直す

月次レビューでは、次の項目を確認します。

  1. 期限切れ試薬の本数
  2. データ入力漏れの件数
  3. 通知から対応までの時間
  4. 誤通知や重複通知の件数
  5. 廃棄と再購入にかかった費用

成果指標は、ラボの規模と過去実績を基準に設定してください。

成果指標初期目標の例
期限切れ試薬の本数前月以下
入力漏れの件数前月以下
通知から対応までの時間1週間以内
重複通知の件数0件を目指す

他の業務と連携する

n8nは、試薬管理以外の業務にも応用できます。

ただし、自動発注や廃棄処理を完全自動化する場合は、承認者と記録方法を決めてから実装してください。

編集長の見解

試薬管理の自動化は、作業時間を減らすだけでなく、研究記録の確認を習慣化する仕組みです。無料のソフトウェア利用料だけで判断せず、サーバー管理やバックアップを含めた総コストと、ライセンス条件を確認して導入しましょう。

次のセクションでは、導入前に確認したい質問に回答します。

❓ よくある質問

Q1. n8nのセルフホスト版は本当に無料で使えるのか?

セルフホスト版には、ソフトウェア利用料を抑えて始められる選択肢があります。ただし、「無料で全機能を無条件に使える」とは表現できません。

n8nの料金ページとライセンス情報を確認し、次の費用と条件を整理してください。

自社ラボの内部業務で使う場合でも、利用形態がライセンスに合っているか確認することが重要です。

Q2. スプレッドシート以外のデータベースにも対応できるか?

対応できます。利用するデータ量や運用体制に応じて選びます。

データソースn8nノード例特徴
GoogleスプレッドシートGoogle Sheets導入しやすい
AirtableAirtable表を整理しやすい
MySQL、PostgreSQL各データベース用ノード大量データに向く
Google BigQueryGoogle BigQuery分析用途に向く

まずはスプレッドシートで始め、履歴や権限管理が必要になった段階で移行を検討します。

Q3. 通知先をSlack以外にすることは可能か?

可能です。メール、Microsoft Teams、Chatworkなどを通知先にできます。SMSを使う場合は、Twilioなどの外部サービスを経由します。

サービスごとに料金、送信制限、個人情報の扱いが異なるため、導入前に条件を確認してください。

Q4. セルフホスト版のサーバーには何が必要か?

Dockerが動く環境が候補になります。ただし、n8nの公式ドキュメントでは、必要なリソースはワークフローの数、同時実行数、データ量によって変わると説明されています。固定の「メモリ4GB、ストレージ10GB」という基準だけで判断するのは避けてください。

小規模な検証では、次の項目を確認します。

確認項目内容
CPU・メモリワークフローと同時実行数に応じて決める
ストレージ実行履歴、データベース、バックアップを含める
OS・Dockern8nの対応環境とバージョンを確認
バックアップ復旧手順と保存先を決める
ネットワーク外部サービスとの通信と認証を確認

実際の構成は、n8n公式ドキュメントと利用するDocker環境の仕様を参照してください。

Q5. 導入にプログラミング知識は必要か?

基本的なワークフローは、ノードを接続して作成できます。ただし、日付変換、複雑な条件分岐、API連携では、式やJavaScriptの知識が役立ちます。

最初は、Schedule Trigger、Google Sheets、条件分岐、Slack通知の組み合わせから始めるとよいでしょう。

Q6. 複数拠点のラボでも使えるか?

使えます。拠点名の列を追加し、通知条件で拠点を分けます。各拠点の管理者へ必要な情報だけを送る構成にすると、通知の見落としを減らせます。

💡 小さく始める

最初は高額な試薬や使用頻度の高い試薬に限定し、1つの通知先で運用します。1か月ほど使って入力漏れと誤通知を確認してから、対象範囲を広げると失敗を抑えられます。

📚 参考情報

本記事では、仕様や料金条件が更新される可能性のある情報について、公式ページを参照しています。

編集長のまとめ

n8nとGoogleスプレッドシートを組み合わせると、試薬の期限確認と通知を定期化できます。中小規模のラボは、対象試薬を絞ってテストし、入力ルールと通知後の対応を整えてから本格運用へ進みましょう。

セルフホスト版を使う場合は、ソフトウェア料金だけでなく、サーバー、バックアップ、保守、ライセンス条件も確認してください。まずはテストデータで動かし、ラボの実情に合う構成へ調整することが、無理なく続ける第一歩です。


Mira / AI経営ラボ 編集長