DifyチャットフローとSlackを連携!最新プラグイン活用ガイド(前編)

はじめに
対象とする読者
本記事は、ノーコードAIアプリ開発ツールで人気のある Dify を構築・運用している方で、特に以下のような方を対象としています。
- 以前のDifyのWebhookトリガーの記事を読み、チャットフローへの連携方法も知りたい方
- Slackをインターフェースにして、Difyの対話型AIを業務に組み込みたいと考えている方
- DifyのWebhookトリガーがワークフローでしか使えず、解決策を探している方
また本記事の前提知識として、何かしらのワークフローツールとSlackアプリの基礎知識があることを想定しています。
記事のゴール
本記事は前後編で構成されますが、全体を通じて以下の点を達成することを目指します。
- チャットフローをトリガーできるDifyプラグインの種類と違いを理解する。
- プラグインごとの特性(リアクション反応、会話履歴の保持など)を把握し、用途に合わせた選定ができるようになる。
- 使い勝手の良い2つのプラグインについて、Slackアプリ作成からDify連携までの具体的な設定手順をマスターする。
Difyのチャットフローを他サービスから実行する
前回はDifyに登場したWebhookトリガーの使い方について記事を書きましたが、Webhookトリガーはワークフローでのみ利用可能で、チャットフローでは利用できないという注意点がありました。
今回の記事では、チャットフローのトリガーとして使えそうなDifyプラグインが無いかを探っていきたいと思います。
今回利用するトリガー元のサービス
前回も書いたように、チャットフローは対話型シナリオを前提とした機能ですので、トリガー元にするサービスはコミュニケーションツールが適していると思います。
以前も書いた通り、当社ではコミュニケーションツールとしてSlackを採用しているため、今回もSlackとDifyを連携するシナリオで探っていきたいと思います。
Difyのマーケットでプラグインを探してみる
Difyでは公式やユーザーによって様々なプラグインが開発・提供されており、それらをマーケットからインストールすることができます。
プラグインのタイプとしては、以下のようなものがあります。
・ツール: 各種フローやエージェントから、特定の外部サービスに対してタスクを実行する。
・トリガー: 外部サービスで発生したイベントをDifyの各種フローに連携する。
・拡張: Dify自体の挙動をカスタマイズしたり、外部システムとの接点(エンドポイント)を提供する。
マーケットでSlack連携として使えそうなプラグインが無いか、Slack というキーワードで検索してみたところ、6件のプラグインが見つかりました。

これらのプラグインがチャットフローのトリガーとして利用できないか、1つずつ見ていきたいと思います。
1. Slack(langgenius/slack)

説明:
Slack ツールを使用して、Dify ワークフローからの出力変数を含むボット経由でチャネルにメッセージを送信できます。
Difyの開発元であるLangGeniusが提供しているもので、タイプは「ツール」になります。
Difyの各種フローから、あらかじめ設定しておいたSlackアプリ(ボット)のIncoming Webhooksを通じて、Slackへ投稿するプラグインになります。
トリガーではありませんが、参考までに挙げておきました。
2. Slack Post(solaoi/slack-post)

説明:
チャンネルやスレッドへのメッセージ投稿を行う、mrkdwn形式の表示に対応したSlackツールプラグイン。
ユーザーさんによって提供されているもので、タイプは「ツール」になります。
前者のSlack(langgenius/slack)と同様に、あらかじめ設定しておいたSlackアプリ(ボット)のBot Tokenを利用して、 Difyの各種フローからSlackへ投稿するプラグインになります。
こちらもトリガーではありませんが、参考までに挙げておきました。
3. Slack(langgenius/slack_trigger)

