Difyとn8n連携!SlackBotで自動化入門
学習ポイント
- n8nから外部ワークフローを呼び出す「Execute Workflow」ノードの使い方
- DifyでAPIキーを取得し、n8nからHTTPリクエストを送るための設定手順
- AIにプロンプトやコードを書かせて学習・効率化するエンジニアリング手法
n8nをハブとして、SlackとDifyを接続するワークフローを構築します。複数のワークフローを「部品化」して管理することで、保守性の高い柔軟なシステムを開発する手法を学びます。
1. n8nメインワークフローの構造
メインとなるn8nワークフローでは、Slackからのメンションをトリガーに受け取ります。次に「Edit Fields」ノードを使用して必要なデータ(メッセージ内容など)を絞り込みます。その後、「Execute Workflow」ノードを用いて、Difyと通信するための専用サブワークフローを呼び出します。これにより、ワークフローが肥大化するのを防ぎ、再利用可能なパーツとして管理できます。
2. Difyのチャットフロー設定とAPI連携
Dify側では、GeminiなどのLLMモデルを選択し、システムプロンプトを設定したチャットフローを作成します。設定が完了したら「公開」し、「APIアクセス」メニューからAPIキーを取得します。このキーとエンドポイントURLをn8n側の「HTTP Request」ノードに設定することで、n8nからDifyのAI機能を呼び出すことが可能になります。また、Difyの「Grounding with Google Search」機能を有効にすることで、最新情報を踏まえた回答が生成できます。
3. HTTPリクエストとデータ整形(Codeノード)
n8nのサブワークフロー内では、「Code」ノードを使用してDifyへ送るリクエストボディ(JSON形式)を生成します。JavaScriptを用いて、Authorizationヘッダー(Bearerトークン)やクエリパラメータを定義します。準備ができたら「HTTP Request」ノードでDifyのAPIを叩き、返ってきた回答データを再度「Edit Fields」で整形してメインワークフローへ戻します。最終的に整理された回答がSlackボットとして投稿されます。
**紹介されるツール・サービス**
n8n (ワークフロー自動化)
Dify (AIアプリ開発プラットフォーム)
Slack (コミュニケーションツール)
Gemini / ChatGPT (LLMモデル)