1.10.0

langgenius/dify1.10.0Nov 13, 2025by Mairuis

Upgrading?

Release notes summary

Dify 1.10.0 introduces event-driven workflows through triggers, allowing Workflows to run on schedules, SaaS events, or webhooks without user action or API calls. It also adds workflow pause state management, MCP 2025-06-18 support, broadcast channels, and several workflow and integration enhancements.

Key Highlights

  • Trigger functionality supports Schedule, SaaS Integration Event, and Webhook start nodes for Workflows.
  • Workflow pause state management and WorkflowResumptionContext improve execution control.
  • MCP specification 2025-06-18 is implemented.
  • Broadcast Channel support is introduced.
  • Iteration nodes gain flatten_output configuration, and MCP tools gain audio content support.

New Features

  • Event-driven workflow triggers
  • Schedule, SaaS event, and webhook triggers
  • Workflow pause state management
  • MCP 2025-06-18 support
  • Broadcast Channel
  • Iteration node flatten_output
  • Audio content support for MCP tools
  • RAG tool recommendations

Full Release Notes

#  Introduce Trigger Functionality

A **trigger** is a type of **Start node** that allows your workflow to run automatically—either on a schedule or in response to events from external systems (such as GitHub, Gmail, or your internal services)—without requiring a user action or API call.  
Triggers are ideal for automating repetitive processes and integrating workflows with third-party applications to enable seamless data synchronization and processing.

## ⚡️ Trigger = When something happens → then do something

Triggers form the foundation of event-driven Workflow capabilities and currently support the following types:

- **Schedule** — time-based triggers  
- **SaaS Integration Event** — events from external SaaS platforms (e.g., Slack, GitHub, Linear) integrated through Plugins  
- **Webhook** — HTTP callbacks from external systems  

These trigger features are **only available for Workflows**. Chatflow, Agent, and BasicChat currently do **not** support triggers.

## 🧩 Marketplace

