TECH BLOG

エルカミーの技術ブログです

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

はじめに


先月、Dify v1.10.0がリリースされ、ワークフローにトリガー機能が導入されました。

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

この記事では、トリガー機能の概要をテスト用のワークフローとともに紹介します。

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

環境


Dify クラウド版 v1.11.0

トリガー機能の概要


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

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

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

image block
「ユーザー入力」と「トリガー」の選択画面
image block
トリガータイプを選択する画面
スケジュールトリガー

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

  1. ビジュアル設定

    下記の頻度を選択し、分単位で設定できます。

    • 毎時
    • 毎日
    • 毎週(日曜日~土曜日を複数選択可)
    • 毎月(1日~31日と「月末」を複数選択可)
    image block
  2. Cron式

    標準的な5フィールドのCron式を使い、分単位で設定できます。細かい間隔(例:●分ごと/●時間ごと)や複数条件の組み合わせ(例:平日8:00~19:00に1時間ごと)を設定したい場合に適しています。

    フィールド 位置 意味
    分(Minute) 1番目 毎時何分に実行するか
    時(Hour) 2番目 1日の何時に実行するか
    日(Day of Month) 3番目 月の何日に実行するか
    月(Month) 4番目 年の何月に実行するか
    曜日(Day of Week) 5番目 週の何曜日に実行するか
    image block
プラグイントリガー

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

image block

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

image block
Webhookトリガー

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

image block

トリガーを試してみる


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

ワークフローの概要

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

image block
  • 開始ノード
    💡
    クラウド版の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に以下のようなメッセージが通知されました。

image block
Slackプラグイントリガーの実行結果

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

image block

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

image block

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


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

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

おわりに


この記事では、Dify v1.10.0から導入されたトリガー機能の概要を紹介しました。

トリガー機能によって、ワークフローは「呼び出されて実行されるもの」から「イベントに応じて自律的に動くもの」へと進化しました。これにより、業務の自動化や通知、定期タスクの管理など、ワークフローの活用範囲はさらに広がります。

Difyのワークフローにトリガー機能を導入したいと考えている方の参考になれば幸いです。

参考