ElcamyTECH
Articles
Dify

Difyのワークフローに導入されたトリガー機能の概要

TechDifyDify2025/12/15

はじめに

先月、Dify v1.10.0がリリースされ、ワークフローにトリガー機能が導入されました。 これまでワークフローはユーザ操作やAPIリクエストを受け取ったときにだけ起動していました。このたび導入されたトリガー機能によって、ワークフローが常時オンライン状態になり、①スケジュール②プラグイン③Webhookをトリガーとして起動するようになりました。 この記事では、トリガー機能の概要をテスト用のワークフローとともに紹介します。

なお、以前の記事でワークフローの定期実行方法3選を紹介しましたが、スケジュールトリガーを使えば簡単に置き換えられます。

https://blog.elcamy.com/posts/251e5fe9/

環境

Dify クラウド版 v1.11.0

トリガー機能の概要

ワークフローには3種類のトリガータイプが用意されています。1つのワークフローには複数のトリガーを設定できます

  • スケジュールトリガー
  • プラグイントリガー
  • Webhookトリガー
メモ

クラウド版のSandboxプラン(v1.11.0時点)では、各ワークフローに設定できるトリガーは最大2つまでです。Professional/Teamプランやセルフホストの場合は、無制限に設定できます。

ワークフローを最初から作成すると、開始ノードとして「ユーザー入力」と「トリガー」を選択するように変更されています。後から開始ノードを変更したりトリガーを追加したりすることも可能です。

「ユーザー入力」と「トリガー」の選択画面 「ユーザー入力」と「トリガー」の選択画面

トリガータイプを選択する画面 トリガータイプを選択する画面

スケジュールトリガー

時間ベースのトリガーです。設定したスケジュールに従ってワークフローを起動できるため、定期的に実行したい場合に適しています。設定方法は2つ用意されています。

  1. ビジュアル設定 下記の頻度を選択し、分単位で設定できます。
  • 毎時
  • 毎日
  • 毎週(日曜日~土曜日を複数選択可)
  • 毎月(1日~31日と「月末」を複数選択可)

image

  1. Cron式 標準的な5フィールドのCron式を使い、分単位で設定できます。細かい間隔(例:●分ごと/●時間ごと)や複数条件の組み合わせ(例:平日8:00~19:00に1時間ごと)を設定したい場合に適しています。
フィールド位置意味
分(Minute)1番目毎時何分に実行するか
時(Hour)2番目1日の何時に実行するか
日(Day of Month)3番目月の何日に実行するか
月(Month)4番目年の何月に実行するか
曜日(Day of Week)5番目週の何曜日に実行するか

image

プラグイントリガー

外部アプリのイベントによって実行されるトリガーです。よく使われるアプリには予めプラグインが用意されています。2025年12月12日時点、マーケットプレイスには19個のプラグイントリガーが公開されています。

image 各プラグイントリガーでは複数のイベントを設定できます。例えば、Slackプラグインの場合、アプリへのメンションやチャネルの作成など多くのイベントが用意されています。

image

Webhookトリガー

プラグインが存在しない自社システムやサービスを接続するためのトリガーです。トリガーごとに発行される固有のHTTPアドレスにリクエストを送るだけでワークフローを起動できます。

image

トリガーを試してみる

続いて、サンプルのワークフローを作成し、それぞれのトリガー機能を試します。

ワークフローの概要

トリガーが実行されると、その時点の日経平均株価を検索し、Slackに通知するワークフローです。

image

  • 開始ノード
    • スケジュールトリガー(ビジュアル設定)
      • 頻度: 毎日
      • 時刻: テストを実行したい時刻
    • Slackプラグイントリガー(App Mention) 設定方法はこちら

https://marketplace.dify.ai/plugins/langgenius/slack_trigger

  • Webhookトリガー
    • メソッド: POST
    • その他: デフォルト
メモ

クラウド版のSandboxプラン(v1.11.0時点)では設定できるトリガーの数が最大2つまでのため、テスト実行時には使わないトリガーのうち1つを削除しています。

  • Tavily Search
    • 入力変数 (Query): 現在の日経平均株価を日本語で教えて
    • Include Answer: True
    • その他:デフォルト
  • テンプレート
    • 入力変数
      • 変数名: json
      • 変数: Tavily Search/json
    • コード: {{ json[0].answer }}
  • Incoming Webhook to send message
    • 入力変数 (content): テンプレート/output
    • 設定 (Slack Incoming Webhook url): 環境変数として設定したslack_incoming_webhook_url
  • 出力ノード
    • 出力変数
      • 変数名: result
      • 変数: テンプレート/output

試した結果

それぞれのトリガーを実行すると、Slackに以下のようなメッセージが通知されました。

Slackプラグイントリガーの実行結果 Slackプラグイントリガーの実行結果 ワークフローのログには「トリガー方法」という列が追加され、実行されたトリガータイプが確認できるようになっていました。スケジュールトリガーの場合、実行までに1分ほどのラグが生じることがありました。

image

なお、今回のテストではWebhookトリガーの実行を簡単に試せるPostmanを利用しました。

image

Dockerコンテナとトリガー機能の関係

最後に、Dockerを使ってセルフホストしている方に向けて、コンテナとトリガー機能の関係を補足します。下記のコンテナが起動されていない場合、トリガーは機能しないため注意が必要です。

  • worker_beatコンテナ:スケジュールトリガーの管理(Celery Beat
  • apiコンテナ:外部リクエスト受付、ワークフロー起動
  • workerコンテナ:ワークフロー処理
トリガータイプworker_beatapiworker
スケジュール必須必須必須
プラグイン不要必須必須
Webhook不要必須必須

おわりに

この記事では、Dify v1.10.0から導入されたトリガー機能の概要を紹介しました。 トリガー機能によって、ワークフローは「呼び出されて実行されるもの」から「イベントに応じて自律的に動くもの」へと進化しました。これにより、業務の自動化や通知、定期タスクの管理など、ワークフローの活用範囲はさらに広がります。 Difyのワークフローにトリガー機能を導入したいと考えている方の参考になれば幸いです。

参考

https://docs.dify.ai/en/guides/workflow/node/trigger

https://github.com/langgenius/dify/releases/tag/1.10.0

https://qiita.com/DifyJapan/items/d68cf1ab5f2c933bf1f8

関連記事

Elcamyについて

AI・データエンジニアリング・クラウドを中心に、技術で事業課題を解決しています。 お気軽にご相談ください。