We provide several popular trigger plugins, which you can explore in our [Marketplace](https://marketplace.dify.ai/?category=trigger).

<img width="1255" height="877" alt="image" src="https://github.com/user-attachments/assets/0971dfa2-7e7b-4daa-90f8-577f5ccd8a64" />

## 😎 Enjoy the Experience 

Sit back, relax, and let your workflows run themselves.

<img width="1269" height="924" alt="image" src="https://github.com/user-attachments/assets/40af9ab9-6af7-4ef4-8e6c-5d6d20a7e39f" />

## A big thanks to our contributor !
Thanks so much for the contributors in #23981 who helps us developed this feature! It's a big deal made by you guys! @ACAne0320 @hjlarry @lyzno1 @CathyL0 @zhangxuhe1

## Upgrade Guide

### Docker Compose Deployments

1. Back up your customized docker-compose YAML file (optional)

   ```bash
   cd docker
   cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
   ```

2. Get the latest code from the main branch

   ```bash
   git checkout main
   git pull origin main
   ```

3. Stop the service. Please execute in the docker directory

   ```bash
   docker compose down
   ```

4. Back up data

   ```bash
   tar -cvf volumes-$(date +%s).tgz volumes
   ```

5. Upgrade services

   ```bash
   docker compose up -d
   ```

### Source Code Deployments

1. Stop the API server, Worker, and Web frontend Server.

2. Get the latest code from the release branch:

   ```bash
   git checkout 1.10.0
   ```

3. Update Python dependencies:

   ```bash
   cd api
   uv sync
   ```

4. Then, let's run the migration script:

   ```bash
   uv run flask db upgrade
   ```

5. Finally, run the API server, Worker, and Web frontend Server again.

---

## What's Changed
* feat: add flatten_output configuration to iteration node by @Nov1c444 in https://github.com/langgenius/dify/pull/27502
* feat: implement MCP specification 2025-06-18 by @Nov1c444 in https://github.com/langgenius/dify/pull/25766
* feat: introduce RAG tool recommendations and refactor related components for improved plugin management by @WTW0313 in https://github.com/langgenius/dify/pull/27259
* feat: enhance tencent trace integration with LLM core metrics by @minimAluminiumalism in https://github.com/langgenius/dify/pull/27126
* feat: use id for webapp by @GareArc in https://github.com/langgenius/dify/pull/27576
* feat: enhance pipeline template list with marketplace feature toggle by @WTW0313 in https://github.com/langgenius/dify/pull/27604
* feat(api): Introduce workflow pause state management by @QuantumGhost in https://github.com/langgenius/dify/pull/27298
* feat: localization for hi-IN by @SmartDever02 in https://github.com/langgenius/dify/pull/27783
* feat: Add Audio Content Support for MCP Tools by @IthacaDream in https://github.com/langgenius/dify/pull/27979
* feat(api): Introduce Broadcast Channel by @QuantumGhost in https://github.com/langgenius/dify/pull/27835
* feat(api): Introduce WorkflowResumptionContext for pause state management by @QuantumGhost in https://github.com/langgenius/dify/pull/28122
* feat: introduce trigger functionality by @Yeuoly in https://github.com/langgenius/dify/pull/27644
* feat: add segments max number limit for SegmentApi.post by @ruanimal in https://github.com/langgenius/dify/pull/27745
* feat: enhance annotation API to support optional message_id and content fields by @liugddx in https://github.com/langgenius/dify/pull/27460
* feat: add validation to prevent saving empty opening statement in conversation opener modal by @Nov1c444 in https://github.com/langgenius/dify/pull/27843
* feat: change feedback to forum by @crazywoola in https://github.com/langgenius/dify/pull/27862
* feat: add draft trigger detection to app model and UI by @zhsama in https://github.com/langgenius/dify/pull/28163
* feat: enhance start node metadata to be undeletable in chat mode by @zhsama in https://github.com/langgenius/dify/pull/28173
* fix issues 27388, add missing env variable: ENFORCE_LANGGENIUS_PLUGIN… by @MaoJianwei in https://github.com/langgenius/dify/pull/27545
* fix: resolve 500 error when updating document chunk settings (#27551) by @quicksandznzn in https://github.com/langgenius/dify/pull/27574
* fix: iteration node cannot be viewed(#27759) by @redSun64 in https://github.com/langgenius/dify/pull/27786
* fix agent putout the output of workflow-tool twice (#26835) by @Cursx in https://github.com/langgenius/dify/pull/27706
* fix:knowledge base reference information is overwritten when using mu… by @zhengchangchun in https://github.com/langgenius/dify/pull/27799
* fix: installation_id is missing when in tools page by @crazywoola in https://github.com/langgenius/dify/pull/27849
* fix: avoid passing empty uniqueIdentifier to InstallFromMarketplace by @johnny0120 in https://github.com/langgenius/dify/pull/27802
* fix: python package vulnerability by @kenwoodjw in https://github.com/langgenius/dify/pull/27645
* fix(api): return timestamp as integer in document api by @invzhi in https://github.com/langgenius/dify/pull/27761
* fix: File model add known extra fields, fix issue about the tool of… by @CrabSAMA in https://github.com/langgenius/dify/pull/27607
* FIX Issue #27697: Add env variable in docker-compose(template) and make it take effect. by @Dave0126 in https://github.com/langgenius/dify/pull/27704
* fix: datasets weight settings embedding model does not change by @lcedaw in https://github.com/langgenius/dify/pull/27694
* fix: bump pyobvector to 0.2.17 by @kenwoodjw in https://github.com/langgenius/dify/pull/27791
* fix: elasticsearch_vector version by @huangzhuo1949 in https://github.com/langgenius/dify/pull/28028
* fix workflow default updated_at by @IthacaDream in https://github.com/langgenius/dify/pull/28047
* fix(api): Trace Hierarchy, Span Status, and Broken Workflow for Arize & Phoenix Integration by @ialisaleh in https://github.com/langgenius/dify/pull/27937
* fix Version 2.0.0-beta.2: Chat annotations Api Error #25506 by @Cursx in https://github.com/langgenius/dify/pull/27206
* fix: prevent fetch version info in enterprise edition by @douxc in https://github.com/langgenius/dify/pull/27923
* fix(api): fix VariablePool.get adding unexpected keys to variable_dictionary by @QuantumGhost in https://github.com/langgenius/dify/pull/26767
* fix: bump brotli to 1.2.0 resloved CVE-2025-6176 by @kenwoodjw in https://github.com/langgenius/dify/pull/27950
* refactor: update installed app component to handle missing params and improve type safety by @ZeroZ-lab in https://github.com/langgenius/dify/pull/27331
* refactor:Decouple Domain Models from Direct Database Access by @hieheihei in https://github.com/langgenius/dify/pull/27316
* refactor: update install status handling in plugin installation process by @WTW0313 in https://github.com/langgenius/dify/pull/27594
* refactor(api): add SQLAlchemy 2.x Mapped type hints to Message model by @laipz8200 in https://github.com/langgenius/dify/pull/27709
* refactor: replace hardcoded user plan strings with CloudPlan enum by @laipz8200 in https://github.com/langgenius/dify/pull/27675
* refactor: Use Repository Pattern for Model Layer by @hieheihei in https://github.com/langgenius/dify/pull/27663
* refactor(api): set default value for EasyUIBasedAppGenerateEntity.query by @laipz8200 in https://github.com/langgenius/dify/pull/27712
* refactor(web): reuse the same edit-custom-collection-modal component, and fix the pop up error by @yangzheli in https://github.com/langgenius/dify/pull/28003
* refactor(web): remove redundant add-tool-modal components and related code by @yangzheli in https://github.com/langgenius/dify/pull/27996
* chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/27423
* chore(deps): bump testcontainers from 4.10.0 to 4.13.2 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/27469
* chore(deps-dev): bump @happy-dom/jest-environment from 20.0.7 to 20.0.8 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/27465
* chore: add more stories by @hjlarry in https://github.com/langgenius/dify/pull/27403
* chore: improve mcp server url validation by @Nov1c444 in https://github.com/langgenius/dify/pull/27558
* Sync celery queue name list by @Eric-Guo in https://github.com/langgenius/dify/pull/27554
* chore: add web type check step to GitHub Actions workflow by @ZeroZ-lab in https://github.com/langgenius/dify/pull/27498
* chore: warning messages too long in model config caused ui issue by @iamjoel in https://github.com/langgenius/dify/pull/27542
* chore: add type-check to pre-commit by @lyzno1 in https://github.com/langgenius/dify/pull/28005
* chore(deps): bump tablestore from 6.2.0 to 6.3.7 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/27736
* chore(deps): bump dayjs from 1.11.18 to 1.11.19 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/27735
* chore(deps): bump scipy-stubs from 1.16.2.3 to 1.16.3.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/28025
* chore: disable workflow logs auto-cleanup by default by @laipz8200 in https://github.com/langgenius/dify/pull/28136
* chore: not SaaS version can query long log time range by @iamjoel in https://github.com/langgenius/dify/pull/28109
* chore: improve the user experience of not login into apps by @iamjoel in https://github.com/langgenius/dify/pull/28120
* chore: Remove trailing space from migration filename by @IthacaDream in https://github.com/langgenius/dify/pull/28040
* chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/28054
* chore: remove unused enterprise bot from the readme by @crazywoola in https://github.com/langgenius/dify/pull/28073

## New Contributors
* @gin-melodic made their first contribution in https://github.com/langgenius/dify/pull/25672
* @acro-k-tanaka made their first contribution in https://github.com/langgenius/dify/pull/27336
* @MaoJianwei made their first contribution in https://github.com/langgenius/dify/pull/27545
* @Vivecccccc made their first contribution in https://github.com/langgenius/dify/pull/26234
* @katakyo made their first contribution in https://github.com/langgenius/dify/pull/27680
* @SmartDever02 made their first contribution in https://github.com/langgenius/dify/pull/27665
* @tonghuaroot made their first contribution in https://github.com/langgenius/dify/pull/27731
* @SherlockShemol made their first contribution in https://github.com/langgenius/dify/pull/27776
* @dingweichen made their first contribution in https://github.com/langgenius/dify/pull/27718
* @invzhi made their first contribution in https://github.com/langgenius/dify/pull/27761
* @Dave0126 made their first contribution in https://github.com/langgenius/dify/pull/27704
* @y49 made their first contribution in https://github.com/langgenius/dify/pull/27546
* @redSun64 made their first contribution in https://github.com/langgenius/dify/pull/27786
* @Cursx made their first contribution in https://github.com/langgenius/dify/pull/27706
* @zhengchangchun made their first contribution in https://github.com/langgenius/dify/pull/27799
* @Elliott-byte made their first contribution in https://github.com/langgenius/dify/pull/27823
* @codomposer made their first contribution in https://github.com/langgenius/dify/pull/27850
* @kk-wangjifeng made their first contribution in https://github.com/langgenius/dify/pull/27867
* @OneZero-Y made their first contribution in https://github.com/langgenius/dify/pull/28007
* @mnasrautinno made their first contribution in https://github.com/langgenius/dify/pull/28091
* @ye4241 made their first contribution in https://github.com/langgenius/dify/pull/28151
* @Cerlancism made their first contribution in https://github.com/langgenius/dify/pull/28119
* @breath57 made their first contribution in https://github.com/langgenius/dify/pull/27934
* @zhsama made their first contribution in https://github.com/langgenius/dify/pull/28163
* @lilongfei2000 made their first contribution in https://github.com/langgenius/dify/pull/27871
* @hoffermei made their first contribution in https://github.com/langgenius/dify/pull/28116

**Full Changelog**: https://github.com/langgenius/dify/compare/1.9.2...1.10.0

Related Repositories