- Introduction
- Getting started
- Building with Maestro BPMN
- Understanding Maestro BPMN modeling
- Opening the modeling canvas
- Modeling your process
- Aligning and connecting BPMN elements
- Autopilot for Maestro (Preview)
- Process Repository
- Implementing a simple BPMN process
- Implementing a complex BPMN process
- Debugging
- Simulating
- Evaluations (Preview)
- Common implementation scenarios
- Building with Maestro Case
- Introduction to Maestro Case
- Maestro BPMN vs. Maestro Case: when to use case management
- The Maestro Case lifecycle: from event trigger to app experience
- Build your first case with Maestro Case
- Build a Maestro Case with a coding agent (preview)
- Defining case keys (system vs. external)
- Establishing task I/O and write-back contracts
- Exit rules and early stage termination
- Modeling primary and secondary stages
- Triggering a case from Data Fabric
- Implementing stage-level personas and permissions
- Setting SLAs and automated escalation rules
- Configuring a rework loop (re-entry)
- Configuring and testing the Case Manager Agent (preview)
- Case Manager input and output contract
- Maestro Case component dictionary
- Building with Maestro Flow
- Maestro Automate
- Integrations
- Operating
- Monitoring
- Optimizing
- Reference information
Pause a workflow at a review step, send an approval task to a designated person, and continue based on their response.
What you'll build: A process that pauses at a review step, sends an approval task to a designated person, and continues on the correct path once they respond, approved or rejected. This pattern is the building block for any process that requires a human sign-off before proceeding.
This guide uses the Quick Form task type, where you build the approval form directly on the Human node.
What you'll need
- A UiPath Automation Cloud account with access to Maestro Flow.
Nodes used
- Manual Trigger: starts the process on demand
- Human: pauses execution and creates an approval task for the assigned approver
- Terminate: ends the rejected path cleanly
Steps
1. Build the pre-approval steps
First, set up the nodes that run before the approval point. Create a new flow and add the nodes that fetch or receive the data the approver needs to review, then transform it into a readable format.
2. Add a Human node
Add the node that creates the approval task and pauses the process.
- Drag a Human node from the UiPath nodes section onto the canvas.
- Connect it to the last pre-approval node.
- In the properties panel, configure the task:
- Type: leave set to Quick Form.
- Task Delivery: review the admin-configured channels where the task is delivered, such as Action Center or Slack.
- Assignment criteria: set the approver as a single user, a variable-based custom assignment, or a group assignment strategy such as round robin or workload distribution.
- Schema: define the form. Add input fields for the read-only context the approver reviews (for example, the invoice amount, the requester name, and a link to the supporting document), each bound to a process value such as
$vars.manualTrigger1.output["amount"]. For this scenario, add two outcomes: Approve and Reject. - Priority: set to High if the task is time-sensitive.
3. Branch on the approver's response
The Human node has one output handle per outcome you defined, so you route each outcome directly.
- Connect the Approve outcome handle to the continuation of your process (for example, a system write or a notification).
- Connect the Reject outcome handle to a Terminate node to end that path cleanly.
4. Test and debug
You don't need a real approver to test this flow. Choose one of the following approaches.
- Run in debug without mocking: Debug the flow and let it reach the Human node. The task opens inline within the canvas, so you can complete it without leaving the debugger and verify both the Approve and Reject branches using the actual task experience.
- Use Mock output: Simulate a response instead of completing a task.
- Select the Human node and open Mock output in the properties panel.
- Enable the mock toggle.
- Set
statustoApprove(orRejectto test the rejection branch). - Debug the flow and verify the correct branch executes.
- Remove the mock before publishing.
Result
Your process pauses at the Human node, sends the approval form to the designated person, and routes execution on the correct path once they respond. The approved path continues the automation; the rejected path terminates cleanly.
Extend this flow
- Notify the approver: before the Human node, add a notification step (email or Slack) to tell the approver that a task is waiting.
- Escalate on rejection: on the Reject path, instead of terminating immediately, invoke an Autonomous Agent or route to a second approver.
- Collect the approver's notes: add an output field to the schema (for example, a comment) and read it after the node with
$vars.approval.output.comment.