n8nとDifyを連携させることで、AIによる高度な言語処理と柔軟なワークフロー自動化を組み合わせることが可能になります。
しかし、いざ実装しようとすると「APIキーの設定場所が分からない」「JSONの記述形式でエラーが出る」「ローカル環境での通信がうまくいかない」といった技術的な壁に直面することが少なくありません。
本記事では、n8nとDifyを連携させるための具体的な設定手順を、操作画面のパラメータレベルで解説します。
n8nからDifyを呼び出すAPI連携と、Difyからn8nをトリガーするWebhook連携の双方について、再現可能なステップを紹介します。
AIエージェント・AIシステム開発ならKAGEMUSHA!
株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。
社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。
導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

n8nとDifyを連携させる2つのパターンと実現できること
n8nとDifyの連携には、どちらを起点にするかによって大きく2つのパターンが存在します。目的に応じて適切な構成を選択してください。
パターンA:n8nからDifyを呼び出す(AI機能の利用)
n8nのワークフロー内でDifyのAPIを実行するパターンです。
例えば、n8nで取得したメール本文やRSSフィードの情報をDifyに送信し、LLM(大規模言語モデル)による要約や翻訳、感情分析を行わせます。
処理結果は再びn8nに戻され、Slack通知やスプレッドシートへの書き込みといった後続の処理に利用されます。Difyを「高機能なAI処理ノード」としてn8nに組み込むイメージです。
パターンB:Difyからn8nを起動する(外部ツールとして利用)
Difyのチャットボットやワークフローから、n8nのWebhook URLを叩くパターンです。
Dify単体では対応していない外部ツールへの操作(例:社内データベースへの登録、特定のAPIを持たないレガシーシステムへの連携など)を、n8nを介して実行します。
Difyのエージェント機能における「ツール」としてn8nを利用する形になります。
どちらを起点にするかで設定手順が大きく異なるため、まずは実現したいフローの目的を明確にしましょう。
【準備編】連携に必要なAPIキー発行と環境設定
連携を開始する前に、認証情報の取得とネットワーク環境の確認を行います。
DifyでのAPIキー発行手順と注意点(Secret Key)
DifyのAPIを利用するには、アプリケーションごとのAPIキーが必要です。
- Difyにログインし、連携したいアプリ(チャットボットやワークフロー)を開きます。
- 左サイドメニューの「API Access(APIアクセス)」をクリックします。
- 右上の「API Key(APIキー)」ボタンをクリックし、「Create New Secret Key(新しいシークレットキーを作成)」を選択します。
- 生成されたキーをコピーして保存します。
注意点: APIキーは app- から始まる文字列です。このキーは一度しか表示されない場合があるため、必ず安全な場所に控えてください。
n8nでのCredential(認証情報)の登録方法
n8nでは、APIキーを直接ノードに書き込むのではなく、Credential機能を使って管理することが推奨されます。
- n8nの画面左側にある「Credentials」メニューを開き、「Add Credential」をクリックします。
- 「Header Auth」を検索して選択します。
- Nameに「Dify API」など識別しやすい名前を付けます。
- Name欄に
Authorizationと入力します。 - Value欄に
Bearer {取得したAPIキー}の形式で入力します。
ここで最も重要なのは、Bearer とキーの間に半角スペースが必要という点です(例: Bearer app-1234567890abcdef)。
セルフホスト版利用時のネットワーク要件
Dockerを使用してn8nとDifyをセルフホストしている場合、コンテナ間の通信設定に注意が必要です。
同じDockerネットワーク内の場合: コンテナ名(例: http://dify-api:5001)で通信できるか確認してください。
異なる環境やローカルホストの場合: n8nから見たDifyのアドレスが localhost では通じないことがあります。
Docker Desktop環境などでは http://host.docker.internal:5001 のように、ホストマシンを指す特殊なドメインを使用する必要があります。
APIキーはセキュリティ上、再表示されない仕様のことが多いため、生成直後に必ずコピーして保存してください。
【手順1】n8nからDifyのAPIを実行する方法(HTTP Request)
n8nの「HTTP Request」ノードを使用して、DifyのAPIエンドポイントにデータを送信する手順です。
HTTP Requestノードの基本設定(MethodとURL)
n8nのキャンバスに「HTTP Request」ノードを追加し、以下の通り設定します。
- Method:
POSTを選択します。 - URL: DifyのAPIエンドポイントを入力します。
チャットアプリの場合、URLは https://api.dify.ai/v1/chat-messages(クラウド版)となります。セルフホスト版の場合は、ご自身のドメインに合わせて調整してください。
Authorizationヘッダーと認証設定
先ほど作成したCredentialを適用します。
- HTTP Requestノードの「Authentication」設定で「Predefined Credential Type」を選択します。
- 「Credential Type」で「Header Auth」を選択します。
- 「Credential for Header Auth」で、準備編で作成した「Dify API」を選択します。
これにより、リクエストヘッダーに自動的に Authorization: Bearer app-xxx が付与されます。
Bodyパラメータ(JSON)の記述とデータ受け渡し
Difyに送信するデータをJSON形式で設定します。「Send Body」をオンにし、「Body Content Type」を JSON に設定します。
「Specify Body」で Using JSON を選択し、以下の構造を入力します。
{
"inputs": {},
"query": "ここにn8nの変数をマッピング",
"response_mode": "blocking",
"conversation_id": "",
"user": "n8n-user"
}
inputsにはDify側で定義した変数がある場合に記述します。queryはDifyに投げかける質問文で、n8nの前のノードから取得したデータを動的に設定します。
特に注意が必要なのは、userパラメータは必須項目である点です。任意の文字列(例: abc-123)を指定しないとエラーになります。
JSON記述時はカンマの抜けや括弧の対応など、構文エラーに特に注意が必要です。
【手順2】Difyからn8nのWebhookをトリガーする方法
Difyのワークフローからn8nを呼び出す手順です。
n8n「Webhookノード」の設定とURL取得
n8nで「Webhook」ノードを追加し、HTTP Methodを POST に設定します。任意のパス(例: dify-trigger)を設定してURLを確認します。
Test URLはワークフロー作成・デバッグ用です。本番運用時は、ワークフローを「Active」にした後にProduction URLを使用する必要があります。
Dify「HTTP Request」ブロックの設定手順
Difyのワークフロー編集画面(Studio)で「HTTP Request」ブロックを追加します。
- API URL: n8nで取得したWebhook URLを貼り付けます。
- Method:
POSTを選択します。 - Body:
JSONを選択し、n8nに渡したいデータを記述します。
処理に時間がかかる場合は、Timeoutをデフォルトより長め(例: 60秒以上)に設定することをお勧めします。
変数の受け渡しとレスポンス設定
n8nでの処理結果をDifyに戻す場合、n8nのフローの最後に「Respond to Webhook」ノードを追加します。
Respond Withを JSON に設定し、Difyに返したいデータを記述します。Dify側では、このレスポンスを後続のブロック(LLMや回答生成)で変数として利用できます。
テスト段階ではTest URLを使用し、本番稼働時には必ずProduction URLに切り替えてください。
連携でよくあるエラー(401/429)と解決策
設定中に発生しやすいエラーとその対処法を解説します。
「401 Unauthorized」認証エラーの原因と対処
認証に失敗している場合に発生します。APIキーのコピー時に余分なスペースが入っていないか、キーの一部が欠けていないか確認してください。
また、ヘッダー形式が Bearer (スペースあり)+ APIキー の形式になっているかどうかも重要なチェックポイントです。
「400 Bad Request」データ形式エラーの回避
送信したJSONデータの構造に問題があるケースです。
Dify APIでは userパラメータが必須です。これが含まれているか、JSON構文にカンマの有無や括弧の対応ミスがないか、n8nのJSONエディタで確認してください。
タイムアウトやレート制限(429)への対策
短時間に大量のリクエストを送ると「429 Too Many Requests」が発生します。n8nの「Wait」ノードを使用して、ループ処理の間に数秒の待機時間を設けてください。
また、Difyやn8nの処理が長引くと接続が切れることがあります。処理を分割するか、有料プランやセルフホスト版への移行を検討してください。
エラー発生時は、まずAPIキーの入力ミスとJSONデータの構文チェックから始めましょう。
【活用例】n8n×Difyで実現する自動化シナリオ
Google検索結果をDifyで要約してSlack通知
n8nで定期的にGoogle検索を行い、結果のタイトルとスニペットを抽出します。
抽出したテキストをDifyに送信し、「以下のニュースを3行で要約して」と指示します。Difyが生成した要約文をn8nが受け取り、Slackの特定チャンネルに自動投稿します。
受信メールをDifyで解析してタスク管理ツールへ登録
n8nのGmailトリガーで新規メールを受信し、メール本文をDifyに送信します。
Difyに「このメールからタスク内容、期限、担当者を抽出してJSONで返して」と指示し、解析結果を構造化データとして返却させます。
n8nはそのJSONデータを元に、NotionやTrelloに新しいタスクカードを自動作成します。
まとめ
n8nとDifyを連携させることで、単なるデータ転送だけでなく、AIによる判断や加工を含んだ高度な自動化が可能になります。
- n8nからDify: HTTP Requestノードを使い、
POSTメソッドとBearer認証でAPIを叩く。 - Difyからn8n: Webhookノードを使い、DifyのHTTP Requestブロックからデータを送る。
- 共通のポイント: JSONのデータ構造(特に必須項目)と認証ヘッダーの記述を正確に行う。
まずはシンプルなテキストの送受信から試し、正常に連携できることを確認してから、複雑なワークフローの構築に進んでください。
AIエージェント・AIシステム開発ならKAGEMUSHA!
株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。
社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。
導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

