「ワークフロー自動化に興味はあるけど、何から始めればいいか分からない」——そんな声を本当によく聞く。実際、筆者が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種類ある。

最初のワークフローを作る——Gmail新着→Slack通知

理論は十分だ。実際にワークフローを1つ作ってみよう。「Gmailに新しいメールが届いたら、Slackの指定チャンネルに通知する」というシンプルなフローを構築する。

ステップ1: トリガーノードの設置

  1. キャンバス中央の「+」ボタンをクリック
  2. 検索ボックスに「Gmail」と入力
  3. 「Gmail Trigger」を選択してキャンバスに配置
  4. ノードをクリックして設定パネルを開く
  5. 「Credential」セクションで「Create New Credential」を選択し、Googleアカウントで認証
  6. 「Event」を「Message Received」に設定
  7. 「Poll Times」でチェック間隔を設定(1分〜5分が目安)

ステップ2: Slackノードの追加と接続

  1. Gmail Triggerノードの右側に表示される「+」をクリック
  2. 検索ボックスに「Slack」と入力し、「Slack」ノードを選択
  3. Slackの認証情報を設定(OAuth2でワークスペースに接続)
  4. 「Resource」を「Message」、「Operation」を「Send」に設定
  5. 「Channel」で通知先のチャンネルを選択
  6. 「Text」フィールドに通知メッセージを入力

メッセージのテンプレートは、n8nの式(Expression)機能を使って動的に組み立てられる。

新着メール:
件名: {{ $json.subject }}
差出人: {{ $json.from.value[0].address }}
受信時刻: {{ $json.date }}

ステップ3: テスト実行と有効化

  1. 画面上部の「Test Workflow」ボタンをクリック
  2. Gmailにテストメールを送信
  3. n8nがメールを検知し、Slackに通知が届くことを確認
  4. 動作確認できたら、画面右上のトグルスイッチをONにして有効化

有効化すると、設定した間隔でGmailを自動チェックし、新着メールがあればSlackに通知が飛ぶようになる。

つまずきやすいポイントと対処法

OAuth認証でエラーが出る

Google OAuth認証では、GCPのOAuth同意画面を「テスト」から「本番」に変更し忘れるケースが多い。テストモードではトークンが7日で失効するため、本番運用では必ず「本番公開」に設定する。

ワークフローが動かない

エディタ上でテスト実行は成功するのに、自動実行が動かない場合は以下を確認する。

日本語が文字化けする

Docker環境でロケールが設定されていない場合、日本語が文字化けすることがある。環境変数に LANG=ja_JP.UTF-8 を追加すれば解消する。

次のステップ——n8nでできること

Gmail→Slack通知は入門としてはちょうどいいが、n8nの実力はもっと先にある。

自動化のコツは、まず小さく始めて、動くことを確認してから段階的に範囲を広げることだ。最初の1つが動けば、「次はこれも自動化できるのでは」というアイデアが自然に出てくる。