> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meetdoris.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deal stage changed

> Runs whenever a deal moves from one pipeline stage to another.

**Event id:** `deal.stage_changed`

Fires on every stage move, in either direction, on any pipeline.

## When it fires

When Doris sees a deal's stage change, either from a CRM webhook or from a scheduled sync. Both a forward move and a move back down the pipeline fire it.

## What the flow receives

* **Deal** — The deal that moved, expandable into stakeholders, commitments, objections, and meetings
* **Previous stage** — The stage name the deal came from
* **New stage** — The stage name it moved into
* **Pipeline** — The pipeline the deal sits in
* **Amount** — The deal value at the time of the move

## Good uses

* Ask for the qualification evidence a stage demands, and tell the owner what is missing
* Notify a manager when a large deal enters a late stage
* Write a stage-entry note to the CRM with what Doris knows so far
* Warn on backward moves, which usually mean something went wrong

## Things to know

* This fires on **every** stage move. Most flows want a specific one. Add a **Continue if** on the new stage name near the top.
* Stage names come from your CRM, exactly as written there. If a stage is renamed in the CRM, a **Continue if** matching the old name stops matching.
* A move into closed-won or closed-lost fires this trigger **and** [Deal closed](/features/triggers/deal-closed). If you only care about outcomes, use Deal closed on its own.
* Multi-pipeline workspaces should filter on pipeline as well as stage. The same stage name can exist in more than one pipeline.

<Tip>Stage gates are the most common use here. Write the flow as "when a deal enters this stage, check these things and tell the owner what is missing", not "when a deal changes stage".</Tip>
