n8nとは何か、なぜ重要なのか
n8nは、ビジュアルなノードベースのインターフェースでAPIやサービスを接続できるオープンソースのワークフロー自動化ツールです。Zapierのようなフルマネージド型プラットフォームとは異なり、n8nはセルフホストのオプションを提供し、ノード内でカスタムJavaScriptを記述し、あらゆるHTTPエンドポイントを呼び出すことができます。これにより、制御を失うことなく自動化を必要とする開発者にとって実用的です。
核となる考え方はシンプルです:サービスAからデータを取得し、変換し、サービスBに送るスクリプトを書く代わりに、各ステップが可視化された設定可能なノードであるワークフローを構築します。結果は同じですが、ワークフローは毎回コードに触れることなく、デバッグしやすく、引き継ぎやすく、修正しやすくなります。
最初に理解すべきコアコンセプト
n8nのすべてのワークフローは、3つのプリミティブ(ノード、接続、エグゼキューション)で構成されています。
ノードは仕事の最小単位です。イベントのトリガー、APIからのデータ取得、値の変換、通知の送信などを行います。接続はノード間の矢印であり、操作の順序を定義し、データを下流に渡します。エグゼキューションは、トリガーから最終ノードまで、ワークフローの1回の完全な実行を指します。
n8n内のデータはアイテムの配列として流れます。各アイテムはJSONオブジェクトです。データベースクエリから5件のレコードを受信したノードは、デフォルトではその5件すべてを下流のノードが処理します。明示的なループは不要です。これは早期にしっかり理解しておくべき最も重要な挙動の1つであり、すべてのワークフローの設計方法に影響します。
ノード間を行き来する単一アイテムは次のような形です:
ノードが複数のアイテムを出力すると、n8nはそれらを配列でラップし、次のノードが自動的にすべてを受け取ります。
エグゼキューションモードとトリガータイプ
n8nのワークフローはトリガーノードから開始します。常に使用する3つの一般的なトリガーパターンがあります。
1つ目はwebhookトリガーです。外部サービスがn8nが提供するURLにHTTP POSTを送信すると、ワークフローが即座に起動します。これはリアルタイムの反応が必要な場合(新しい支払い、フォーム送信、GitHubのpushイベントなど)に最適な選択肢です。
2つ目はスケジュールトリガーです。定義したcron式に従ってワークフローが実行されます。ポーリングジョブ、日次レポート、リアルタイムが必須でないあらゆるタスクに使用します。
3つ目はマニュアルトリガーで、エディタ内でクリックして起動します。これはテストと開発専用です — これに依存したワークフローを本番に出荷しないでください。
本番モードで稼働しているn8nインスタンスは、アクティブなワークフローを自動的に実行します。開発時は、エディタ内で停止中から稼働中に切り替えることでワークフローを有効化します。
n8nとカスタムコードの使い分け
これは開発者が必ず抱く統合のマインドセットに関する疑問です:なぜ自分でスクリプトを書かないのか?
ロジックが真に複雑な場合 — 多段階の条件分岐、状態を持つ操作、パフォーマンスが重視されるデータ処理 — にはカスタムコードが優れています。NumPyで50万行を処理するPythonスクリプトが、まさにそのような仕事に適したツールです。
n8nが優れているのは、作業の大部分がオーケストレーションである場合です:このAPIを呼び出し、レスポンスを変形し、別の場所に送信し、失敗した場合は担当者に通知する。カスタム統合スクリプトの記述、デプロイ、監視、保守のオーバーヘッドは実際に存在します。n8nはリトライ、実行ログ、エラーワークフロー、認証情報の管理を標準で処理します。
実用的なヒューリスティック:コードで1日以上かかるがn8nなら2時間で実装できる統合であり、そのロジックがn8nで表現できないものを必要としないなら、n8nを使ってください。ビジュアル設定の限界にぶつかったときは、いつでもCodeノードにドロップインできます — それは後のレッスンで扱います。
まとめ
n8nは、ノーコードのおもちゃではなく、プログラマブルな統合レイヤーとして理解すべきです。ノード、接続、エグゼキューションが3つの構成要素です。データはノード間でJSONアイテムの配列として流れます。webhook、schedule、manualというトリガータイプが、ワークフローの実行タイミングを決定します。統合のマインドセットとは、タスクごとに適切なツールを選ぶということです:オーケストレーション作業の運用負荷を減らすためにn8nを使用し、ロジックが本当にそれを必要とする場合はカスタムコードに切り替える、ということです。