n8nとDifyの連携手順|HTTPリクエストでAPI接続する方法

この記事の結論
・n8nのHTTP Requestノードを使えば、Dify専用ノードがなくてもAPI経由で連携が可能

・APIキーの取得からWebhookを使ったRAG自動化フローまで、ノーコードで実装できる

・レスポンス待ちの「blocking」設定やタイムアウト延長など、安定稼働のコツを押さえることが重要

n8nとDifyを連携させたいものの、具体的な設定手順、特にAPI接続の部分でつまずいていないでしょうか。

Difyで作成した高機能なAIアプリやRAG(検索拡張生成)を、n8nのワークフローに組み込むことで、業務自動化の幅は大きく広がります。

しかし、n8nにはDify専用のノードが標準搭載されていないため、汎用的な「HTTP Requestノード」を正しく設定する必要があります。

本記事では、n8nからDifyのAPIを呼び出し、正常にレスポンスを得るための手順を解説します。

APIキーの取得から、HTTP Requestノードの詳細設定、Webhookをトリガーとした実践的なフロー構築まで、操作画面を見ながら再現できる内容に絞って紹介します。

AIエージェント・AIシステム開発ならKAGEMUSHA!

株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。

社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。

導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

株式会社KAGEMUSHA_AIエージェント資料CTA
目次

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上で連携対象となるアプリケーションを準備します。

  1. Difyにログインし、「スタジオ」から新しいアプリを作成するか、既存のアプリを選択します。
    チャットボットまたはワークフロー形式が一般的です。
  2. アプリの編集画面に入り、右上の「公開する」または「監視」ボタン付近にある設定を確認します。
  3. アプリが公開状態(動作可能な状態)になっていることを確認します。

Difyではアプリを作成した時点でAPIエンドポイントが生成されますが、外部からアクセスするためにはAPIキーが必要です。

APIキーの発行とエンドポイントの確認

次に、n8nの設定に必要な情報を取得します。

  1. アプリ編集画面の左側メニューにある「APIアクセス」または「APIリファレンス」をクリックします。
  2. API管理画面が表示されたら、右上の「APIキー」をクリックし、「新しいAPIキーを作成」を選択します。
  3. 生成されたSecret Key(APIキー)をコピーし、安全な場所に控えます。
  4. 同画面に表示されているAPIサーバーのURL(Base URL)を確認します。
    ※クラウド版の場合、通常は https://api.dify.ai/v1 です。
  5. 使用するエンドポイントを確認します。
    ・チャットボットの場合: /chat-messages
    ・テキスト生成型の場合: /completion-messages
    ・ワークフローの場合: /workflows/run

これでDify側の準備は完了です。

APIキーは一度しか表示されない場合があるため、必ずコピーして安全に保管してください。

【基本手順】n8nからDify APIを呼び出す設定方法

ここからn8nの操作に移ります。

n8nにはDify専用ノードが存在しないため、汎用的な「HTTP Request」ノードを使用してAPIリクエストを構築します。

HTTP Requestノードの配置と認証設定

  1. n8nのワークフローエディタを開き、+ ボタンからノード追加画面を開きます。
  2. 「HTTP Request」を検索し、キャンバスに追加します。
  3. ノードの設定パネルを開き、以下の通り入力します。
    Method: POST を選択します。
    URL: 先ほど確認したDifyのエンドポイントを入力します。
    (例: https://api.dify.ai/v1/chat-messages
  4. AuthenticationGeneric Credential Type を選択し、Header Auth を選びます。

新規Credential作成画面では、以下のように設定してください。

  • Name: Authorization
  • Value: Bearer {取得したAPIキー}

「Bearer」と「APIキー」の間には、必ず半角スペースを入れてください。

リクエストボディの設定(inputs・query・response_mode)

Difyにデータを送るためのBody設定を行います。

  1. Send Body をオンにします。
  2. Body Content TypeJSON を選択します。
  3. Specify BodyUsing 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を指定することを推奨します。

テスト実行とレスポンスデータの確認

設定が完了したら、接続テストを行います。

  1. HTTP Requestノードの「Execute Node」ボタンをクリックします。
  2. 成功すると、緑色のチェックマークが付き、OutputパネルにJSONデータが表示されます。
  3. レスポンス内容を確認します。
    answer フィールド: Dify(LLM)からの回答テキストが含まれています。
    status: succeeded になっていることを確認します。

これで、n8nからDifyを呼び出す基本的な接続が確立されました。

【実践】WebhookトリガーでRAGチャットボットを構築する

基本接続ができたら、実際の業務で使えるワークフローを構築します。

ここでは「外部からの入力をWebhookで受け取り、DifyのRAGで回答を生成する」フローを作成します。

全体フローの設計:Webhook → Dify(RAG) → レスポンス

ワークフローの構成は以下の3ステップです。

  1. Webhookノード
    外部(Slack、フォーム、自社アプリなど)からのリクエストを受け取ります。Methodは POST に設定します。
  2. HTTP Requestノード(Dify連携)
    Webhookで受け取ったテキストをDifyに送信し、回答を得ます。
  3. Respond to Webhookノード(またはSlack送信ノード)
    Difyからの回答を、リクエスト元やチャットツールに返します。

Difyへの動的データ受け渡し(変数の利用)

Webhookで受け取ったデータを、HTTP Requestノードの query に動的に埋め込みます。

  1. HTTP RequestノードのBody設定(JSONエディタ)を開きます。
  2. "query": "..." の部分を編集します。
  3. 値の部分にカーソルを置き、左側の入力パネルからWebhookノードの出力データ(例: body.message)をドラッグ&ドロップします。

n8nのExpression(式)として以下のように記述されます。

"query": "{{ $json.body.message }}"

これにより、Webhookに送られてきた内容がそのままDifyへの質問として渡されます。

Difyからの回答を整形して後続ノードに渡す

Difyからのレスポンスにはメタデータが多く含まれるため、必要な回答テキストのみを抽出します。

  1. HTTP Requestノードの後続に、次のアクション(例: Slackノード)を接続します。
  2. 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_modeblocking にする。
  • 実践フロー:Webhookで入力を受け、Difyで処理し、結果をチャットツール等に返す流れを作る。

まずはシンプルな「質問を投げて回答を得る」フローから作成し、徐々に変数の受け渡しやエラーハンドリングを追加して、業務に合わせた自動化を実現してください。

AIエージェント・AIシステム開発ならKAGEMUSHA!

株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。

社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。

導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

株式会社KAGEMUSHA_AIエージェント資料CTA

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事の監修者

株式会社BuzzConnection/株式会社KAGEMUSHA 代表取締役CEO

2021年に独立し、株式会社BuzzConnectionを設立。複数の事業を運営し、現在はAIを活用したWebアプリケーションの開発、運用や生成AIの普及を目的としたセミナー研修の開催など多角的に活躍している。
2023年4月に株式会社KAGEMUSHAを創業。AI事業に大きく事業を展開。
AIアバターやデジタルヒューマン、AIチャットボット、AI研修など幅広い視点からAIの業務効率化を支援。

目次