Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Stages in Flow Desiner do not work with parallel activity. Need help.

saint
Tera Expert

Hi Experts,

I have a flow configured on a catalog item where I typically use stages with flow steps to keep the stage updated on the RITM and inform the end user about the request status. Recently, I tried creating a flow with a parallel action:

  • Branch 1: Waits for approval to be completed.
  • Branch 2: Waits for 10 days, then auto-approves the request with a comment.

Since flows are inherently sequential, I need to use a parallel branch for this logic. Outside of this parallel action, my stages are set for the requested items. The last action before the parallel activity sets the stage to “Waiting for Approval.” However, I noticed that I cannot apply a stage inside the parallel activity, which seems odd.

Has anyone encountered this scenario or found a working solution?

9 REPLIES 9

MaxMixali
Kilo Sage

Hello i hope that can help


This is a known limitation in ServiceNow Flow Designer when working with parallel branches and RITM stages. Here are some approaches that have worked for others facing this issue:
Workaround Solutions
1. Post-Parallel Stage Update
Set your next stage immediately after the parallel action completes. The parallel action will wait until one branch finishes (whichever completes first - approval or timeout), then you can update the stage based on which branch succeeded.
[Set Stage: "Waiting for Approval"]

[Parallel Action]
→ Branch 1: Wait for Approval
→ Branch 2: Wait 10 days → Auto-approve

[Conditional Logic: Check approval outcome]

[Set Stage: "Approved" or "Auto-Approved"]
2. Use Subflows with Stage Updates
Create separate subflows for each parallel branch and call them using the "Run Subflow" action. Subflows can manipulate the parent RITM's stages:

Subflow 1: Waits for approval, then updates stage
Subflow 2: Waits 10 days, auto-approves, then updates stage

However, be aware that parallel subflows updating the same record can sometimes cause locking issues.
3. Script Step Workaround
After the parallel action, use a Script step to programmatically update the stage based on how the approval was completed:
javascriptvar ritm = new GlideRecord('sc_req_item');
if (ritm.get(fd_data.ritm_sys_id)) {
if (fd_data.approval_source == 'timeout') {
ritm.stage = 'auto_approved';
} else {
ritm.stage = 'approved';
}
ritm.update();
}
4. Event-Based Stage Management
Instead of updating stages within the parallel branches, have each branch fire different events, then use separate flows (triggered by those events) to handle stage updates on the RITM.


If you find this answer useful, please mark it as solution accepted/helpful

Massimiliano Micali

 

Hi @MaxMixali,

 

can you be more specific? what you wrote seems a little bit chaotic. You mentioned updating stages but skipped states... it doesn't make much sense or what am I missing?

Your account has a long history with posting irrelevant #AI_slop and this seems to be a continuation of it.

Do you really think this helps anyone?

———
/* If my response wasn’t a total disaster ↙️ drop a Kudos or Accept as Solution ↘️ Cheers! */


Let me ask one point why you continue to look on my contribution in this way: do you a problem with me.  You came from Thirdera I was in Cognizant for several years. 

 

 



SAFE: Status: RITM standard field: sc_req_item.state Typical values: Open, Work in Progress, Closed Complete, Closed Incomplete Automatically updates based on the workflow Stage: Separate field: sc_req_item.stage Defined in: Catalog Item > Stages tab Examples: "Pending Approval", "In Progress", "Completed" Serves to provide end-user visibility into the status of the request. Does NOT update automatically - must be set manually in the flow. The Problem: You cannot update the stage within the parallel action in Flow Designer. The Solution: Update the stage after the parallel action is completed.

I don't have problem with anyone, I just don't like that you share non-existing and unvalidated stuff :))

———
/* If my response wasn’t a total disaster ↙️ drop a Kudos or Accept as Solution ↘️ Cheers! */