Difyワークフローの作り方|チャットフローとの違い・活用例

AI自動化ツール解説 アイキャッチ Dify

「メール分類や議事録要約を毎回手作業でやるのは非効率だ」——そんな定型的なAI処理を自動化できるのがDifyのワークフロー機能。データを入力→AIが処理→結果を出力する自動化パイプラインをノーコードで構築できる

チャットボットが「ユーザーとの対話」なら、ワークフローは「データの自動処理」。問い合わせの自動分類、議事録の要約、レポート生成など、定型的なAI処理を自動化したい場面で使う。

ワークフロー vs チャットフロー|どっちを使う?

Difyでアプリを作るとき、最初に「Chatbot(チャットフロー)」か「Workflow(ワークフロー)」を選ぶ。判断基準は明確で、会話が必要かどうか

比較項目チャットフロー(Chatbot)ワークフロー(Workflow)
形式会話型(チャットUI)処理型(入力→出力の1回完結)
会話履歴あり(前の発言を覚える)なし(毎回独立して実行)
用途FAQ応答、相談、カスタマーサポートデータ加工、分類、レポート生成、API連携
条件分岐限定的IF/ELSEノードで柔軟に分岐
ループ処理不可Iterationノードで複数データを1件ずつ処理可能
外部API呼び出し可能HTTP Requestノードで自由に呼べる
API公開チャットAPIREST APIとして公開(外部システムから呼び出し可能)

判断フロー:

  • ユーザーと対話が必要 → チャットフロー(例: FAQ応答ボット)
  • データを入れて結果だけ欲しい → ワークフロー(例: 文章要約、メール分類)
  • 外部サービスと連携して自動処理 → ワークフロー(例: Slack投稿、DB書き込み)
  • 会話の文脈を覚えてほしい → チャットフロー(例: カウンセリングAI)

ワークフローで使える全ノード解説

ワークフローは「ノード」(処理ブロック)を線で繋いで構築する。各ノードの役割と使いどころを理解しておくと設計がスムーズになる。

基本ノード(必ず使う)

ノード役割使いどころ
Start入力パラメータの定義ワークフローの起点。テキスト・ファイル・数値など入力タイプを定義
LLMAIによるテキスト生成・分析要約、分類、翻訳、文章生成。プロンプト+変数で指示する
End最終出力の定義ワークフローの終点。処理結果をここで出力する

データ処理ノード

ノード役割使いどころ
Knowledge RetrievalナレッジベースからRAG検索社内文書を参照した回答生成(→「RAGの詳細」)
CodePythonまたはJavaScriptの実行データ加工、計算、JSON整形。ノードだけでは実現できない処理を記述
TemplateJinja2テンプレートによるテキスト整形メール本文やレポートのフォーマット生成
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: アプリ作成

  1. dify.aiにログイン
  2. 「Apps」→「Create App」→「Workflow」を選択
  3. アプリ名:「問い合わせ分類ワークフロー」

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_modeblocking(処理完了まで待つ)と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料金ガイド」で解説。