Dify上でAIが生成した回答をMS Teamsへ通知する
はじめに
プログデンスの圓佛です。Difyを使うとAIを活用したワークフローアプリケーションを手軽に作成することができます。Difyのバージョン1.10.0からは「Event-Driven Workflows」という機能がサポートされ、ユーザとの対話的チャットだけでなく、「メールを受信した場合」「指定時間になったら」などのイベントを起点にアプリケーションを開始することができるようになりました。
今回はトリガーには一旦触れず、「Microsoft Teams(以下、MS Teams)へ通知する」設定方法について説明します。実際の利用に際してはDify上にトリガーフローアプリケーションを作成し、「トリガーが発生したら自動的にチャットへ通知する」という完全無人アプリケーションとして作成するのも良いと思います。
この記事で分かること
- DifyからMS Teamsへ通知する方法
検証環境
今回の検証ではDifyのオンプレミス版(コンテナ版)を利用しています。
| 対象 | バージョン |
|---|---|
| Dify | 1.10.1 |
MS Teams側での通知先Workflowの作成
今回は「質問した内容をチャットへ通知する」というチャットフローアプリケーションを作成します。通知先になるMS Teams上には予め通知先になるWorkflowを作成し、通知先URLを取得しておきます。
アプリケーションのワークフロー全体像
今回作成するアプリケーションのワークフロー全体は以下を想定しています。今回はアプリケーションの種類に「チャットフロー」を選択しています。MS Teamsへ通知する為にHTTPリクエスト処理を追加しているところがポイントです。
実際のアプリケーション作成手順
ここからは実際に「MS Teamsへ通知するチャットフロー」アプリを作成していきます。
1.アプリの作成
アプリケーションの作成を開始します。
Step.1-1
画面上の「スタジオ」を選択した状態から「最初から作成」をクリックします。

Step.1-2
「チャットフロー」を選択します。アプリケーションの名前を入力したら「作成する」をクリックします。

2.LLMの設定
アプリケーション内で利用したいLLMを選択します。オーケストレーション(アプリケーションの作成画面)が表示されたらワークフロー上の「LLM」をクリックしてプロパティを表示し、利用したいLLMを選択します。今回はAnthropic Claude Haiku 4.5を選択しました。

3.「HTTPリクエスト」の追加
Difyからチャットツールへ通知するには「MS Teams側に作成したWorkflowのIncoming WebhookのURL」へアクセスします。その為、ワークフロー上に「HTTPリクエスト」ツールを追加します。
Step.3-1
「LLM」と「回答」を接続する線上にマウスカーソルを重ねると「+」(プラス)マークが表示されますので、これをクリックします。

Step.3-2
追加可能な「ブロック」や「ツール」が表示されます。デフォルトではブロック一覧が表示されています。ブロック一覧をやや下側へスクロールし、「HTTPリクエスト」をクリックします。

Step.3-3
追加した「HTTPリクエスト」のプロパティが表示されます。

Step.3-4
デフォルトでは「GETリクエスト」になっている為、これを「POSTリクエスト」へ変更します。「URLを入力」欄には事前にMS Teams上で作成したWorkflowのURLを入力します。

Step.3-5
デフォルトで「ボディ」は「none」が選択されています。これを「JSON」へ変更し、以下の内容を貼り付けます。
{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"contentUrl": null,
"content": {
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.4",
"msteams": { "width": "Full" },
"body": [
{
"type": "TextBlock",
"text": "{{#llm.text#}}",
"wrap": true
}
]
}
}
]
}
「"text"」の値として「LLMからの回答」を変数として指定する部分がありますが、この部分は以下などの方法で入力します。
- 変数の入力方法(例)
- 右上の「
{x}」ボタンをクリックし、表示された一覧から変数を選択する - 「
{{#llm.text#}}」と入力する (※デフォルトで配置されているLLMの内部名は「llm」に設定されている。その「text」プロパティを利用したいので結果的に「llm.text」を指定する)
- 右上の「
尚、「"wrap": true」を指定することでMS Teamsに送信されたメッセージが折り返して表示されるようになります。これを指定しないとメッセージが折り返して表示されず、見づらくなるケースが多いように思います。
実際にボディへJSONを設定すると以下のような画面表示になっているはずです。

4.アプリケーションを公開する
これでアプリケーションの作成は完了です。画面右上の「公開する」をクリックし、表示されたメニューから「更新を公開」をクリックしてアプリケーションをユーザへ公開します。

5.プレビューする
プレビュー機能でアプリケーションの動作を確認します。
Step.5-1
「プレビュー」をクリックします。表示された入力欄に質問を入力します。今回は以下を入力し、送信ボタンをクリックしました。
世界で一番高い山は?

Step.5-2
回答が表示されました。

Step.5-3
DifyのWebUI上にLLMからの回答が表示されると同時に、Workflowを通じて同じ内容がMS Teamsにも通知されました。
