---
title: "How to Configure an Approval Workflow"
description: "Set up approval workflows that govern how objects are reviewed and approved before production."
---

<div style="padding: 14px 16px; border: 0.5px solid #AFA9EC; border-radius: 12px; background: #EEEDFE; margin-bottom: 1.5rem;">
  <div style="display: flex; align-items: center; gap: 7px; margin-bottom: 8px;">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
      <path d="M9 2L4 9h4l-1 5 5-7H8l1-5z" stroke="#7f77dd" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
    </svg>
    <span style="font-size: 11px; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; color: #534AB7;">TL;DR</span>
  </div>
  <div style="font-size: 13px; color: #3C3489; line-height: 1.65;">
    In <strong>Settings → Approval Workflow</strong>, create a workflow, pick the object types it covers, then on the <strong>Responsibilities</strong> tab add reviewers with their veto power and review order. Active workflows become selectable when someone sends an object for approval.
  </div>
</div>

:::note[Admin guide]
This page is for administrators. Only users with **Approval Workflow → Write** permission (typically Admin or Master roles) can create or edit approval workflows.
:::

## What is it?

An **Approval Workflow** decides who reviews an object and in what order. Each object type (Model, Feature, Policy, and so on) can have one or more workflows; whoever submits an object for approval picks which one to use. A workflow has two parts: **Details** (which object types it covers, its status, a description) and **Responsibilities** (the reviewers, whether they can veto, and the order they review in).

To create or edit workflows, go to **Settings → Approval Workflow**. You'll need the **Approval Workflow → Write** permission to see this page. If you plan to assign specific people or roles as reviewers, create those users and roles first, since the workflow form can only pick from what already exists.

**Example we'll use throughout this page:** a `Model MRM Approval Workflow` that requires a Dev Team code check and an MRM review, in that order, before a model can go to production.

## How to Configure a Workflow

<details open class="step">
<summary>

#### Open the Create Form

</summary>

Go to **Settings → Approval Workflow**, which lists every workflow on the platform. Click **+ New Approval Workflow** at the top right.

</details>

<details open class="step">
<summary>

#### Fill in the Details tab

</summary>

Give the workflow a **Name** that reviewers and requesters will recognize, for example `Model MRM Approval Workflow`. Under **Object Types**, select every object type this workflow should govern (here, just Model). Add an optional **Description** explaining what the workflow is for.

Set **Status** to **Active** so requesters can pick it, or **Inactive** to keep it hidden while you're still setting it up. Click **Save** to move on to the Responsibilities tab.

:::note
Changing the object types, or switching a workflow to Inactive, doesn't affect approvals already in progress. Those keep running on the workflow they started with. To clean up draft objects still linked to an old workflow, see **Usage Statistics** below.
:::

</details>

<details open class="step">
<summary>

#### Add Responsibilities

</summary>

A **Responsibility** is one reviewer or reviewing group in the workflow. Responsibilities are grouped by **Sequence Order**:

* Responsibilities in the **same** sequence group review **at the same time**.
* A **later** sequence group only opens up once **every** responsibility in the group before it has accepted.

For our example: put **Dev Team** in Sequence 1 and **MRM** in Sequence 2. A model submitted for approval goes to Dev Team first; only after Dev Team accepts does it move to MRM. If you instead put both in Sequence 1, they'd review at the same time.

Click **Add Responsibility** to create one. Each appears as an expandable row. To move one, drag it: drop it into an existing sequence group to review alongside that group, or drop it into the gap between two groups to give it its own position in the order.

</details>

<details open class="step">
<summary>

#### Configure each Responsibility

</summary>

Expand a responsibility to set it up. Give it a **Name** describing who's reviewing, for example `Dev Team` or `MRM`. Then set:

* **Veto Power**: if on, one reject from this responsibility rejects the entire request, and the object can't be edited while this responsibility is reviewing it.
* **Editable by Reviewer** (Registered Users only): if on, the reviewer can fix small issues in the object directly while reviewing, instead of sending it back.
* **Type**: **Registered Users** if a person or role reviews, or **External Tools** if a connected third-party tool makes the decision automatically. External Tools only shows up if your Platform Admin has connected one.

Then choose the **Reviewer**. For Registered Users, pick one of:

* **Anyone**: any user with approve access to this workflow's object types.
* **Specific Users**: only the people you name.
* **Specific Roles**: anyone holding those roles.

For External Tools, pick the tool from the list.

For our example: set MRM's **Veto Power** to on, since a model shouldn't reach production over an MRM rejection. Dev Team can stay without veto, since their check is a lighter code-quality pass.

Click **Save** on the responsibility once it's set up, then repeat for the next one. When all responsibilities are in place, make sure **Status = Active** on the Details tab. The workflow is now available in the dropdown for every object of the types you selected.

</details>

## Veto Power in Detail

Veto changes what happens on a reject, and whether the object stays editable:

* A reject from a veto responsibility rejects the whole request, no matter what other reviewers decide.
* Once the request reaches a veto responsibility, the object is locked from editing.
* Once a veto responsibility accepts, that version of the object is locked for good; any further change creates a new version, which goes through approval again from the start.

Non-veto responsibilities can still request changes (**Need Change**, **Need Info**) and a rejection from them still blocks approval overall, but they don't lock the object on their own.

## Usage Statistics

Once you've saved a workflow at least once, its Details tab shows a **Usage Statistics** table: every object currently using this workflow, grouped by Approval Status (Draft, Pending Approval, Approved, and so on) and Object Type.

This is where you clean up before retiring a workflow:

1. Check the counts to see what's still attached.
2. Click **VIEW** next to any row to see the actual list of objects in that status and object type.
3. For draft objects, use the action menu:
   * **Remove**: detaches this workflow from every draft object in that group (their workflow becomes None).
   * **Change**: reassigns every draft object in that group to a different workflow you pick.

:::caution
Remove and Change apply to every draft object in that status × object type group at once, and can't be undone.
:::

Objects already Pending Approval, Approved, and so on keep their workflow for audit purposes; you can't bulk-detach those.

## Editing a Workflow in Use

You can always edit a workflow's Details (name, description, status). Its **Responsibilities**, though, lock once any object is using the workflow outside Draft status (Pending Approval, Need Change, Approved, and so on). The Responsibilities tab will show you which objects are blocking the edit.

This exists so an approval already underway doesn't change shape on the reviewers partway through. If you need to change responsibilities on a workflow that's already in use:

1. Create a new workflow with the changes you want.
2. Once everything using the old workflow has finished its approval, set the old workflow to Inactive.

## Change History

Every workflow has a **Change History** tab listing every edit made to it (Details and Responsibilities), with who made it and when, for audit purposes.

## What's next

* See how requesters use the workflow you've configured in [Approve an Object](/user-guide/how-tos/approve-an-object/).
