はじめに

n8n(発音:「n-eight-n」または単に「nodemation」)は、ビジュアルでノードベースのエディターを使って、さまざまなサービスやAPIを連携させるためのオープンソースのワークフロー自動化ツールです。接着コードを自分で書く代わりに、ノードをキャンバス上にドラッグして設定し、接続を描画することで、データが各ステップから次のステップへどう流れるかを定義します。

n8nはZapierやMakeのようなツールと比べて一つの大きな点で異なります:ソース公開でセルフホスティングが可能です。自分のサーバーで実行できるため、データがインフラから外部に出ることがなく、タスクごとの料金体系もありません。トレードオフは、ホスティングとメンテナンスを自分で行う必要があることですが、インフラ管理を避けたい場合はn8nのクラウド版を利用することもできます。

セルフホスティング版n8n、n8n Cloud、Zapier/Makeの比較フローチャート。データの保管場所とサーバー管理者が誰かを示している

内部的には、すべてのn8nワークフローは基本的にJSONに過ぎません。ビジュアルエディターはそのJSONの上に構築された親しみやすい層であるため、n8nは内部を覗いてみたい開発者にとって非常に扱いやすいツールです。

ビジュアルエディターの操作

n8nを開くと、操作する主な領域は次のとおりです:

- 中央のキャンバス:ノードを追加・接続してワークフローを構築する場所
- 左サイドバーのノードパレット:トリガーノード、通常のアプリ/アクションノード、ヘルパーノード(Code、IF、Set、Mergeなど)のカテゴリ別に整理されている
- 上部ツールバー:ワークフローの保存、実行、有効化、共有のオプション
- 右側のノードパネル:ノードをクリックすると開き、パラメーターと資格情報を設定する

ワークフローは常にトリガーノードから始まります — イベント発生時に実行を開始するものです(たとえば、WebhookがHTTPリクエストを受信したとき、cronのスケジュール時刻に達したとき、データベースに新しい行が追加されたときなど)。

bash
# Quick install via npm (requires Node.js 18+)
npx n8n
# Or with Docker
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n

どちらかのコマンドを実行した後、ブラウザで http://localhost:5678 を開くとエディターが表示されます。

ノードの構造

各ノードは単一のアクションを表します:データの取得、データの変換、API呼び出し、条件分岐など。ほとんどのノードには3つのタブがあります:

- Parameters:設定する入力項目(URL、クエリ文字列、フィールドマッピング)
- Settings:ノードレベルのオプション(リトライ動作、エラーハンドリング、失敗時の継続可否など)
- Documentation:ノードのドキュメントから取得した短いリファレンス。キャンバスから離れずに確認できる

ノード間のデータフローは、描いた接続線を通じて行われます。デフォルトではメイン出力が使用され、生成されるデータ形式は、基盤となるAPIを直接呼び出した場合に取得するのと同じJSONオブジェクトです。ノードの名前変更、メモの追加、削除せずに無効化が可能で、デバッグ時に非常に便利です。

json
{
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "my-webhook"
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [240, 300]
}
],
"connections": {}
}

上記のスニペットは、n8nからエクスポートされた単一のWebhookトリガーノードのJSONです。読みやすいことに注目してください — HTTPメソッド、パス、キャンバス上のノードの位置がすべて単純なJSONプロパティです。これが、ワークフローのバージョン管理やプログラムによる生成を可能にしている理由です。

実行パネルとデバッグ

ワークフローを保存したら、「Execute workflow」(または単一ノードで「Execute node」)をクリックして実行します。n8nはすべての実行をExecutionsパネルに記録します。過去の実行をクリックすると、各ノードの入力データと出力データをステップごとに確認でき、これは壊れたワークフローをデバッグする最も迅速な方法です。

トリガーから出力までの4つのノードを通るデータフローの図。各ノードが入力/出力JSONを表示している

ノードが失敗した場合、実行は「error」とマークされ、パネルにはどのノードが失敗したか、エラーメッセージの内容、そのノードが受け取ったデータが表示されます。初心者がよく陥る間違いは、データがノードに存在すると決めつけてしまうことです — 必ず実行を開いて、各ステップで実際のJSONを確認してから判断してください。

知っておくべき他の2つのパネル:Credentialsタブ(APIキーを一度保存して複数のノードで参照できる場所)と、Variablesタブ(URLや環境名などの再利用可能な値を、すべてのノードにハードコーディングせずに保存できる場所)です。

まとめ

n8nは、API、データベース、カスタムロジックを接続するデータフローを構築するためのビジュアルエディターを提供し、コードへの介入、JSONのバージョン管理、セルフホスティングの能力を損ないません。学ぶべき主な領域は、キャンバス、ノードパレット、ノードごとの設定パネル、そしてデバッグに使用するExecutionsパネルです。すべてのワークフローはトリガーノードから始まり、各ノードのデータは実行中のどの時点でも確認できるプレーンなJSONです。

レッスンのチェックポイント

1. n8nとZapierやMakeのようなツールの主なアーキテクチャ上の違いは何ですか?

2. レッスンで示されたnpxまたはDockerコマンドで起動したとき、n8nがデフォルトで使用するポートはどれですか?

3. すべてのn8nワークフローは、どのタイプのノードから始めなければなりませんか?

4. エディターでノードをクリックしたとき、ほとんどのノードが表示する3つのタブは何ですか?

5. 過去の実行の各ノードの入力および出力JSONデータを確認してワークフローをデバッグする場所は、n8nのどこですか?

6. 正誤問題:n8nワークフローは内部的には基本的にJSONに過ぎないため、エクスポート、インポート、バージョン管理が可能です。

7. n8nのどのタブで、APIキーを一度保存して各ノードに貼り付けるのではなく、複数のノードで再利用できるようにしますか?

8. レッスンによると、ワークフローをデバッグする際によくある初心者の間違いは何ですか?