๐Ÿ‡ฌ๐Ÿ‡ง EN
๐Ÿ‡ฎ๐Ÿ‡น IT

โœ… Approval

Pauses the workflow and waits for a human to approve or reject the action before continuing. An in-app notification and (optionally) an email is sent to the assigned approver. If approved, the workflow continues to the next step. If rejected, the workflow stops with a status reflecting the rejection.

Category: Human / User Interaction  ยท  Type identifier: approval

Overview

The Approval node introduces a human decision point into an otherwise automated workflow. When execution reaches this node, the workflow enters Waiting status and a task card appears on the Tasks page for the assigned approver. The approver reads the title and description, then clicks Approve to allow the workflow to continue or Reject to stop it.

This is essential for workflows that carry real-world consequences โ€” sending bulk emails, making financial transactions, publishing content, or triggering irreversible actions โ€” where a human sign-off is required before proceeding.

Rejected runs end immediately. If you need to take action on a rejection (e.g. notify the content team), add a In-App Notification or Email Notification node before the Approval node, or build a separate error-handling workflow.

Configuration

FieldStatusDescription
Assignee Required Email address or user ID of the person who should approve. Supports {{ variable }} references.
Title Required Short description shown to the approver, e.g. Approve invoice #{{ trigger.output.invoice_id }}.
Description Optional Longer explanation to help the approver make their decision. Supports {{ variable }} references.
Timeout Optional Maximum time to wait for a response, in minutes. If the timeout expires without a decision, the workflow fails. Leave blank to wait indefinitely.
Send Email Optional Toggle. When on, sends an email to the assignee in addition to the in-app notification. Requires SMTP to be configured in Settings.

Output Data

These fields are available to subsequent steps if the workflow was approved. A rejected workflow terminates without producing output.

FieldTypeDescription
approvedbooleanTrue if the approver clicked Approve, false if they clicked Reject.
decisionstringapproved or rejected.
decided_bystringEmail or user ID of the person who made the decision.
decided_atstringISO 8601 timestamp of the decision.
notesstringOptional comment entered by the approver when making their decision.
{{ step_key.output.approved }} {{ step_key.output.decided_by }} {{ step_key.output.notes }}

Example Usage

  1. An Agent node drafts a marketing email and stores it in its output.
  2. An Approval node is configured with the marketing manager's email as the Assignee. The Title reads Review and approve the campaign draft, and the Description includes {{ agent.output.text }} so the manager sees the full draft inline.
  3. If the manager clicks Approve, the workflow continues to an Email Notification node that sends the campaign to the mailing list.
  4. If the manager clicks Reject, the workflow stops. An earlier In-App Notification node (placed before the Approval node) has already alerted the content team to stand by for feedback.

Tips & Notes

Related Nodes