はじめに
ノードはすべてのn8nワークフローの構成要素です。各ノードは単一のアクションを表します。APIからデータを取得する、メールを送信する、値を変換する、スケジュールに基づいてフローをトリガーするといったアクションです。ノード同士を接続することで、手作業に代わる自動化されたパイプラインが得られます。
このレッスンでは、ノードライブラリを案内し、実際の統合を設定する方法を説明し、APIキーやパスワードを安全に保つためにn8nが認証情報をどのように処理するかを説明します。
ノードライブラリ
n8nには400以上の組み込みノードが付属しており、Slack、Google Sheets、GitHub、PostgreSQL、HTTP APIなどの一般的なサービスに対応しています。キャンバス内の+ボタンをクリックしてアクセスすると、検索可能なパネルが開きます。
ノードは大きく2つのカテゴリに分類されます。トリガーノードはワークフローを開始します。イベント(Webhook呼び出し、cronスケジュール、データベースの新しい行など)を待ち受けます。アクションノードはワークフロー内で作業を行います。データの読み取り、書き込み、変換、送信を行います。
よく使用するノードをいくつか紹介します:
HTTP Requestノードは、専用のノードがないREST APIを呼び出します。GET、POST、PUT、DELETEを処理し、ヘッダー、クエリパラメータ、リクエストボディを設定できます。
CodeノードはJavaScriptまたはPythonをインラインで実行します。組み込みの変換機能では不十分な場合に便利です。
Setノードは、ワークフローを通過するデータオブジェクトを再構築します。フィールドの追加、キーの名前変更、下流で不要なノイズの削除を行います。
実際の統合を設定する
実用的な例を設定してみましょう。フォームが送信されるたびに、送信者の名前とメールアドレスを含むメッセージをSlackチャンネルに投稿します。
まず、Webhookトリガーノードを追加します。HTTPメソッドをPOSTに設定し、生成されたURLをコピーします。これがフォームが呼び出すエンドポイントです。n8nがリッスンを開始するように、ワークフローをアクティブに切り替えます。
次に、Webhookの後にSlackノードを追加します。アクション「Send a Message」を選択します。ここでn8nはSlack認証情報の選択または作成を求めます。それについては次のセクションで説明します。
認証情報を設定したら、次のようにノードを設定します:
二重中括弧の構文はn8nの式言語です。実行時に受信したJSONボディからデータを読み取ります。Webhookがnameフィールドとemailフィールドを含むペイロードを受信した場合、それらの値が自動的に代入されます。
テスト用のPOSTリクエストを送信して、フロー全体を確認します:
すべてが正しく接続されていれば、Slackチャンネルは数秒以内にメッセージを受信します。
認証情報の管理
n8nは認証情報をワークフローとは別に保存します。この設計により、認証情報は一度作成すれば多くのワークフローで再利用でき、生のAPIキーをノード設定内に埋め込む必要はありません。
認証情報を追加するには、「Settings > Credentials > Add Credential」に移動するか、認証が必要なノードを設定する際にn8nのプロンプトに従います。サービスを選択し、必要なフィールド(APIキー、OAuthトークン、ユーザー名/パスワード)を入力して保存します。n8nはインスタンス設定で設定された暗号化キーを使用して、保存された値を暗号化します。
GoogleやSlackなどのOAuth2サービスの場合、n8nが認証フローを代行します。「Connect」をクリックし、ブラウザのポップアップで認証すると、n8nが結果のアクセストークンとリフレッシュトークンを自動的に保存します。
重要なプラクティスのひとつとして、環境ごとに別の認証情報を使用することが挙げられます。ステージングワークフローでは、本番のものではなく、テスト用のSlackワークスペースまたはサンドボックスAPIキーを使用すべきです。認証情報を複製し、秘密の値のみを変更して、名前を明確にラベル付け(「Slack - Production」と「Slack - Staging」など)することができます。
マルチユーザー環境では、認証情報は所有者によってスコープされます。あるユーザーアカウントで作成された認証情報は、明示的に共有されない限り、他のユーザーには表示されません。これにより、チーム間の偶発的な漏洩を防ぎます。
よくある間違い
式構文のエラーが最も頻度の高い問題です。{{ $json.email }}のようなフィールド参照がundefinedを返す場合、前のノードがそのキーを実際に出力しているかどうかを確認してください。キャンバス右側の「Input」パネルを使用して、各ノードに実際に流入しているデータを確認してください。
もう一つのよくある間違いは、保存後にワークフローをアクティブ化することを忘れることです。ワークフローが非アクティブの間、Webhookトリガーはリッスンしません。キャンバス上部のトグルがオンになっている必要があります。
外部APIを呼び出すHTTP Requestノードでは、認証の不一致に注意してください。一部のAPIではヘッダー(Authorization: Bearer ...)でキーを期待し、他のAPIではクエリパラメータでキーを期待します。APIドキュメントを読み、形式に正確に合わせてから、認証システムを使用して値を注入してください。URLに直接ハードコーディングするのではなく。
まとめ
ノードライブラリは、定型的な統合コードを書くことなくサービスを接続するためのすぐに使えるツールキットを提供します。トリガーノードがワークフローを開始し、アクションノードが処理を行い、式がノード間のデータを動的に配線します。認証情報は一元管理され、保存時に暗号化され、ワークフロー間で再利用可能です。環境ごとに固有のものとし、OAuthの手続きはn8nに任せてください。これらの基礎があれば、実際のアプリを接続する信頼性の高い読みやすいパイプラインを構築できます。
レッスンのチェックポイント
学んだ内容を復習し、回答へのフィードバックを受けましょう。