Approval
Pauses the flow until a person approves or rejects, then routes down the matching branch—true for approve, false for reject. Reach for it as a sign-off gate: publishing, spending, or anything else that needs a person's decision before the flow continues.
If the wait times out before anyone answers, the step fails instead of routing down either branch. See Human in the loop for how the deadline and failure path work.
Fields
| Field | Description |
|---|---|
| Question | What the approver is asked. Accepts variables—for example, "Publish ${article.title}?" Write it so it stands on its own: it is read in Slack or an email by somebody who cannot see the flow around it. |
| Deliver To | Where the request is pushed, and where the answer comes back from. Leave it empty and the request still holds the run and still appears on the Approvals page—it just waits for somebody to go and look. |
| Require a Comment | The approver can always leave a comment; this makes them. Whatever they write is recorded on the run and is available to later steps whichever way they answered. |
What later steps see
| Field | When it's there |
|---|---|
| approved | Whether the approver approved—except on a timeout, when the step fails instead and produces no outputs at all. See Human in the loop. |
| comment | Only when the approver left one (always present when Require a Comment is on). |
Where the request goes
Reaching the approver is this node's own business, authored on the node as the Deliver To channels it pushes the request to—the same mechanism an AI Agent uses for its own questions. The request also always appears on the Approvals page and can be answered there regardless of which channels are configured, including none. See Human in the loop for how a request is answered and how long it may wait before it fails the step.