> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/actions/workflow-concepts/workflow-steps/flow/human-review.md).

# Human Review

Require Human Review of outputs before continuing a workflow

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-691860a5345af5d23d0795f9eb0c767a52c74cc2%2Fhuman-review-step-01-overview.png?alt=media" alt="Run Once page of the Launch Blog Post Generator with the Review Needed panel showing a Blog Title, and Cancel Execution and Accept Output buttons"><figcaption><p>Human Review pauses a Workflow until someone reviews the output.</p></figcaption></figure>

With the Human Review step, the user can be prompted to review, validate, and edit a text value (*Single Item*) or select and edit multiple values (*Multiple Values*) before continuing a workflow.

For example, you could create a list of 5 blog titles for a user to select from, ask the user to review and select the titles to publish with a review step, and finally publish the selected content to your blog.

## Slack notification channels

You can send review notifications to a public channel or a private channel that the AirOps bot has joined. Invite the bot to a private channel before selecting it. Newly joined channels may take up to five minutes to appear in the picker.

## Review a Single Item

### What is a Single Item?

The single item allows the user to edit the text from a single-line text box:

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-8d15450bf89869f9574c9d6dbfafaf0629a3af2f%2Fhuman-review-step-02-single-item.png?alt=media" alt="Details tab of a test run with Review Content showing a single editable Blog Title"><figcaption><p>Single Item review.</p></figcaption></figure>

### How to Configure a Single Item

1. **Label the item:** the label will automatically create the variable name associated with your label. In the example below, we label our item "Blog Title", which also created the variable `blog_title`
2. **Assign the value of the item:** use Liquid syntax to pass the value that you want the user to edit and review. In the example below, this is `{{step_2.output}}`
3. **(Optional) Notify a Slack channel:** choose a Slack channel which will notify users to review the output

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-c1cbb469bb5f69199f2041766c84642657f3bf5a%2Fhuman-review-step-03-single-config.png?alt=media" alt="Human Review step with a Blog Title in the Single Item content format and a Configure Slack to enable notifications button"><figcaption><p>Single Item configuration.</p></figcaption></figure>

## Review Multiple Values

### What is are Multiple Values?

Multiple values allow the user to select and edit multiple values at once:

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-0aa7ef995db044757bcd7d3f7dd1b8dcfb33ab40%2Fhuman-review-step-04-multiple-values.png?alt=media" alt="Details tab of a test run with Review Content listing five blog titles, two of them selected"><figcaption><p>Multi Selection review.</p></figcaption></figure>

### How to Configure Multiple Values

1. Set up a list of options:

   1. **Generate a list:** use an LLM step to generate a list of items, it must be an Array

      <figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-16cd4dabbcb491e1c2eacf14784b13129db7c8bb%2Fhuman-review-step-05-title-list.png?alt=media" alt="Generate blog titles step output in the run Logs, a JSON array of five blog titles"><figcaption><p>A list of five blog titles.</p></figcaption></figure>
   2. **Label the item:** the label will automatically create the variable name associated with your label. In the example below, we label our item "Blog Titles", which also created the variable `blog_titles`
   3. **Assign the value of the item:** use Liquid syntax to pass the list you generated in Step 1. In the example below, this is `{{step_2.output}}`
   4. **(Optional) Notify a Slack channel:** choose a Slack channel which will notify users to review the output

   <figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-8f4f957ed676b5b7074b5e872d6091ea96bcb42e%2Fhuman-review-step-06-multiple-config.png?alt=media" alt="Human Review step with Blog Titles in the Multi Selection (Checkbox List) content format"><figcaption><p>Multi Selection (Checkbox List) configuration.</p></figcaption></figure>

## Referencing the Human Review Step

### How to Reference a Single Item

To reference a single item from the Human Review step, use the variable corresponding to the label you provided.

In this example, we named the item "Blog Title" which created the variable `{{step_3.output.blog_title}}` :

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-6814fe29c7cf6c6dd29fd9bbe3e84949b9882282%2Fhuman-review-step-07-reference-single.png?alt=media" alt="Human Review Single Item Blog Title referenced as step_3.output.blog_title"><figcaption><p>Referencing a Single Item.</p></figcaption></figure>

### How to Reference Multiple Values

To reference multiple values from the Human Review step, use the variable corresponding to the label you provided.

However, unlike referencing a single item, the output of a multiple value review is a list:

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-b61c2f1ba32a0aeb9d6f6cefa7a8f5460f0d1b4f%2Fhuman-review-step-08-reference-multiple.png?alt=media" alt="Human Review step output in the run Logs with the two selected titles in a blog_titles list"><figcaption><p>Referencing the selected values.</p></figcaption></figure>

In other words, `{{step_3.output.blog_titles}}` from the example above gives the user a list of blog titles. If you want to reference only the first blog title, you would need to modify your syntax to `{{step_3.output.blog_titles[0]}}`.

## Review Session

When a workflow reaches the review step, it pauses the execution, leaves the workflow in a pending state for review, and creates a review session where the user can review the content.

### How to Review Output

* **For single items,** you can edit the content using *markdown* syntax.
* **For multiple values,** you can edit the values and select/unselect them.
* After editing you can either choose to accept the reviewed content, or cancel the execution.

### Review in the Test Panel

As you test your workflow, you can access the review session by clicking on "Review":

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-50250d9fd1b4d86c00869377481d1f4d5907c7f5%2Fhuman-review-step-09-test-panel.png?alt=media" alt="Logs tab of a test run with the review banner and a Review Content button, and the Human Review step marked Needs Review"><figcaption><p>Review in the test panel.</p></figcaption></figure>

### Review in Real-Time when Running Once

When you Run Once, the review session will automatically appear, and your user can review the outputs in real-time:

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-f3d327e0755401ecfd40b3459f3f3da72af539b5%2Fhuman-review-step-10-run-once.png?alt=media" alt="Run Once page of the Launch Blog Title Picker with the Review Needed panel listing blog titles to select"><figcaption><p>Review when running once.</p></figcaption></figure>

### Review Asynchronously in the History

To review executions asynchronously, you can review them in the **History** tab:

1. Click on **History** to view all executions
2. Filter the **Status** to **Review needed**
3. Click on **View** in the Actions column
4. Click on **Review** to review the output and continue the execution

<figure><img src="https://3762890407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-734c757f05f6eaaf361010983bad2c6814926971%2Fhuman-review-step-11-history.png?alt=media" alt="History tab with an execution marked Review needed and its Details tab open on Review Content"><figcaption><p>Review from the History tab.</p></figcaption></figure>


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/actions/workflow-concepts/workflow-steps/flow/human-review.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
