n8nとDifyの連携手順|HTTPリクエストでAPI接続する方法
n8nとDifyを連携させたいものの、具体的な設定手順、特にAPI接続の部分でつまずいていないでしょうか。
Difyで作成した高機能なAIアプリやRAG(検索拡張生成)を、n8nのワークフローに組み込むことで、業務自動化の幅は大きく広がります。
しかし、n8nにはDify専用のノードが標準搭載されていないため、汎用的な「HTTP Requestノード」を正しく設定する必要があります。
本記事では、n8nからDifyのAPIを呼び出し、正常にレスポンスを得るための手順を解説します。
APIキーの取得から、HTTP Requestノードの詳細設定、Webhookをトリガーとした実践的なフロー構築まで、操作画面を見ながら再現できる内容に絞って紹介します。
AIエージェント・AIシステム開発ならKAGEMUSHA!
株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。
社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。
導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

n8nとDifyを連携するメリットと全体像
n8nとDifyを組み合わせることで、単体のツールでは実現できない高度な自動化フローを構築できます。
まずは両者の役割と、連携によってどのような処理が可能になるのか、全体像を解説します。
なぜ「n8n + Dify」なのか(役割分担の最適解)
n8nとDifyは、それぞれ得意とする領域が異なります。
- n8n(つなぐ・運ぶ):
多様なアプリ(Slack, Google Sheets, Gmailなど)との接続や、条件分岐、スケジュール実行などの「フロー制御」を得意とします。データの受け渡し役として機能します。 - Dify(考える・生成する):
LLM(大規模言語モデル)を用いた文章生成、ナレッジベース(RAG)に基づく回答作成、メモリ管理などを得意とします。高度な「頭脳」として機能します。
この2つを連携させることで、「n8nが外部からの入力を受け取り、Difyに渡して判断・生成させ、その結果をn8nが次のアクションへつなぐ」という役割分担が成立します。
これにより、単なるルールベースの自動化ではなく、AIの判断を含んだ柔軟なワークフローが実現します。
n8nが「手足」となり、Difyが「頭脳」として機能する役割分担が自動化のカギです。
実現できること:RAG自動応答から業務フロー自動化まで
具体的には、以下のようなユースケースを実装可能です。
- 社内問い合わせの自動回答:
Slackで質問が投稿されたら(n8n)、社内マニュアルを学習させたDifyのRAGエージェントに問い合わせ、回答をSlackに返信させる。 - SaaSデータの要約・分析:
顧客からのメールやフォーム回答を受け取り(n8n)、Difyに渡して要約や感情分析を行い、その結果をCRMツールに登録する。 - Web情報の収集とレポート作成:
定期的にWeb情報を取得し(n8n)、Difyで重要事項を抽出してレポート化し、チャットツールへ通知する。
本記事では、これらの基礎となる「n8nからDifyを呼び出す接続手順」を重点的に解説します。
事前準備:DifyのAPI公開とキー取得手順
n8nからDifyを操作するためには、Dify側でAPIアクセスを許可し、認証情報を取得する必要があります。
Difyアプリの作成とAPIアクセスの有効化
まず、Dify上で連携対象となるアプリケーションを準備します。
- Difyにログインし、「スタジオ」から新しいアプリを作成するか、既存のアプリを選択します。
※チャットボットまたはワークフロー形式が一般的です。 - アプリの編集画面に入り、右上の「公開する」または「監視」ボタン付近にある設定を確認します。
- アプリが公開状態(動作可能な状態)になっていることを確認します。
Difyではアプリを作成した時点でAPIエンドポイントが生成されますが、外部からアクセスするためにはAPIキーが必要です。
APIキーの発行とエンドポイントの確認
次に、n8nの設定に必要な情報を取得します。
- アプリ編集画面の左側メニューにある「APIアクセス」または「APIリファレンス」をクリックします。
- API管理画面が表示されたら、右上の「APIキー」をクリックし、「新しいAPIキーを作成」を選択します。
- 生成されたSecret Key(APIキー)をコピーし、安全な場所に控えます。
- 同画面に表示されているAPIサーバーのURL(Base URL)を確認します。
※クラウド版の場合、通常はhttps://api.dify.ai/v1です。 - 使用するエンドポイントを確認します。
・チャットボットの場合:/chat-messages
・テキスト生成型の場合:/completion-messages
・ワークフローの場合:/workflows/run
これでDify側の準備は完了です。
APIキーは一度しか表示されない場合があるため、必ずコピーして安全に保管してください。
【基本手順】n8nからDify APIを呼び出す設定方法
ここからn8nの操作に移ります。
n8nにはDify専用ノードが存在しないため、汎用的な「HTTP Request」ノードを使用してAPIリクエストを構築します。
HTTP Requestノードの配置と認証設定
- n8nのワークフローエディタを開き、
+ボタンからノード追加画面を開きます。 - 「HTTP Request」を検索し、キャンバスに追加します。
- ノードの設定パネルを開き、以下の通り入力します。
・Method:POSTを選択します。
・URL: 先ほど確認したDifyのエンドポイントを入力します。
(例:https://api.dify.ai/v1/chat-messages) - Authentication は
Generic Credential Typeを選択し、Header Authを選びます。
新規Credential作成画面では、以下のように設定してください。
- Name:
Authorization - Value:
Bearer {取得したAPIキー}
「Bearer」と「APIキー」の間には、必ず半角スペースを入れてください。
リクエストボディの設定(inputs・query・response_mode)
Difyにデータを送るためのBody設定を行います。
- Send Body をオンにします。
- Body Content Type で
JSONを選択します。 - Specify Body で
Using JSONを選択し、以下のJSON構造を入力します。
{
"inputs": {},
"query": "ここにテスト用の質問文を入力",
"response_mode": "blocking",
"conversation_id": "",
"user": "n8n-user"
}
各パラメータの解説
- inputs:Dify側で定義した変数がある場合、ここにキーと値を記述します(例:
{"name": "Taro"})。 - query:Dify(LLM)に投げかける質問や指示内容です。
- response_mode:必ず blocking を指定してください。
streamingだとデータが分割されて届き、n8nでの処理が複雑になります。 - user:ユーザー識別子です。任意の文字列で構いませんが、ログ追跡のために一意のIDを指定することを推奨します。
テスト実行とレスポンスデータの確認
設定が完了したら、接続テストを行います。
- HTTP Requestノードの「Execute Node」ボタンをクリックします。
- 成功すると、緑色のチェックマークが付き、OutputパネルにJSONデータが表示されます。
- レスポンス内容を確認します。
・answerフィールド: Dify(LLM)からの回答テキストが含まれています。
・status:succeededになっていることを確認します。
これで、n8nからDifyを呼び出す基本的な接続が確立されました。
【実践】WebhookトリガーでRAGチャットボットを構築する
基本接続ができたら、実際の業務で使えるワークフローを構築します。
ここでは「外部からの入力をWebhookで受け取り、DifyのRAGで回答を生成する」フローを作成します。
全体フローの設計:Webhook → Dify(RAG) → レスポンス
ワークフローの構成は以下の3ステップです。
- Webhookノード:
外部(Slack、フォーム、自社アプリなど)からのリクエストを受け取ります。MethodはPOSTに設定します。 - HTTP Requestノード(Dify連携):
Webhookで受け取ったテキストをDifyに送信し、回答を得ます。 - Respond to Webhookノード(またはSlack送信ノード):
Difyからの回答を、リクエスト元やチャットツールに返します。
Difyへの動的データ受け渡し(変数の利用)
Webhookで受け取ったデータを、HTTP Requestノードの query に動的に埋め込みます。
- HTTP RequestノードのBody設定(JSONエディタ)を開きます。
"query": "..."の部分を編集します。- 値の部分にカーソルを置き、左側の入力パネルからWebhookノードの出力データ(例:
body.message)をドラッグ&ドロップします。
n8nのExpression(式)として以下のように記述されます。
"query": "{{ $json.body.message }}"
これにより、Webhookに送られてきた内容がそのままDifyへの質問として渡されます。
Difyからの回答を整形して後続ノードに渡す
Difyからのレスポンスにはメタデータが多く含まれるため、必要な回答テキストのみを抽出します。
- HTTP Requestノードの後続に、次のアクション(例: Slackノード)を接続します。
- Slackノードの「Text」フィールド設定で、HTTP Requestノードの出力データから
answerフィールドを選択します。
(Expression例:{{ $json.answer }})
これで、Difyが生成した回答文だけがSlackに投稿されるようになります。
Webhookの入力を変数としてDifyに渡すことで、動的なチャットボットが作れます。
連携時によくあるエラーとトラブルシューティング
設定中に発生しやすいエラーとその対処法を解説します。
タイムアウトエラーへの対処(30秒問題)
DifyのRAGやLLMの処理(特にGPT-4など)は時間がかかることがあり、n8nのHTTP Requestノードがデフォルトのタイムアウト時間を超えてエラーになる場合があります。
対処法:
HTTP Requestノードの下部にある「Options」を開き、「Timeout」設定を追加します。デフォルト(通常30秒程度)よりも長い時間(例: 60000ミリ秒 = 60秒)を設定してください。
401 Unauthorized / 404 Not Found エラーの原因
認証やURLに関するエラーです。
- 401 Unauthorized:
APIキーが間違っています。HeaderのValueがBearer sk-...の形式になっているか、スペースが抜けていないか再確認してください。 - 404 Not Found:
エンドポイントURLが間違っています。チャットボットアプリなのに/completion-messagesを使っている、あるいはその逆の可能性があります。
JSON形式エラーとデータ型の不一致
400 Bad Request が返ってくる場合の多くは、送信するJSONデータの不備です。
- JSON構文エラー:
カンマの有無や括弧の閉じ忘れを確認してください。 - inputsの不一致:
Dify側で変数を「必須」に設定している場合、n8n側のinputsフィールドでその変数を送らないとエラーになります。
運用上の注意点とコスト管理
自動化フローを本格運用する際に気をつけるべきポイントです。
APIレート制限と大量実行時のリスク
Dify(特にクラウド版)にはAPIのレート制限(一定時間内の実行回数制限)が存在します。
n8nでループ処理を使って大量のデータを連続処理する場合、短時間にリクエストが集中し、制限に引っかかる可能性があります。必要に応じて、n8nの「Wait」ノードを挟み、リクエスト間隔を調整してください。
LLMトークン消費の監視
n8nで自動化すると、人間が操作するよりも高頻度でLLMが実行される可能性があります。
予期せぬ大量実行(無限ループなど)が発生すると、OpenAI等のAPI利用料が高額になるリスクがあります。
Dify側のログ機能で定期的にトークン消費量を確認し、n8n側でも実行回数の上限を設けるなどの対策を検討してください。
無限ループによる高額請求を防ぐため、実行回数の上限設定やログ監視を必ず行いましょう。
まとめ
n8nとDifyを連携させることで、高度なAI処理を含む業務フローを自動化できます。
- 接続の基本:n8nの「HTTP Requestノード」を使用し、POSTメソッドでDifyのAPIを叩く。
- 設定の肝:Headerに
Authorization: Bearer {API Key}を設定し、Bodyのresponse_modeはblockingにする。 - 実践フロー:Webhookで入力を受け、Difyで処理し、結果をチャットツール等に返す流れを作る。
まずはシンプルな「質問を投げて回答を得る」フローから作成し、徐々に変数の受け渡しやエラーハンドリングを追加して、業務に合わせた自動化を実現してください。
AIエージェント・AIシステム開発ならKAGEMUSHA!
株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。
社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。
導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。


