> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.meetgail.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.meetgail.com/_mcp/server.

# Check

> Combines several conditions into a single labeled outcome your workflow can act on.

The Check node looks at a set of conditions in order and returns one label, such
as `APPROVED`, `NEEDS_REVIEW`, or `DECLINED`. It gives a workflow a single,
clear conclusion that later steps, reports, and dashboards can all read.

## When to use it

* You want one clear verdict after several earlier steps (a score, a status, a
  lookup) have run.
* You want that verdict to show up in run history and reporting so anyone can
  see what the workflow decided.
* You need a final result to hand back from a [Sub Graph](/platform/workflows/node-reference/logic-and-flow/sub-graph).

Check does not branch the workflow, it only produces a label. If you need the
run to follow different paths, use [Conditional](/platform/workflows/node-reference/logic-and-flow/conditional) instead.

## Inputs

| Field           | What it's for                                                     | Example                      |
| --------------- | ----------------------------------------------------------------- | ---------------------------- |
| Conditions      | An ordered list of yes/no tests. The first one that is true wins. | `Risk score is 80 or higher` |
| Outcomes        | The label for each condition, in the same order.                  | `APPROVED`                   |
| Default outcome | The label used when no condition is true.                         | `DECLINED`                   |

Conditions and outcomes are paired by position: the first condition maps to the
first outcome, the second to the second, and so on. Conditions are written as
[expressions](/platform/workflows/core-concepts/expressions/using-expressions-in-nodes) that read
values from earlier steps.

## Outputs

| Field   | What you get back                   |
| ------- | ----------------------------------- |
| Outcome | The single label that was selected. |

## Example

An agency runs a workflow that reviews inbound quote requests. Earlier steps
have already scored the applicant's risk and confirmed their documents are
complete. A Check node turns those results into one decision for Sarah Chen's
request:

* If risk score is 80 or higher and documents are complete, outcome is `APPROVED`.
* If risk score is 50 or higher, outcome is `NEEDS_REVIEW`.
* Otherwise, the default outcome is `DECLINED`.

Because Check evaluates conditions top to bottom and stops at the first match,
list the strictest condition first. The chosen label then appears in the run's
history and can be read by any step that follows.

![The Check node configuration panel, showing conditions paired with outcomes and a default outcome.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/gail.docs.buildwithfern.com/36e68ff6deecfee525e55b06db805eb5dc942ef3784105a909e12c8599684548/docs/pages/platform/workflows/assets/logic-and-flow-check.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260823%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260823T232905Z&X-Amz-Expires=604800&X-Amz-Signature=fae976448bbeb34037509a7b92a5ecf164ed4dae7aee095c3db3b15ee1deb3c5&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

All conditions are evaluated when the node runs. If a condition points at a
value that does not exist (for example, a step that was skipped), the run
stops with an error, even if an earlier condition already matched. Make sure
every value a condition reads is actually available by the time Check runs.

## Related nodes

#### [Conditional](/platform/workflows/node-reference/logic-and-flow/conditional)

Send the run down different paths instead of producing a single label.

#### [Sub Graph](/platform/workflows/node-reference/logic-and-flow/sub-graph)

Use Check as the final step to hand a clean outcome back to the parent workflow.