説明:
Slack ワークスペースのイベントを受信するためのトリガープラグインのサンプルです。
Slack Triggerプラグインは、DifyワークフローをSlackイベントと接続します。Slackワークスペースで何かが起こったとき - メッセージの受信、サブタスクの作成、チャンネルへの参加など - このプラグインは自動的にDifyワークフローを開始してこれらのイベントに応答します。
表示名が1つ目のものと同じく「Slack」となっていて紛らわしいですが、こちらも開発元であるLangGeniusによって提供されているもので、タイプは「トリガー」になります。
説明に「サンプル」とありますが、実際にトリガーとして利用できます。ただし、説明通りワークフローのトリガーにしかできず、チャットフローでは利用できないため、今回は候補から外したいと思います。
4. Slack Bot(langgenius/slack-bot)

説明:
この Slack Bot は、Slack からのメッセージを Dify の Chatflow/Chatbot/Agent への入力として受け取り、Slack にメッセージを送信することをサポートします
これもまた開発元であるLangGeniusによって提供されているもので、タイプは「拡張」になります。
説明に「SlackからのメッセージをDifyのChatflow/Chatbot/Agentへの入力として受け取り」とある通り、SlackBotをメンションすることでチャットフローのトリガーとして利用できます。ただし、リアクションへの反応やスレッド返信ができず、次のslack-bot2(takada-at/slack-bot2)の方が上位機能版になるため、今回は詳細な説明は割愛したいと思います。
※この記事を執筆している2026/1/21時点で、Slack Bot(langgenius/slack-bot) が公式マーケットからのインストールに失敗するようになっていました。どうも依存関係の矛盾があるようで、いずれ修正されるとは思いますが、前述のような理由もあるため、現時点で無理に使うことは無いと思います。
5. slack-bot2(takada-at/slack-bot2)

説明:
このSlack Botは、SlackからのメッセージをDifyのChatflow/Chatbot/Agentへの入力として受け取ります。app_mentionに加え、reactionで動作させることも可能であり、Slackにメッセージを送信する際、スレッドへの投稿もサポートします。
ユーザーさんによって提供されているもので、タイプは「拡張」になります。
前者のSlack Bot(langgenius/slack-bot)と同じくチャットフローのトリガーとして利用できます。Slack Bot(langgenius/slack-bot)はメンションにしか反応しませんが、こちらはさらにリアクションにも反応するようになっていますし、スレッド返信する機能もあります。
こちらについては後ほど詳しく見ていきたいと思います。
6. Slack Thread Bot(solaoi/slack-thread-bot)

説明:
スレッド返信(初回返信をチャンネルにも投稿可)、mrkdwn対応、スレッド履歴・ユーザーリスト参照、任意で利用チャンネルを制限可能なSlackボットプラグイン。
2つ目のSlack Post(solaoi/slack-post)と同じユーザーさんによって提供されているもので、タイプは「拡張」になります。
前者のslack-bot2のようにリアクションに反応することはできませんが、スレッドでの会話履歴を引き継げるという大きな特徴があります。
チャットフローの目的からすると、会話履歴を引き継げるのはメリットの1つですので、こちらについても後ほど詳しく見ていきたいと思います。
slack-bot2プラグインでチャットフローをトリガー
処理の流れ
slack-bot2プラグインでチャットフローをトリガーし、その結果がSlackに投稿されるまでの流れは以下のようになります。
(1) Slackアプリ(ボット)がSlackワークスペースのイベントを検知
↓
(2) プラグインのエンドポイントにイベント内容を送信
↓
(3) プラグインがチャットフローをトリガー(イベント内容を連携)
↓
(4) Difyでチャットフロー実行
↓
(5) プラグインがチャットフローの出力結果をSlackBotに連携
↓
(6) Slackアプリ(ボット)が出力結果を投稿
設定作業
連携のために必要な作業は以下の通りです。順番に設定していきましょう。
- (事前準備)動作検証用のチャットフローを作成
- Slackアプリ(SlackBot)の作成、権限設定
- プラグインのインストール、エンドポイントの設定
- 作成したエンドポイントをSlackアプリ側に設定
【事前準備】動作検証用のチャットフローを作成
後ほどの設定で必要になるため、今回もまず最初にプラグインからトリガーされる動作検証用のチャットフローを作っておきます。
DifyのWebコンソールから、スタジオ > アプリを作成する > 最初から作成 をクリックします。

