---
title: Wait For Approval
description: Pause the run until a person approves or rejects it
---

Pause a run until a person approves or rejects it, then continue down the matching branch.

## Try it

## What it does

Wait For Approval stops the run at this step and asks a question, the **Prompt**. When someone answers, the items that were waiting leave through **Approved** or **Rejected**, unchanged.

* The question appears on the paused run in the **Executions** pane. In the browser extension, an Approve / Reject card is also dropped onto the page you are looking at, when that page allows it.
* You are told a run is waiting: a "waiting for you" count in the top bar, a sound (a chime when the app is open, the desktop notification's own sound otherwise) and, in the extension when the app is not in front, a desktop notification you can click to jump to the run.
* The run waits until someone answers. It does not time out, and it is kept if you close the browser. Cancelling the paused run stops it without sending items to either port.
* Fed several items, the node pauses **once** and one answer routes all of them together. For one decision per item, put the node inside a [Loop](/nodes/builtin/flow/loop/) or [Split in Batches](/nodes/builtin/flow/splitinbatches/).

## When to use it

* Check a draft before an email, message or post goes out.
* Confirm before a step that spends money, deletes data or changes a live system.
* Review what an AI step produced before it is saved.

To ask for values rather than a yes or no, use [In-Page Form](/nodes/builtin/flow/in-page-form/). This node is different from the automatic approval that AI tools ask for before each action they take; see [Action Approval](/concepts/ai/action-approval/).

## Inputs and settings

Write the **Prompt** as a question and include the details the person needs, for example `Send this reply to {{ $input.to }}?`. Left empty, it shows `Approve this step?`.

## Outputs

The items that reached the node come out unchanged, so the next nodes read the same fields as before. Leave **Rejected** unconnected if a "no" should simply end that path.

## Dependencies and credentials

None. This node needs no connection and has no slots for other nodes.

## Example workflow

Review an AI-written summary before posting it:

1. [Get All Text](/nodes/extension/getalltext/) reads the open article.
2. [Summarization](/nodes/builtin/ai/aiagents/summarizationchainnode/) writes a short summary.
3. Wait For Approval with **Prompt** `Post this summary to Slack?`.
4. From **Approved**: [Slack](/nodes/builtin/integration/slack/) posts the summary. From **Rejected**: [Show Notification](/nodes/extension/shownotification/) with the message `Summary discarded`.

## Common issues

* **The run stays "waiting".** Nobody has answered yet. Open the **Executions** pane and approve, reject or cancel it.
* **No card appears on the page.** The card only appears on normal web pages (`http` or `https`), and only in the extension. Browser settings pages, the extension store and the AWFlow app tab can't show it; answer from the **Executions** pane or the desktop notification.
* **One answer approved every item.** That is expected: the node pauses once per run. Put it inside a [Loop](/nodes/builtin/flow/loop/) for one decision per item.

## Recipes with this node

## Related nodes

* [In-Page Form](/nodes/builtin/flow/in-page-form/): ask for values instead of a yes or no.
* [IF](/nodes/builtin/flow/if/): branch automatically, without asking anyone.
* [Wait](/nodes/builtin/flow/wait/): pause for a set time instead of a person.