Service Catalog

Set Up Two-Stage Approval on a Catalog Item

Two-stage approvals handle requests that need both a manager's sign-off and a business owner's approval before fulfillment. This guide walks you through building sequential approvals in Flow Designer that pass catalog variables to both approval stages.

Why single-stage approval breaks down

Most catalog items start with simple manager approval, but business-critical requests often need a second approval from the team that owns the resource or budget. Without proper two-stage flow, teams resort to manual handoffs — the manager approves, then someone emails the business owner, who responds with approval buried in their inbox. The requester has no visibility, and requests stall when approvers don't know what variables were originally submitted or what the manager already reviewed.

How sequential approval flows work

Two-stage approval uses Flow Designer with Request Item trigger and two sequential Approval actions. The first approval typically routes to the requester's manager using the built-in approval engine, then conditionally proceeds to a second approval action targeting a specific group. The key difference from parallel approval: the second stage only executes if the first approves, and both approval records link to the same request item so variable data flows through. You'll configure each approval action independently — different approvers, different approval criteria, but shared context from the original request.

Production improvements and extensions

Once basic sequential approval works, common enhancements include adding approval delegation when managers are out, timeout escalation for stalled second-stage approvals, and custom approval layouts that highlight the most important catalog variables. More sophisticated implementations add conditional routing — different second-stage groups based on request amount or type — and approval history that shows both stages in the request item's activity stream.

Before you start

  • catalog_admin role or admin role
  • Flow Designer basic experience
  • Catalog item already created and active
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

Create the approval flow

Navigate to Process Automation > Flow Designer and click New > Flow. Name it descriptively like "Two Stage Approval - [Item Name]". Set the Application scope to match your catalog item's application. In the trigger section, select "Request Item" from the Service Catalog application scope and choose "Created" as the trigger condition.

TIP

Name flows with the catalog item name — you'll have dozens of approval flows eventually and generic names make troubleshooting painful.

2

Add the first approval action

Click the plus icon after the trigger and select Action > Service Catalog > Ask for Approval. Set the Approval For field to the Request Item record (drag from Data Pills). Set Journal field to "Pending manager approval" or similar. For Approvers, choose "Manager of Requested For" from the dropdown. Set Due date to 5 business days from now using the relative date picker.

TIP

Always set a due date on approval actions — approvals without deadlines sit indefinitely and users lose trust in the process.

3

Configure first approval details

In the same approval action, set Approval action to "Approve or Reject". Check "Wait for approval" so the flow pauses until decided. In the Advanced section, set Generate event to "Never" unless you need custom approval notifications. Leave other fields default and click Done to close the action configuration.

TIP

"Wait for approval" is critical for sequential flows — without it, both approval stages fire simultaneously and you get parallel approval instead.

4

Add conditional logic for second stage

Add another action after the first approval, but choose Logic > If. Set the condition to check if the first approval outcome equals "approved". Use the data pill from the first Ask for Approval action's "State" output. This ensures the second approval only runs when the first stage approves.

TIP

Test the condition logic by examining the Ask for Approval action's output data pills — "State" contains values like "approved", "rejected", or "cancelled".

5

Configure the second approval action

Inside the If branch (when first approval is approved), add another Ask for Approval action. Set Approval For to the same Request Item record. For Approvers, select "Group" and choose your target approval group. Set Journal field to something like "Pending [group name] approval". Configure the due date and ensure "Wait for approval" is checked.

TIP

Reference the original request item variables in the Journal field using request item data pills — approvers see the context without opening the full request.

6

Handle final approval outcomes

After the second approval action, add another If condition to check the second approval state. In the approved branch, add an Update Record action targeting the Request Item to set State to "Approved" and add a work note. In the Else branch (rejected), set State to "Rejected". Save and activate the flow.

TIP

Explicitly set the request item state in your flow — don't rely on the approval actions to do it automatically, as the behavior varies by instance configuration.

7

Connect flow to catalog item

Navigate to Service Catalog > Catalog Definitions > Maintain Items and open your catalog item. In the Process Engine tab, set Workflow to "None" and Flow to your newly created flow. Save the catalog item. Test by submitting a request and verifying both approval stages execute in sequence.

TIP

Clear any existing workflow before setting the flow — having both configured causes unpredictable approval behavior.

Best practices

  • Always set explicit due dates on both approval stages — approvals without deadlines become orphaned and break the user experience.

  • Use descriptive Journal field text that includes key request details — approvers shouldn't need to dig into the request to understand what they're approving.

  • Set the request item state explicitly in your flow rather than relying on approval action defaults — instance configurations vary and explicit state management prevents approvals from getting stuck.

  • Test rejection scenarios thoroughly — most approval flows handle the happy path but break when the first or second stage rejects.

  • Never use parallel approval actions when you need sequential approval — the "Wait for approval" checkbox is what makes stages sequential, not the order of actions in the flow.

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