Service Catalog

Add an Approval to a Catalog Item

Catalog items without approvals create obvious risks — anyone can request expensive software or hardware without oversight. This guide walks you through adding manager or group approval steps that gate fulfillment until someone with authority signs off.

Why catalog requests need approval gates

Without approvals, your service catalog becomes a free-for-all where users can request anything and fulfillment teams have to process everything. The people affected are requesters (who get frustrated when expensive requests get rejected after fulfillment starts), approvers (who need visibility into what their people are requesting), and fulfillment teams (who waste time on requests that should never have been approved). Manual approval processes — email chains, verbal approvals, spreadsheet tracking — create delays and lose audit trails that compliance teams need.

How catalog approvals work

ServiceNow catalog approvals use three components that work together: an approval policy on the catalog item that defines when approvals are required, a fulfillment workflow or flow that includes the approval activity, and approval records that track who approved what. You start with a simple manager approval that fires on every request, then add conditions to the approval policy so approvals only trigger for high-value items or specific user groups. The approval step sits in your fulfillment process — requests get submitted, routed for approval, and only move to fulfillment teams after approval completes.

Building production-ready approval processes

Basic approvals work for simple use cases, but production environments need delegation chains (so requests don't stall when managers are out), escalation timers (so approvals don't sit forever), and conditional logic (so routine requests bypass approval while expensive ones require multiple approvers). You'll also want approval summary emails that give approvers context about what they're approving, and integration with existing approval workflows your organization already uses for purchasing or access requests.

Before you start

  • catalog_admin or admin role
  • Existing catalog item with a fulfillment workflow or flow
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 catalog item

Navigate to Service Catalog > Catalog Definitions > Maintain Items and open the catalog item that needs approval. If you're using Flow Designer for fulfillment (recommended for new implementations), you'll add the approval activity to your existing flow. If you're using legacy Workflows, you'll modify the workflow assigned to the item's Workflow field.

2

Create the approval policy

In the catalog item record, scroll to the Approval Policy section. Click New to create an approval policy. Set the Approval Type to 'Manager' for manager approval or 'Group' for group-based approval. If using Group approval, specify the group in the Approving Group field. Leave the Condition field blank initially — this makes approval required for all requests.

TIP

Create the approval policy first even if you're using Flow Designer — the policy controls whether the approval activity in your flow actually fires.

3

Add approval to Flow Designer

If using Flow Designer, open your fulfillment flow and add an 'Ask for Approval' flow logic step before your fulfillment activities. Set the Approval Type to match your approval policy (Manager or Group). For Manager approval, map the 'Requested for user' field from your trigger to the User field. For Group approval, specify the same group you used in the approval policy. Configure the approval summary to include relevant request details.

TIP

Place the approval step after any automated validations but before expensive fulfillment activities — you don't want to provision resources before getting approval.

4

Configure legacy workflow approval

If using legacy Workflows, edit the workflow assigned to your catalog item. Add an 'Approval - User' activity for manager approval or 'Approval - Group' activity for group approval. Set the approval activity to run after the 'Begin' activity and before fulfillment activities. Configure the User field to ${current.requested_for.manager} for manager approval, or specify the approving group for group approval. Connect the approval activity's 'Approved' transition to your fulfillment activities and the 'Rejected' transition to an 'End' activity.

5

Test the approval flow

Submit a test request for the catalog item using a non-admin account. Verify that the request goes to 'Waiting for Approval' state and that the designated approver receives an email notification. Have the approver approve or reject the request and confirm that approved requests continue to fulfillment while rejected requests close properly.

TIP

Test with a user whose manager is clearly defined in their profile — missing manager relationships are the most common cause of approval routing failures.

6

Add conditional approval logic

Return to the approval policy on your catalog item and add conditions to the Condition field to control when approvals fire. Use JavaScript conditions like 'current.price > 500' to require approval only for expensive items, or 'current.requested_for.department.name == "Executive"' to require approval for specific departments. Leave the condition blank if you want approval required for every request.

TIP

Test conditional logic thoroughly — a syntax error in the condition field will either block all approvals or bypass them entirely.

Best practices

  • Set a fulfillment group directly on the catalog item even when using flows — if the approval or flow breaks, requests won't vanish into limbo.

  • Always configure delegation on approval activities so requests don't stall when approvers are unavailable — use the manager's manager or a backup group.

  • Don't put complex business logic in approval policy conditions — use a Script Include function that you can test and reuse across multiple items.

  • Configure approval reminder emails and escalation timers — approvals that sit forever kill user satisfaction with the service catalog.

  • Never use sys_id values in approval policy conditions — they break when you clone instances or promote between environments.

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