「メール分類や議事録要約を毎回手作業でやるのは非効率だ」——そんな定型的なAI処理を自動化できるのがDifyのワークフロー機能。データを入力→AIが処理→結果を出力する自動化パイプラインをノーコードで構築できる。
チャットボットが「ユーザーとの対話」なら、ワークフローは「データの自動処理」。問い合わせの自動分類、議事録の要約、レポート生成など、定型的なAI処理を自動化したい場面で使う。
ワークフロー vs チャットフロー|どっちを使う?
Difyでアプリを作るとき、最初に「Chatbot(チャットフロー)」か「Workflow(ワークフロー)」を選ぶ。判断基準は明確で、会話が必要かどうか。
| 比較項目 | チャットフロー(Chatbot) | ワークフロー(Workflow) |
|---|---|---|
| 形式 | 会話型(チャットUI) | 処理型(入力→出力の1回完結) |
| 会話履歴 | あり(前の発言を覚える) | なし(毎回独立して実行) |
| 用途 | FAQ応答、相談、カスタマーサポート | データ加工、分類、レポート生成、API連携 |
| 条件分岐 | 限定的 | IF/ELSEノードで柔軟に分岐 |
| ループ処理 | 不可 | Iterationノードで複数データを1件ずつ処理可能 |
| 外部API呼び出し | 可能 | HTTP Requestノードで自由に呼べる |
| API公開 | チャットAPI | REST APIとして公開(外部システムから呼び出し可能) |
判断フロー:
- ユーザーと対話が必要 → チャットフロー(例: FAQ応答ボット)
- データを入れて結果だけ欲しい → ワークフロー(例: 文章要約、メール分類)
- 外部サービスと連携して自動処理 → ワークフロー(例: Slack投稿、DB書き込み)
- 会話の文脈を覚えてほしい → チャットフロー(例: カウンセリングAI)
ワークフローで使える全ノード解説
ワークフローは「ノード」(処理ブロック)を線で繋いで構築する。各ノードの役割と使いどころを理解しておくと設計がスムーズになる。
基本ノード(必ず使う)
| ノード | 役割 | 使いどころ |
|---|---|---|
| Start | 入力パラメータの定義 | ワークフローの起点。テキスト・ファイル・数値など入力タイプを定義 |
| LLM | AIによるテキスト生成・分析 | 要約、分類、翻訳、文章生成。プロンプト+変数で指示する |
| End | 最終出力の定義 | ワークフローの終点。処理結果をここで出力する |
データ処理ノード
| ノード | 役割 | 使いどころ |
|---|---|---|
| Knowledge Retrieval | ナレッジベースからRAG検索 | 社内文書を参照した回答生成(→「RAGの詳細」) |
| Code | PythonまたはJavaScriptの実行 | データ加工、計算、JSON整形。ノードだけでは実現できない処理を記述 |
| Template | Jinja2テンプレートによるテキスト整形 | メール本文やレポートのフォーマット生成 |
| Variable Aggregator | 複数の出力を1つにまとめる | 条件分岐の合流点で使用 |
制御フローノード
| ノード | 役割 | 使いどころ |
|---|---|---|
| IF/ELSE | 条件分岐 | 「緊急度が高い→Slack通知」「低い→メール通知」のように処理を分ける |
| Question Classifier | 質問の自動分類 | 入力テキストをカテゴリに自動振り分け。IF/ELSEより柔軟 |
| Iteration | ループ処理 | 配列データを1件ずつ処理する(例: 10件のメールを1件ずつ分類) |
外部連携ノード
| ノード | 役割 | 使いどころ |
|---|---|---|
| HTTP Request | 外部APIの呼び出し | Slack投稿、メール送信、DB書き込み、外部データ取得 |
| Tool | ビルトインツールの呼び出し | Google検索、Web Scraping等のDify標準ツール |
ワークフローの作り方|実践チュートリアル
「問い合わせメールの自動分類→担当チームへSlack通知」のワークフローを例に、作り方を解説する。
Step 1: アプリ作成
- dify.aiにログイン
- 「Apps」→「Create App」→「Workflow」を選択
- アプリ名:「問い合わせ分類ワークフロー」
Step 2: Startノードで入力を定義
Startノードに入力パラメータを追加:
- 変数名:
email_body/ タイプ: テキスト / 説明: 「問い合わせメール本文」
Step 3: LLMノードで分類
Startの右側に「LLM」ノードを追加し、以下のプロンプトを設定:
以下のメール本文を分類してください。
カテゴリ:
- 技術的質問(サーバー、ネットワーク、ソフトウェアに関する問題)
- 料金問い合わせ(請求、プラン変更、見積もり)
- その他(上記以外)
回答はカテゴリ名のみを1行で出力してください。理由は不要です。
メール本文:
{{email_body}}
{{email_body}}はStartノードで定義した変数を参照する記法。
Step 4: IF/ELSEで条件分岐
LLMの出力に「IF/ELSE」ノードを接続し、条件を設定:
- IF: LLMの出力が「技術的質問」を含む → 技術チーム向けSlack通知へ
- ELSE IF: 「料金問い合わせ」を含む → 営業チーム向けSlack通知へ
- ELSE: → その他対応フローへ
Step 5: HTTP Requestで外部通知
各分岐先に「HTTP Request」ノードを追加し、Slack Webhook URLにPOSTリクエストを送信する。
Step 6: テスト→公開
右上の「Run」でテスト実行。各ノードの入出力をクリックして中間結果を確認できる。問題なければ「Publish」でAPIエンドポイントが発行される。
ワークフローをAPIとして呼び出す
公開したワークフローはREST APIとして外部から実行できる:
curl -X POST 'https://api.dify.ai/v1/workflows/run'
-H 'Authorization: Bearer YOUR_API_KEY'
-H 'Content-Type: application/json'
-d '{
"inputs": {
"email_body": "サーバーが落ちました。至急対応をお願いします。"
},
"response_mode": "blocking",
"user": "system-auto"
}'
response_modeはblocking(処理完了まで待つ)とstreaming(逐次受信)から選べる。APIキーはアプリ設定の「API Reference」から取得する。詳細はDify公式のワークフロードキュメントを参照。
ワークフローの実用例3選
例1: 会議録の自動要約→Slack投稿
フロー: Start(会議録テキスト入力)→ LLM(決定事項・TODO・次回議題を抽出)→ Template(Slack用フォーマットに整形)→ HTTP Request(Slack Webhookに投稿)
会議後に録音テキストを流し込むだけで、決定事項がチャンネルに自動投稿される。
例2: CSVデータの分析レポート生成
フロー: Start(CSVファイルアップロード)→ Code(Pythonでデータ前処理・集計)→ LLM(数値の傾向をコメント生成)→ End(分析レポート出力)
例3: 多言語翻訳パイプライン
フロー: Start(原文テキスト+翻訳先言語リスト入力)→ Iteration(言語リストを1件ずつ処理)→ LLM(翻訳)→ Variable Aggregator(全言語の翻訳結果を統合)→ End
Iterationノードのおかげで、1回の実行で英語・中国語・韓国語など複数言語に一括翻訳できる。
よくある質問
Q: ワークフローは無料で使える?
Sandbox(無料)プランで作成・実行できる。ただしメッセージ200回/月の制限あり。→「Dify料金ガイド」
Q: チャットフローからワークフローに変更できる?
既存のアプリのタイプは変更できない。新しくWorkflowアプリを作成し、プロンプトやナレッジ設定を移行する必要がある。
Q: n8nとDifyワークフローの違いは?
n8nは「外部サービス間のデータ連携」が得意(Gmail→Slack→Sheets等)。Difyワークフローは「AIによるテキスト処理」が得意(分類・要約・生成)。AI処理が主目的ならDify、サービス連携が主目的ならn8n。
Q: ワークフローのテンプレートはある?
Difyの「Explore」タブにコミュニティが共有したテンプレートがある。「Translation」「Summarization」等のキーワードで検索すると参考になるワークフローが見つかる。ゼロから作るより、テンプレートを複製して改変する方が効率的。
Q: ワークフローの実行ログは確認できる?
「Logs」タブで実行履歴・入出力・各ノードの処理時間を確認できる。エラーが起きた場合もどのノードで失敗したか特定しやすい。Sandboxプランではログ保持期間が3日間のみ。
まとめ
Difyワークフローは「入力→AI処理→出力」を自動化するパイプライン。チャットボットが「対話」なら、ワークフローは「バッチ処理」。問い合わせ分類・議事録要約・レポート生成など、定型的なAI処理の自動化に最適。APIとして公開すれば外部システムからも呼び出せる。RAG機能と組み合わせるなら「DifyでRAGチャットボットを作る方法」、Difyの基礎は「Difyとは?使い方ガイド」、料金は「Dify料金ガイド」で解説。

