PR表記: 当記事にはアフィリエイトリンクが含まれます。商品の購入は自己判断でお願いします。

n8nは、オープンソースのワークフロー自動化ツールです。ZapierやMake(旧Integromat)に近い機能を、セルフホスト(自分のサーバーで運用)できるのが特徴です。この記事では、ローカル環境へのセットアップから基本的なワークフロー構築までを解説します。

n8nとは

n8nは「nodemation」の略で、ノードベースのビジュアルワークフローを構築できるツールです。

主な特徴は以下の通り。

  • オープンソース: ソースコードが公開されており、セルフホスト可能
  • 400以上の連携先: Slack、Gmail、Google Sheets、GitHub、Notion、Discord など
  • ビジュアルエディタ: ドラッグ&ドロップでワークフローを構築
  • コード実行: JavaScriptやPythonのコードノードも使える
  • セルフホスト: 自分のサーバーで動かせるため、データが外部に出ない

他のツールとの比較

項目n8nZapierMake
料金セルフホスト無料 / クラウド版有料有料(無料枠あり)有料(無料枠あり)
セルフホスト可能不可不可
ノード数400+7000+1800+
コード実行JS / Python限定的限定的
オープンソースはいいいえいいえ

n8nの強みは、セルフホストによるデータプライバシーの確保と、コードノードによる柔軟なカスタマイズです。

ローカル環境へのセットアップ

方法1: Dockerで起動(推奨)

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

起動後、http://localhost:5678 にアクセスするとn8nのエディタが開きます。

方法2: npmで直接インストール

npm install -g n8n
n8n start

Node.js 18以上が必要です。

初期設定

初回アクセス時にオーナーアカウントの作成を求められます。メールアドレスとパスワードを設定してください。この情報はローカルに保存されます。

基本的なワークフローの考え方

n8nのワークフローは「ノード」を繋いで作ります。

  1. トリガーノード: ワークフローの開始条件(時刻、Webhook、手動など)
  2. アクションノード: 実際の処理(API呼び出し、データ変換など)
  3. 接続: ノード間をドラッグで繋いでデータの流れを定義

実践: RSS → Slack通知ワークフロー

RSSフィードの新着記事をSlackに通知するワークフローを作ってみます。

ステップ1: トリガーを設定

  1. エディタ画面で「+」ボタンをクリック
  2. 「Schedule Trigger」を選択
  3. 実行間隔を設定(例: 1時間ごと)

ステップ2: RSSフィードの取得

  1. 新しいノードを追加
  2. 「RSS Read」を選択
  3. RSSフィードのURLを入力(例: https://example.com/feed.xml

ステップ3: Slack通知

  1. 新しいノードを追加
  2. 「Slack」を選択
  3. Slackの認証情報を設定(OAuth2またはWebhook URL)
  4. チャンネルとメッセージ形式を設定

メッセージテンプレート例:

📰 新着記事
タイトル: {{ $json.title }}
URL: {{ $json.link }}

ステップ4: テストと有効化

  1. 各ノードの「Test」ボタンで個別にテスト
  2. 全体をテスト実行して動作確認
  3. 右上のトグルで「Active」にして有効化

コードノードの活用

n8nにはJavaScriptやPythonのコードを実行するノードがあります。既存ノードでは対応できない処理に使えます。

// コードノードの例: 日本語の日付フォーマット
const items = $input.all();

for (const item of items) {
  const date = new Date(item.json.pubDate);
  item.json.formattedDate = date.toLocaleDateString('ja-JP', {
    year: 'numeric',
    month: 'long',
    day: 'numeric'
  });
}

return items;

Webhook でリアルタイム連携

n8nはWebhookトリガーも用意しています。外部サービスからHTTPリクエストを受け取ってワークフローを起動できます。

# Webhookのテスト(n8nが起動中)
curl -X POST http://localhost:5678/webhook/your-webhook-id \
  -H "Content-Type: application/json" \
  -d '{"message": "テストメッセージ"}'

GitHub Webhookと連携すれば、プッシュ時にSlack通知を送るワークフローなども構築できます。

セルフホストの運用Tips

永続化

Dockerのボリュームマウントで、コンテナを再作成してもデータが保持されます。-v n8n_data:/home/node/.n8n の部分です。

バックアップ

ワークフローはJSON形式でエクスポートできます。定期的にバックアップしておきましょう。

# ワークフローのエクスポート(CLI)
n8n export:workflow --all --output=backup.json

セキュリティ

ローカルで使う分には問題ありませんが、外部に公開する場合はリバースプロキシ(nginx等)とHTTPS化が必要です。

まとめ

n8nは、セルフホスト可能なオープンソースの自動化ツールとして、データの管理を自分の手元に置きたい方に適しています。ビジュアルエディタで直感的にワークフローを構築でき、コードノードで柔軟な拡張も可能です。

Pythonスクリプトでの自動化やAIを活用したワークフローについては、AI副業ラボでも実践事例を公開しています。

よくある質問(FAQ)

Q1: n8nは完全に無料ですか?

セルフホスト版(Community Edition)は無料で利用できます。n8n Cloud(クラウドホスティング版)は有料プランです。セルフホスト版でも機能面の制限はほとんどありません。詳しくはn8n公式サイトで確認してください。

Q2: プログラミング知識がなくても使えますか?

基本的なワークフローはドラッグ&ドロップで構築できるため、プログラミング不要です。ただし、複雑なデータ加工やカスタム処理にはJavaScriptの基礎知識があると便利です。

Q3: n8nとZapierのどちらを選ぶべきですか?

手軽さ重視ならZapier、データの自己管理やコスト重視ならn8nが向いています。Zapierは連携先が豊富で設定も簡単ですが、処理数が増えるとコストが高くなります。n8nはセルフホストなら処理数無制限です。


参考書籍: 自動化の考え方を体系的に学びたい方に。

Python実践入門(Amazon)