Skip to content

[☂️] Dify Trigger — Event-driven Workflow Foundation #23981

Description

@Yeuoly

[Umbrella] Dify Trigger System — Event-driven Workflow Foundation                                                                                             

Background

Trigger = When something → then do something

This is the foundation for event-driven Workflow capabilities, covering the following types:

  • Schedule (time-based triggers)
  • SaaS Integration Event (events from external SaaS platforms like Slack/Github/Linear, integrated by Plugins)
  • Webhook (external http callbacks)
  • Something to be discuss

All of those features are only designed for Workflow, Chatflow / Agent / BasicChat are not supported.

Image

Design Premise

After careful consideration, we concluded that the start node design cannot fully embody the philosophy behind Triggers.
Therefore, we have redesigned the start node as a component bound to WebApp or Service API.
This means:

  • The workflow input parameters are equivalent to the form defined by the start node.
  • Trigger types can define their own input formats instead of following Dify’s start node format:
    • Webhook: users can freely define the HTTP payload structure they need.
    • Plugins: predefine workflow input parameters for specific third-party platforms.
    • Schedule: only needs a single $current_time parameter.

As a result, we introduced 3 kinds of start nodes, they are all the trigger nodes, and we've already completed the product design, and the UI/UX design is also finished.
The implementation of Trigger will be divided into:

  • WebHook — configuration of webhook-related information in Canvas
  • Schedule — time-based triggers
  • Plugins — plugin system (most third-party platform integrations will depend on this)
WebHook Schedule Plugins
Image Image Image

Why

  1. Enable more scenarios
    Currently, if you want to build something like a Discord ticket bot → Linear in an enterprise setup, you need custom glue code, pre-published extensions, and manual token retrieval from the Discord developer console instead of simple one-click OAuth binding.
    Similar pain points exist for GitHub PR plugin review, Hello Dify email replies, etc., all requiring manual download/upload/trigger actions.
  2. Reduce fragmented experiences
    While it’s possible to achieve similar outcomes using external automation platforms with Dify API calls, the cross-platform experience is fragmented, and many external automation platforms are adding their own LLM orchestration capabilities.
  3. Centralize configuration and management
    Developers often have to host multiple services to poll for events. Endpoints can help, but they are not purpose-built for trigger scenarios, making the configuration flow unintuitive.
  4. Real user demand
    Multiple community members have requested this feature:

How to Contribute

If you think a task is too large and should be split, please comment under this issue and @Yeuoly so we can discuss how to break it down.

If you want to claim a task:

  1. Create a new issue in this repository.
    • Name it starting with:

      [☂️] Dify Trigger —
      
    • Clearly describe the part you want to claim.

    • Include a deadline (DDL) that is realistic for your skill and availability.

  2. Post the issue number in the comments of this Umbrella issue.
  3. All discussions related to that sub-task should happen in your sub-issue.
  4. Once maintainers review and approve, we will update the tracker in this Umbrella issue to link your sub-issue.
  5. Our cooperation will under branch feat/trigger

Cooperation docs under this notion workspace: https://www.notion.so/Trigger-tech-design-README-2550ad0f26b980359ad3e6b4d8e21f7e


Task Tracker

This list is maintained and updated by the core team. Community members are free to claim tasks.
Sub-tasks may depend on the completion of parent tasks.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions