> For the complete documentation index, see [llms.txt](https://docs.umbraco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.umbraco.com/umbraco-automate/backoffice/approvals.md).

# Use Approvals

Add approval steps to an automation and act on pending approvals in the backoffice.

The **Request Approval** action pauses an automation and waits for a user to approve or reject before the run continues. Use it to add a human checkpoint to an automation, for example, before publishing AI-generated content.

<figure><img src="https://2417601672-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFSbD4KYvchggw3e6MKZh%2Fuploads%2Fgit-blob-f45a9efc396d7686403ed5e263d101da89601074%2Frequest-approval-stage.png?alt=media" alt="The request approval stage."><figcaption><p>Request approval stage</p></figcaption></figure>

## How It Works

1. The automation reaches a **Request Approval** step.
2. The run is suspended and an approval entry is created with the configured prompt.
3. A user with access to the workspace opens the approval and chooses **Approve** or **Reject**.
4. The step finishes and the run follows whichever branch matches the decision.

A rejection is not an error. The **Request Approval** node has two outgoing handles on the canvas — **Approved** and **Rejected**. Send each outcome down a different path, the same way you would with an **If** node. See [Control Flow](/umbraco-automate/concepts/control-flow.md).

If a run finishes on the Rejected path, its status is **Rejected**, a separate status from **Failed**. Nothing went wrong — a person said no.

## Using the Decision in Later Steps

The step's output is available to any step that runs after it:

| Field               | Description                                                                        |
| ------------------- | ---------------------------------------------------------------------------------- |
| `approved`          | `true` or `false`. Use this to branch, for example `${ steps.approval.approved }`. |
| `outcome`           | The decision as text: `Approved` or `Rejected`.                                    |
| `comment`           | The optional note the approver left.                                               |
| `approvedByUserKey` | The user key of whoever made the decision.                                         |
| `decisionUtc`       | The date and time the decision was made.                                           |

See [Bindings](/umbraco-automate/concepts/bindings.md) for the full binding syntax.

## Request Approval Settings

| Setting             | Description                                                                                                                 |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Prompt**          | The message shown to approvers explaining what needs approval. Supports [bindings](/umbraco-automate/concepts/bindings.md). |
| **Timeout (hours)** | Optional. If set, the step auto-rejects when no decision is made within this many hours.                                    |

## Approver Permissions

A user can act on an approval if they are a member of a user group that the workspace allows access to. See [Manage Workspaces](/umbraco-automate/backoffice/workspaces.md).

## Finding Pending Approvals

The **Approvals** dashboard in the Automate section lists every approval awaiting a decision across the workspaces you can access. Click an approval to open the decision dialog.

<figure><img src="https://2417601672-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFSbD4KYvchggw3e6MKZh%2Fuploads%2Fgit-blob-873db3883bef8b3ae9bf8b52f22141ba99c794bd%2Fautomation-approvals-dashboard.png?alt=media" alt="Approvals dashboard"><figcaption><p>Approvals dashboard</p></figcaption></figure>

## See Also

* [Build an Automation](/umbraco-automate/backoffice/building-an-automation.md)
* [Manage Workspaces](/umbraco-automate/backoffice/workspaces.md)
* [Control Flow](/umbraco-automate/concepts/control-flow.md)
* [Bindings](/umbraco-automate/concepts/bindings.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.umbraco.com/umbraco-automate/backoffice/approvals.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
