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

# Workflows

> Design multi-step automations with a visual builder

![Workflows](https://mintcdn.com/sequence/B-Bh00iH9ndAXxvc/images/illustration/workflows_cover.png?fit=max\&auto=format\&n=B-Bh00iH9ndAXxvc\&q=85\&s=1654b7bbfcf032cc239c1f5759f05ff9)

Workflows let you design quote approvals, contract intake, and other multi-step processes on a visual canvas. When a run requires human review, it sends a notification to [Watchtower](https://docs.sequencehq.com/agents/watchtower.md).

**Use Workflows to:**

> [card] [Route runs by conditions](https://docs.sequencehq.com/agents/workflows.md#switch-node)

> [card] [Pause for human review](https://docs.sequencehq.com/agents/workflows.md#review-node)

> [card] [Execute actions on approval](https://docs.sequencehq.com/agents/workflows.md#action-node)

> [card] [Approve a submitted quote](https://docs.sequencehq.com/cpq/approve-quote.md)

## Getting started

**1. Create a workflow and select a trigger**

Go to Workflows in the sidebar and create a new workflow. Click the Start node and choose a trigger: Quote approval (when a sales rep submits a quote), Contract uploaded (when a contract PDF is uploaded or forwarded), or Invoice sent (when an invoice is sent to a customer, used for [payment reminders](https://docs.sequencehq.com/agents/payment-reminders.md)). Publishing a workflow makes it the active workflow for its trigger; see [Publishing](#publishing).

![Start node with trigger selection](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_triggers.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=513c00190e36319e2695198aa2524a30)

**2. Add nodes and connect them**

Use the toolbar at the bottom to add Switch, Review, Action, Reminder, End, and Note nodes. Connect them by dragging edges between nodes. Click any node to open its configuration panel. Save to preserve your draft; Publish when the workflow is ready to go live.

![Workflow canvas](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_hero.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=ffcd65a854ea4fbb4638377288c209c2)

## Node types

| Node | Purpose |
| - | - |
| Switch | Route the run down different branches based on conditions |
| Review | Pause the run and create an approval task in Watchtower |
| Action | Run a Sequence operation (publish quote, create schedule, etc.) |
| Reminder | Send a payment reminder for an invoice, with optional review (see [Payment reminders](https://docs.sequencehq.com/agents/payment-reminders.md)) |
| End | Terminate a branch |
| Note | Canvas annotation; does not execute |

## Switch node

The Switch node evaluates conditions against the quote or contract data and routes the run down the matching branch. Add branches with + and remove them with −. The final branch is always Else (catch-all for runs that do not match any condition).

Each branch has one or more conditions; multiple conditions on a branch use AND logic.

![Switch condition builder](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_switch_conditions.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=15952bcf652efa0a8a87800d56506847)

The available properties depend on the workflow's trigger. **Quote approval** workflows can use the full list below:

| Property | What it checks | Available comparisons |
| - | - | - |
| Total contract value | The quote's total contract value | Less than, More than, Equals |
| Total discount value | The total discount applied across the quote | Less than, More than, Equals |
| Total duration | The combined duration of all phases on the quote | Shorter than, Longer than, Equals, Does not equal |
| Products | Which products are on the quote | Includes all, Excludes all, Includes, Excludes |
| Product | A specific product's discount, whether it has a discount, or its pricing model | See below |
| Quote template | The quote's attachments, or its raw text content | Attachments, Raw text |
| Customer | The customer on the quote, including their custom properties | Includes, Excludes |
| Currency | The quote's currency | Equals, Does not equal |
| Deal type | The quote's deal type | Equals, Does not equal |
| Raw text | Free text entered on the quote | Includes, Excludes |
| Requestor | Who submitted the quote | Includes, Excludes |
| Comment | The comment left when the quote was submitted | Is empty, Is not empty, Includes, Excludes |
| Previous approval | Compare the quote against the version last approved at a specific Review node, only available once the workflow has one (see [Re-approvals](#re-approvals)) | See below |

Choosing **Product** opens a second row to narrow further:

| Sub-option | Available comparisons |
| - | - |
| Discount | Equals, Less than, More than |
| Has discount | Yes, No |
| Pricing model | Is, Is not, against standard, linear, volume, graduated, package, or seat-based pricing (see [Products and pricing](https://docs.sequencehq.com/plans-products/product-catalogue.md)) |

**Contract uploaded** workflows don't currently expose Switch conditions on the trigger's own data. **Invoice sent** workflows (used for [payment reminders](https://docs.sequencehq.com/agents/payment-reminders.md)) use a smaller set instead:

| Property | What it checks | Available comparisons |
| - | - | - |
| Invoice amount | The invoice's gross total | Less than, More than, Equals |
| Customer | The customer on the invoice, including their custom properties | Includes, Excludes |

## Review node

The Review node pauses the workflow and creates a task in Watchtower assigned to the approvers you configure. The run holds until someone completes it. The node exposes Approved and Rejected output paths; connect each to the appropriate next step.

![Review node configuration](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_review.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=ff25a728920b03c83eba984e2376725b)

## Action node

The Action node runs a Sequence operation when a condition is met or a review is approved. Available actions: Publish quote, Create schedule, Contract extraction.

![Action node configuration](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_action.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=b83abea1c11962fe49c4941f34bb2daf)

## Reminder node

The Reminder node sends a payment reminder for an invoice. It packages a configurable wait, an invoice check, email composition, an optional review step, and the send into a single node. Chain several to build a dunning sequence. Use it with the Invoice sent trigger. See [Payment reminders](https://docs.sequencehq.com/agents/payment-reminders.md) for full configuration (timing, template variables, approval, and webhooks).

![Reminder node configuration](https://mintcdn.com/sequence/aI1Qdok_cMp1DwMT/images/product/agents/reminder_node.png?fit=max\&auto=format\&n=aI1Qdok_cMp1DwMT\&q=85\&s=68bbc5111d2260c860c59c8e7ea7d559)

## Note node

The Note node is a canvas annotation. It does not execute. Use it to explain branches, record policy decisions, or leave context for future editors.

![Note node on canvas](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_note.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=b1d4d554366a272f6894eb9c5c3d8832)

## Publishing

Workflows start as drafts. Save and return as needed. When ready, Publish. The workflow then runs for every new trigger event. Version history records what was running at any point in time. Edit the draft and republish to update logic without interrupting in-flight runs.

Only one workflow is active per trigger at a time. If you publish a workflow whose trigger is already used by another active workflow, the existing one is deactivated and yours takes its place, with no gap in coverage, and the confirmation names and links to the workflow being deactivated. You can keep as many draft workflows as you like for the same trigger.

## Quote approval flow

**1. Quote submitted**

A sales rep submits a quote for approval in Sequence. The request comment is captured and attached to the run.

**2. Switch evaluates conditions**

The workflow runs the Switch node against your conditions (deal size, discount, currency, products). The run takes the first matching branch.

**3. Review task in Watchtower**

The run pauses at the Review node. A task appears in Watchtower for the assigned approvers with the full quote, requestor details, and sales rep comment.

![Quote approval task in Watchtower](https://mintcdn.com/sequence/dShTYSDybLSJ4uGB/images/product/agents/workflows_cpq_approval.png?fit=max\&auto=format\&n=dShTYSDybLSJ4uGB\&q=85\&s=7da76afc9bd29f97b3064dc1d3f6f161)

**4. Approver decides**

The approver opens the task in Watchtower and approves or rejects.

**5. Action runs**

On approval, the workflow continues to the Action node and publishes the quote (or executes the configured action).

Every branch, approval, and action is logged in Watchtower's audit trail.

## Re-approvals

A quote is locked for editing while it has a pending review. Once the review resolves, whether approved or rejected, the lock lifts and the quote can be edited again.

By default, every **Publish**, **Publish changes**, and **Republish** action sends the quote through the workflow again, regardless of whether an earlier version of the same quote was already approved. Edit an approved quote and republish it, and it goes back to the top of the flow: the Switch node evaluates conditions again and a new Review task is created.

You don't have to leave it there. Add a **Previous approval** condition to a Switch node to compare the quote against the version that was last approved at a specific Review node further downstream, and route around review when nothing material has changed, for example when someone only adds a recipient or tweaks the cover page.

![A Previous approval condition on a Switch node, comparing pricing against the last approved version](https://mintcdn.com/sequence/FAN9UpmED5mJtUXK/images/product/agents/workflows_reapproval.png?fit=max\&auto=format\&n=FAN9UpmED5mJtUXK\&q=85\&s=10783fc06ce290b79995bd1293c1d4c0)

A **Previous approval** condition has three parts:

| Part | What you choose |
| - | - |
| Review step | Which Review node (Quote review only) in this workflow to compare against. Only relevant once you have more than one. |
| Field | What to compare: All contract terms, All prices, All discounts, All minimums, Raw text, or Attachments |
| Comparison | Is equal or Is not equal (the row reads as "are equal" for plural fields like prices or attachments) |

Add several Previous approval conditions on the same branch to gate on more than one field at once, for example: always re-review if prices changed, but let discount-only tweaks through without one.

> [!NOTE]
>
> If the quote has never been approved at the chosen review step, or its last attempt there was rejected, the comparison always reads as not equal. There's no version to compare against, so it routes to review rather than silently skipping it.

## Monitoring

All workflow runs are tracked in Watchtower. Visibility is role-based:

| Role | Contract intake runs | Quote approval runs |
| - | - | - |
| Admin | All runs | All runs |
| Quote owner (non-admin) | All runs | Their own |
| Approval requestor (non-admin) | All runs | Runs they requested |
| Other non-admin | All runs | Not visible |

Enable Admin mode in Watchtower to see all tasks across your workspace. You can manually override and approve tasks from there. Cancel any in-progress run from Watchtower if a quote was submitted in error or needs to restart.

## Permissions

Users assigned to a Review task can complete it; admins can complete any task, assigned or not. The quote requestor is excluded from approving their own request. See [Review node](#review-node) for how contract reviews additionally restrict who can be assigned. Finer-grained approver roles for quote reviews are planned.

## Best practices

> [accordion] Map the full flow before building
>
> Sketch the happy path and edge cases first. Who approves what? What happens on rejection? Use Note nodes to capture decisions.

> [accordion] Model variation inside one workflow
>
> Only one workflow runs per trigger at a time, so model variation within a single workflow using Switch branches rather than relying on several workflows for the same trigger. Publishing a second workflow for a trigger deactivates the first.

> [accordion] Layer conditions precisely
>
> Combine conditions on a branch (e.g. total contract value more than \$50,000 and currency equals USD). Route the Else branch somewhere sensible.

> [accordion] Test every branch before publishing
>
> Walk through each branch before going live. Confirm Approved and Rejected paths on every Review node lead somewhere meaningful.

> [accordion] Keep approver assignments current
>
> Update the Review node when approvers change role or leave the team.

## Related

* [Approving a quote](https://docs.sequencehq.com/cpq/approve-quote.md): what an approver sees and can do with a submitted quote
* [Watchtower](https://docs.sequencehq.com/agents/watchtower.md): review tasks, track runs, audit decisions
* [Contract intake agent](https://docs.sequencehq.com/agents/contract-intake.md): end-to-end contract processing built on Workflows
* [Payment reminders](https://docs.sequencehq.com/agents/payment-reminders.md): automate invoice chasing (dunning) with Reminder nodes


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.