アプリタイプで「チャットフロー」を選択し、アプリの名前を入力して、「作成する」をクリックします。

チャットフローの場合はワークフローと異なり、最初から以下のような3つのノードが作成された状態になります。

ここで少し分かりにくそうなので説明しておくと、実はこのslack-bot2プラグイン自体がチャットフローの標準の入出力仕様に合わせて構成済みのため、最初のユーザー入力ノードと最後の回答ノードは、特に設定をいじる必要はありません。
Slack側で検知したイベント内容や、返信内容の投稿の受け渡しはすべてプラグイン側でやってくれますので、その間の処理部分がカスタマイズする部分となります。
今回は動作検証用のチャットフローなので、LLMの部分は以下のようなシンプルなプロンプトにしておきます。
SYSTEMプロンプト
あなたはSlack上でユーザーの質問に答えるアシスタントです。
ユーザーの質問内容に対して適切な回答をお願いします。
USERプロンプト
{{#sys.query#}}
{{#sys.files#}}

チャットフローが思った通りに動作するかを確認するため、画面上部の「プレビュー」をクリックします。

プレビューが始まるため、簡単な質問をしてみたところ無事動作しました。

動作が確認できたので、最後に右上の 公開する > 更新を公開 をクリックします。

Slackアプリ(ボット)の作成
プラグイン公式ページの設定ガイドにある通り、Slackからプラグインへの繋ぎとなるSlackアプリ(ボット)を作成していきます。
Slack API にアクセスし、右上の「Create New App」をクリックします。

作成方法を聞かれるので「From scratch」を選択します。

アプリ名を設定し、接続するSlackワークスペースを選択し、「Create App」をクリックします。

Slackアプリの設定
次に作成したSlackアプリに対して、Slack周りの権限設定やワークスペースへの追加を行います。
OAuth & Permissions > Scopes > Bot Token Scopes で以下のスコープを追加します。
app_mentions:read- SlackBotがメンションされた際のメッセージ内容を読み取るchannels:history- SlackBotが参加しているパブリックチャンネルのメッセージを読み取るchat:write- SlackBotがメッセージを投稿するreactions:read- SlackBotがリアクション内容を読み取る

スコープの設定が完了したら、OAuth & Permissions > OAuth Tokens で、「Install to <ワークスペース名>」をクリックします。

Slackワークスペースへのアクセス許可が求められるため、「許可する」をクリックします。
※自身のSlackユーザーの権限によっては、ここで管理者へのリクエストが求められる場合もあります。

Slackワークスペースへアプリを追加すると、OAuth & Permissions > OAuth Tokens に Bot User OAuth Token が生成されます。このトークンは後ほど利用するため、コピーして控えておいてください。

プラグインのインストール
DifyのWebコンソール画面から、プラグイン > プラグインをインストールする > マーケットプレイス をクリックします。

「slack-bot2」を探して、「インストール」をクリックします。

無事インストールが成功したら「閉じる」をクリックしてインストール完了です。

プラグインのエンドポイントの設定
DifyのWebコンソール画面から、プラグイン > 先ほどインストールした slack-bot2 をクリックすると、画面右側に以下のようなプラグイン設定画面が表示されます。

エンドポイントの右側にある[+]ボタンをクリックするとエンドポイントの設定画面になるので、以下の要領で設定し、「保存」をクリックします。
- エンドポイント名: 任意のエンドポイント名
- Bot Token: Slackアプリの設定時にコピーしておいた、Bot User OAuth Tokenをそのまま貼り付け (このTokenに基づいた権限でプラグインがSlackBotとして動作します)
- 再試行を許可: False
- アプリ: 先ほど作成したチャットフローを指定
- 対象リアクション: eyes ※ここに何も設定しないと、あらゆるリアクションに反応してしまいますので注意
- スレッド返信を有効にする: True

先ほど作成したチャットフロー用のエンドポイントが追加されましたので、今度はここで生成されたエンドポイントのURLをコピーして控えておいてください。

Slackアプリにエンドポイントを設定
たくさん設定してきましたが、もう少しで終わりです、頑張っていきましょう。
Slackアプリ側で、Slackで発生したイベントを、先ほど生成したURLにPOSTする設定が必要になります。
Slackアプリ設定の Event Subscriptions > Enable Events を Off → On に切り替えます。

Onにすると設定項目がいくつか表示されるため、まず Request URL に先ほどチャットフローのエンドポイントを追加した際に生成されたURLをそのまま貼り付けます。
※この際SlackAPIは、エンドポイントのURLへチャレンジ認証のリクエストを送り、正しいレスポンスが無い場合はエラーになります。エラーになる場合はDifyが稼働するホストへのHTTPSアクセスに問題が生じている可能性があるため、ネットワーク周りの設定を再確認してみてください。

さらに、Event Subscriptions > Subscribe to bot events に以下のイベントを追加します。
app_mention- SlackBotがメンションされたreaction_added- リアクションが追加された
設定が完了したら、右下の「Save Changes」をクリックします。

動作検証
設定が終わったので、動作を見ていきましょう。
まずSlackBotを任意のチャンネルに招待します。

メンションしたため早速スレッドで返信がありました。

メンションに続けて質問を投稿してみると、きちんと答えてくれました。

SlackBotをメンションしないと当然スルーされますが…、設定しておいたリアクション(Reacji)をすれば、その投稿メッセージに対しても答えてくれます。

slack-bot2プラグインまとめ
スレッド返信も可能ですしリアクションにも反応できるということで、公式のSlack Bot(langgenius/slack-bot)プラグインに比べると、とても使い勝手が良く考えられていると思います。
ただし以下のやり取りを見てもらうと分かる通り、会話履歴を引き継ぐことはできませんでした。

そのため、このプラグインを利用するシーンとしては、何度も会話を往復するような使い方ではなく、以下のように、一問一答式にチャットフロー内である程度定型的な処理をするような使い方が合うのではないかと思います。
(1) 他サービスからSlackへの通知(ある程度定型的な投稿)
↓
(2) ユーザーがSlackへの投稿内容を確認し、追加で処理が必要な場合にリアクションをする
※メンションだと(1)の投稿内容が引き継げないのでリアクションがベター
↓
(3) slack-bot2プラグインでチャットフローをトリガー
((1)の投稿内容が連携される)
↓
(4) Difyでチャットフロー実行
↓
(5) チャットフローの処理結果をSlackに投稿
まとめ
学んだことの整理
今回の記事を通じて以下の点を学びました。
- チャットフロー連携の救世主「プラグイン」: ワークフローとは異なり、チャットフローで外部サービス連携を行うには専用のプラグイン(slack-bot2など)を利用するのが有効。
- 用途で選ぶSlack連携プラグイン: メンションだけでなくリアクション起動を重視するなら「slack-bot2」、会話のコンテキスト(履歴)を重視するなら「Slack Thread Bot」といった使い分けが重要。
- 設定のポイントは「双方向」の疎通: Slackアプリ側での権限(Scopes)設定と、Difyプラグイン側で生成されたエンドポイントURLの正しい紐付けが、スムーズな連携の鍵となる。
- 「一問一答型」の業務プロセスに最適: 今回紹介したslack-bot2は、特定の投稿に対する定型処理やリアクションによる実行など、完結型のタスク自動化において非常に高い利便性を発揮する。
今回の前編では、slack-bot2を中心とした基本的な連携手順を解説してきました。リアクションひとつでAIが動き出す体験は、業務のあり方を大きく変える可能性を秘めています。
次回、後編では会話履歴を保持できるSlack Thread Botプラグインの利用方法について詳しく掘り下げていきます。ぜひ併せてチェックしてみてください。
