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

# Confirm Block for Human Approval Steps

> Use the Confirm block to ask for human approval, wait for confirmation, and route workflow execution based on a yes or no response.

<Frame>
  <img src="https://mintcdn.com/odella/MNHyQg3-ZFMTYSp3/block-reference/assets/confirm_light.png?fit=max&auto=format&n=MNHyQg3-ZFMTYSp3&q=85&s=d2e46dd3144234a22dd1d956b372847e" alt="Confirm Block Screenshot" className="block dark:hidden" width="772" height="374" data-path="block-reference/assets/confirm_light.png" />

  <img src="https://mintcdn.com/odella/MNHyQg3-ZFMTYSp3/block-reference/assets/confirm_dark.png?fit=max&auto=format&n=MNHyQg3-ZFMTYSp3&q=85&s=816365a915280f1a4772fc50409003fb" alt="Confirm Block Screenshot" className="hidden dark:block" width="752" height="374" data-path="block-reference/assets/confirm_dark.png" />
</Frame>

## Overview

Use the Confirm block when a workflow needs a human approval step before it continues. The block prompts a user for confirmation and routes the value through either the positive or negative output, making it useful for approvals, review gates, delete confirmations, publishing checks, and other control-flow decisions. Pair it with [Flow Output](/block-reference/io/graph-output) to return the approval result or [If/Else](/block-reference/logic/if-else) to branch the workflow after confirmation.

## Inputs

<ParamField path="prompt" type="string" optional>
  The message to display to the user when prompting for confirmation. Only available when "Use Input" is enabled.
</ParamField>

<ParamField path="wait" type="any" optional>
  A value to wait for before showing the confirmation prompt. Only available when "Wait For Input" is enabled.
</ParamField>

<ParamField path="value" type="string" optional>
  A value that will be passed through to either the True or False output depending on the user's response.
</ParamField>

## Outputs

<ResponseField name="output" type="any">
  The `value` input is passed through this output if the user confirms positively.
</ResponseField>

<ResponseField name="falseOutput" type="any">
  The `value` input is passed through this output if the user confirms negatively.
</ResponseField>

## Editor Settings

<ParamField path="prompt" type="string" default="Please confirm to continue.">
  The message to display to the user when prompting for confirmation. Only editable when "Use Input" is disabled.
</ParamField>

<ParamField path="useInput" type="boolean" default={false}>
  When enabled, allows the prompt message to be provided via the prompt input port instead of the editor settings.
</ParamField>

<ParamField path="useWaitForInput" type="boolean" default={false}>
  When enabled, delays showing the confirmation prompt until the "Wait For" input receives a value.
</ParamField>

<ParamField path="renderingFormat" type="string" optional>
  The format to render the prompt in. Can be either "preformatted" or "markdown".
</ParamField>

## Example: Confirming a Delete Action

1. Add a Confirm Block to your flow before a critical delete action.
2. Set the `prompt` to "Are you sure you want to delete this item? This action cannot be undone."
3. Connect your delete action to the `value` input
4. The delete action will only execute if the user confirms positively via the `output` port. The `falseOutput` port can be used to handle the negative confirmation case.

## Error Handling

The Confirm Block does not typically produce errors as it simply waits for user input. However, if there are issues with the user interface or the block fails to receive a response, it may timeout and return an error.

<Warning>
  Always provide clear and concise messages to users to ensure they understand the implications of their confirmation or denial.
</Warning>

## FAQ

<AccordionGroup>
  <Accordion title="What's the difference between using the prompt setting vs input?">
    When "Use Input" is disabled, the prompt message is set statically in the editor settings. When enabled, the prompt can be dynamically provided via the prompt input port.
  </Accordion>

  <Accordion title="How does the Wait For Input feature work?">
    When "Wait For Input" is enabled, the confirmation prompt won't be shown until a value is received on the "Wait For" input port. This allows you to sequence confirmations after other operations complete.
  </Accordion>

  <Accordion title="What happens to the value input?">
    The value input is passed through to either the True or False output depending on how the user responds to the confirmation prompt. This allows you to conditionally route data based on user confirmation.
  </Accordion>
</AccordionGroup>

## See Also

* [User Input Block](/block-reference/io/user-input)
* [Flow Output Block](/block-reference/io/graph-output)
* [Conditional Block](/block-reference/logic/if-else)
* [Race Inputs Block](/block-reference/logic/race-inputs)
* [Text Block](/block-reference/data/text)
