Flow Designer

Add an Approval Step to a Flow

Flows need human approval for decisions automation can't make — budget approvals, security reviews, or manager sign-offs. This guide shows you how to pause a flow, collect approvals, and branch based on the outcome.

Why flows need approval gates

Before approval actions, developers built approval workflows with complex conditional logic, manual state management, and brittle email-based processes. Process owners — HR managers, IT directors, finance teams — couldn't see what was waiting for their approval or track what they'd already decided. Users submitting requests got no visibility into where things stood. The result was shadow processes where people bypassed the system entirely and handled approvals through email chains and hallway conversations.

How flow approvals work

The Ask For Approval action creates approval records, sends notifications to approvers, and pauses flow execution until someone decides. You specify who approves (users, groups, or both), whether you need consensus or just one person, and timeouts for escalation. The action returns approved, rejected, or cancelled — your job is building If conditions that handle each outcome appropriately. Most flows start with simple user-based approvals and add group fallbacks, escalation timers, and conditional approval chains as requirements get more complex.

Production approval enhancements

Once basic approvals work, the improvements that matter are: adding approval history that shows who decided what and when, building escalation paths for overdue approvals, and creating approval summary emails that give approvers context without forcing them to open ServiceNow. Well-designed approval flows also handle edge cases — what happens if an approver gets deactivated mid-approval, or if someone needs to recall a request that's already been submitted.

Before you start

  • flow_designer role or admin
  • Existing flow where you want to add approval
Sourdough
Chrome Extension

Sourdough: ServiceNow Monitoring and Analytics

A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.

Instance HealthGraphs & ChartsAPI HealthDeveloper ToolsQuick SearchInstance Switcher
Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Step by step

1

Open your flow in Flow Designer

Navigate to Process Automation > Flow Designer and open the flow where you need approval. Click the plus icon where you want to insert the approval step — typically after data collection but before any irreversible actions like record creation or external API calls.

2

Add the Ask For Approval action

In the action picker, search for 'Ask For Approval' and select it from the ServiceNow Core spoke. This action handles the approval record creation, notifications, and response collection automatically. Don't use custom approval scripts or the legacy workflow approval activities.

3

Configure the approval request

Set the Journal field to a clear summary of what needs approval — include key details like amounts, user names, or request types. Set Table to the record being approved (often the triggering record). The Short description becomes the approval notification subject line, so make it scannable.

TIP

Use data pills from earlier flow steps to make the journal dynamic — 'Approve laptop request for John Smith, total cost $1,200' is better than generic text.

4

Set the approval rules

Choose 'Anyone approves' if one person can decide, or 'Everyone must approve' if you need consensus. Add approvers in the Approvers field — you can mix individual users and groups. If using groups, approval goes to all group members based on your approval rule choice. Set Due date if you want automatic escalation or rejection after a timeout.

5

Build approval outcome branches

After the approval action, add an If condition. Set the condition to 'Ask For Approval > Approval State' equals 'approved'. In the Then path, add actions for approval (create records, send notifications, etc.). Click 'Add Else If' to handle 'rejected' state with different actions like sending denial emails or updating status fields.

6

Test the approval flow

Save and test the flow with a non-admin user account. Verify the approval record appears in the approver's approval queue and that email notifications send properly. Test both approval and rejection paths to confirm your branching logic works. Check that approval records on the sysapproval_approver table contain the expected journal and approver information.

Best practices

  • Always set a meaningful journal field with specific request details — generic approval text leads to rubber-stamp approvals or delays while approvers hunt for context.

  • Use 'Anyone approves' for most business cases unless you specifically need unanimous consent — 'Everyone must approve' creates bottlenecks when one person is unavailable.

  • Set due dates on approval requests to prevent requests from sitting indefinitely, but make them realistic — 2-3 business days minimum for most approval types.

  • Handle the 'cancelled' approval state in your branching logic — users can cancel their own requests, and you need to clean up any related records or status updates.

  • Don't query the sysapproval_approver table directly in flows — use the action's output variables instead to avoid timing issues with approval record creation.

Test Your Knowledge

Quick 3-question quiz — see how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue