はじめに
「この作業、自動化できないかな」
仕事をしていると、そう思う場面って結構ありますよね。Slackに通知が来たらスプレッドシートに記録する、GitHubでIssueが作られたらTrelloにカードを追加する、といった定型作業。手でやっても5分で終わるけど、毎日やってると地味にストレスが溜まる。
ZapierやIFTTTも使ったことはあるんですが、無料枠だと制限がきつい。かといって、毎月そこそこの金額を払うのもなあ、という話。
そんなときに見つけたのがn8nです。
オープンソースのワークフロー自動化プラットフォームで、GitHubスターは161,000を超えています。これ、桁が違うんですよね。400以上のサービスと連携できて、しかもセルフホストすれば無料。個人的には、これは知っておくべきツールだと思います。
n8nとは
n8nは「Fair-code workflow automation platform」を掲げる、ワークフロー自動化ツールです。読み方は「エヌ・エイト・エヌ」。
ビジュアルなノードエディタでワークフローを組み立てられるのはもちろん、必要に応じてJavaScriptやPythonのコードも書けます。ノーコードの手軽さと、コードの柔軟性を両立しているのが特徴ですね。
ZapierやMake(旧Integromat)の代替として使われることが多いですが、大きな違いはセルフホストできることと、ネイティブでAI機能に対応していること。LangChainベースのAIエージェントワークフローも組めます。
特徴・メリット
400以上のサービスと連携可能
Slack、Notion、Google Sheets、GitHub、Trello、Discord、OpenAI、Anthropic...使いたいサービスはほぼ揃っています。しかも各サービスのノードは「トリガー」と「アクション」が分かれていて、組み合わせの自由度が高い。
「Webhookでデータを受けて、ChatGPTで処理して、結果をSlackに投げる」みたいなフローも簡単に作れます。
ビジュアル × コードの両立
これ、意外と重要なんですよね。ノーコードツールって、複雑な条件分岐や独自のロジックが必要になると詰むことがある。n8nはCodeノードでJavaScriptやPythonを書けるので、「ここだけは自分でコード書きたい」という場面でも対応できます。
NPMパッケージも使えるので、ライブラリの力を借りることも可能。
ネイティブAI対応
最近のアップデートでAI機能が強化されていて、LangChainベースのAIエージェントワークフローを構築できます。RAG、ベクトルストア、AIエージェントといった、今どきのAI機能もノードとして用意されています。
ChatGPTやClaude、Geminiといった主要なLLMはもちろん、ローカルで動くOllamaにも対応。
セルフホスト可能
ここが一番のメリットかもしれません。自前のサーバーで動かせば、月額費用ゼロで使い放題。クラウド版もありますが、コストを抑えたいならセルフホスト一択ですね。
機密性の高いデータを扱う場合、外部サービスに流したくないこともあるので、その点でも安心感があります。
エンタープライズ機能も充実
SSO、高度な権限管理、エアギャップ環境対応など、企業で使うときに必要な機能も揃っています。個人から大企業まで、スケールに応じて使える設計になっています。
インストール方法
インストールは本当に簡単です。Node.jsが入っていれば、1行で起動できます。
npx n8n
これだけ。ブラウザで http://localhost:5678 にアクセスすると、n8nのエディタが表示されます。時短にもほどがある。
Dockerで動かす場合
本番環境で使うならDockerがおすすめです。
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
データを永続化するために、ボリュームをマウントしておくのがポイント。これを忘れると、コンテナを消したときにワークフローも消えます。
Docker Composeで構成管理
複数のサービスと組み合わせる場合は、docker-compose.ymlを使うと便利です。
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=yourpassword
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
基本的な使い方
1. ワークフローの作成
ダッシュボードから「New Workflow」をクリックして、新しいワークフローを作成します。
2. トリガーの設定
ワークフローの起点となるトリガーを設定します。よく使うのは以下のあたり:
- Schedule Trigger: 定期実行(cron的な使い方)
- Webhook: 外部からのHTTPリクエストで起動
- 特定サービスのトリガー: GitHubのPush、SlackのメッセージなどS
3. ノードを追加・接続
「+」ボタンから必要なノードを追加して、線で繋いでいきます。データの流れが視覚的にわかるので、複雑なフローでも把握しやすい。
[Webhook] → [HTTP Request] → [OpenAI] → [Slack]
こんな感じで、データが左から右に流れていくイメージです。
4. 各ノードの設定
ノードをクリックすると設定パネルが開きます。認証情報の設定、パラメータの入力、前のノードからのデータ参照など、ここで細かく調整できます。
前のノードのデータを参照するときは、こんな記法を使います:
{{ $json.message }}
{{ $node["HTTP Request"].json.data }}
5. テスト実行
「Test Workflow」ボタンで、その場でテスト実行できます。各ノードでどんなデータが流れているか確認できるので、デバッグがしやすい。
6. 本番稼働
テストがOKなら「Activate」ボタンでワークフローを有効化。これでトリガー条件が満たされれば自動で実行されます。
実践的なユースケース
Slack通知の自動化
GitHubでPRがマージされたら、Slackの開発チャンネルに通知を飛ばす。これだけでも、いちいちGitHubを見に行く手間が省けます。
[GitHub Trigger: PR Merged] → [Slack: Send Message]
定期レポートの自動生成
毎週月曜の朝に、Google Analyticsからデータを取得して、ChatGPTで要約を作成、Slackに投稿。これ、手動でやると地味に時間かかるんですよね。
[Schedule: 毎週月曜9:00] → [Google Analytics] → [OpenAI] → [Slack]
フォーム回答の自動処理
問い合わせフォームの回答をスプレッドシートに記録しつつ、内容に応じてSlackの適切なチャンネルに振り分ける。これも定番の使い方。
[Webhook] → [Google Sheets: Append Row] → [IF] → [Slack]
AIを使ったデータ処理
CSVをアップロードしたら、AIがデータを分析してレポートを生成する。n8nのAI機能を使えば、こういった処理もノーコードで組めます。
RAGを使って、社内ドキュメントから回答を生成するチャットボットを作るのも面白いかもしれません。
注意点
正直なところ、いくつか気をつけるべき点もあります。
学習コストはゼロではない
ノードの種類が多いので、最初は何を使えばいいかわからないことがあります。公式のテンプレートライブラリ(900以上)を参考にするのがおすすめ。
エラー処理は自分で考える必要がある
ワークフローが失敗したときの挙動は、自分で設計する必要があります。Error Triggerノードを使ってリカバリー処理を組んでおくと安心。
セルフホストは運用の手間がかかる
無料で使えるのは魅力ですが、サーバーの管理、アップデート、バックアップといった運用は自分でやる必要があります。そこに時間をかけたくないなら、クラウド版を検討してもいいかもしれません。
まとめ
n8nは「自動化したいけど、コストをかけたくない」「でも柔軟性も欲しい」という、ちょっとわがままな要望に応えてくれるツールです。
- 400以上のサービスと連携可能
- ビジュアルエディタとコードの両立
- ネイティブAI対応でAIエージェントも作れる
- セルフホストで無料運用可能
- エンタープライズ機能も充実
30代になって思うのは、限られた時間でどれだけ成果を出せるかが勝負だということ。定型作業を自動化して、本当にやるべきことに集中する。n8nはその助けになってくれるはず。
まずは npx n8n で触ってみてください。5分で動きますし、公式テンプレートを眺めるだけでも「こんな自動化できるのか」という発見があります。
公式サイト: https://n8n.io GitHub: https://github.com/n8n-io/n8n ドキュメント: https://docs.n8n.io