「ワークフロー自動化に興味はあるけど、何から始めればいいか分からない」——そんな声を本当によく聞く。実際、筆者がAI×自動化のコンサルティングをしていると、ZapierやMakeの名前は知っていても「セルフホストできるn8nの存在を知らなかった」という方が大半だ。
この記事では、n8nのインストールから最初のワークフロー(Gmail→Slack通知)を作成するところまで、ステップごとに解説する。所要時間は約30分。ターミナル操作に慣れていなくても、コマンドをコピー&ペーストすれば動く。
n8nとは何か——3行で理解する
n8nはオープンソースのワークフロー自動化ツールだ。ブラウザ上でノード(処理ブロック)をドラッグ&ドロップでつなぎ、業務フローを視覚的に構築できる。
ZapierやMakeとの最大の違いはセルフホスト可能という点にある。自分のサーバーにインストールすれば、データが外部SaaSを経由しない。金融・医療・士業など、顧客データの取り扱いに制約がある業種で特に採用が進んでいる。
2026年3月時点でn8nのGitHubスターは6万を超え、コミュニティノード(ユーザー作成の連携プラグイン)は500以上。ZapierやMakeに比べると知名度では劣るが、技術系スタートアップやフリーランスエンジニアの間では定番ツールとして定着している。
インストール方法——3つの選択肢
方法1: npxで即座に試す(推奨・最速)
Node.js(v18以上)がインストールされていれば、ターミナルで1行打つだけで起動できる。
npx n8n
初回は依存パッケージのダウンロードに2〜3分かかるが、完了すると http://localhost:5678 でn8nのエディタが開く。データベースにはSQLiteが使われるため、別途DBの設定は不要だ。
この方法は試用には最適だが、プロセスを閉じるとワークフローの自動実行が止まる。本番運用にはDocker方式を使う。
方法2: Dockerで本番運用する
Docker ComposeでPostgreSQLと組み合わせて運用するのが、本番環境の定番構成だ。
version: '3.8'
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=your_password
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:16
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=your_password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
docker compose up -d で起動。PostgreSQLにデータが永続化されるため、コンテナを再起動してもワークフローやCredentialは消えない。
方法3: n8n Cloudを使う
セルフホストが面倒な場合は、n8n公式のクラウドサービス(n8n.cloud)もある。月額20ユーロ(Starterプラン)から利用でき、サーバー管理が不要だ。ただし、データがn8nのサーバーに保存される点は認識しておく必要がある。
初期設定——アカウント作成と画面の見方
n8nを起動してブラウザで http://localhost:5678 にアクセスすると、最初にオーナーアカウントの作成画面が表示される。メールアドレス、名前、パスワードを入力して登録する。
エディタ画面の構成
ログイン後に表示されるのがワークフローエディタだ。画面は大きく3つのエリアに分かれている。
- キャンバス(中央): ノードを配置してつなげる作業エリア。ここがメインの操作スペースになる
- ノードパネル(右側・+ボタンで表示): 利用可能なノードの一覧。検索ボックスでフィルタリングできる
- 実行履歴(上部メニュー): 過去のワークフロー実行結果を確認できる。デバッグに使う
ノードの基本概念
n8nの処理単位は「ノード」と呼ばれる。ノードには大きく3種類ある。
- トリガーノード: ワークフローの起動条件を定義する。Webhookの受信、スケジュール実行、メールの受信など
- アクションノード: 実際の処理を行う。メール送信、API呼び出し、データベース操作など
- ロジックノード: 条件分岐(IF)、ループ、データ変換などフロー制御を行う
最初のワークフローを作る——Gmail新着→Slack通知
理論は十分だ。実際にワークフローを1つ作ってみよう。「Gmailに新しいメールが届いたら、Slackの指定チャンネルに通知する」というシンプルなフローを構築する。
ステップ1: トリガーノードの設置
- キャンバス中央の「+」ボタンをクリック
- 検索ボックスに「Gmail」と入力
- 「Gmail Trigger」を選択してキャンバスに配置
- ノードをクリックして設定パネルを開く
- 「Credential」セクションで「Create New Credential」を選択し、Googleアカウントで認証
- 「Event」を「Message Received」に設定
- 「Poll Times」でチェック間隔を設定(1分〜5分が目安)
ステップ2: Slackノードの追加と接続
- Gmail Triggerノードの右側に表示される「+」をクリック
- 検索ボックスに「Slack」と入力し、「Slack」ノードを選択
- Slackの認証情報を設定(OAuth2でワークスペースに接続)
- 「Resource」を「Message」、「Operation」を「Send」に設定
- 「Channel」で通知先のチャンネルを選択
- 「Text」フィールドに通知メッセージを入力
メッセージのテンプレートは、n8nの式(Expression)機能を使って動的に組み立てられる。
新着メール:
件名: {{ $json.subject }}
差出人: {{ $json.from.value[0].address }}
受信時刻: {{ $json.date }}
ステップ3: テスト実行と有効化
- 画面上部の「Test Workflow」ボタンをクリック
- Gmailにテストメールを送信
- n8nがメールを検知し、Slackに通知が届くことを確認
- 動作確認できたら、画面右上のトグルスイッチをONにして有効化
有効化すると、設定した間隔でGmailを自動チェックし、新着メールがあればSlackに通知が飛ぶようになる。
つまずきやすいポイントと対処法
OAuth認証でエラーが出る
Google OAuth認証では、GCPのOAuth同意画面を「テスト」から「本番」に変更し忘れるケースが多い。テストモードではトークンが7日で失効するため、本番運用では必ず「本番公開」に設定する。
ワークフローが動かない
エディタ上でテスト実行は成功するのに、自動実行が動かない場合は以下を確認する。
- ワークフローのトグルスイッチがONになっているか
- n8nのプロセスが起動しているか(Docker環境なら
docker compose psで確認) - Webhook URLが外部からアクセス可能か(ファイアウォールの設定)
日本語が文字化けする
Docker環境でロケールが設定されていない場合、日本語が文字化けすることがある。環境変数に LANG=ja_JP.UTF-8 を追加すれば解消する。
次のステップ——n8nでできること
Gmail→Slack通知は入門としてはちょうどいいが、n8nの実力はもっと先にある。
- AI連携: Claude APIやOpenAI APIと組み合わせて、メールの自動要約・分類を行う(→ n8n×Claude API自動化ガイド)
- データベース連携: PostgreSQLやMySQLと接続し、データの定期バックアップや同期を自動化する
- Webhook活用: Stripeの決済通知やGitHubのPRイベントを受けて、後続処理を自動実行する
- MCP連携: AIエージェントにn8nのワークフローを呼び出させる(→ MCP(Model Context Protocol)2026年最新ガイド)
自動化のコツは、まず小さく始めて、動くことを確認してから段階的に範囲を広げることだ。最初の1つが動けば、「次はこれも自動化できるのでは」というアイデアが自然に出てくる。