Crow Canyon Software Forum
How to simulate a pause or random delay in NITRO workflow?
Quote from pf-amalin on July 25, 2025, 1:28 pmI don't see a way to pause a workflow in NITRO. Am I missing something, or is there a way to simulate a short delay? I’m considering looping or triggering actions a pseudo-random number of times based on
ID
,{now}
, etc., since there's no$random()
function either.Use case:
I have a workflow that runs on multiple items updated at the same time. I need to send one message once all related workflows are finished, but since they run concurrently, I can’t reliably tell when they’re all done.What I’ve tried:
✅ Querying for other items' status mid-workflow → doesn't work due to race conditions
✅ Updating counters or flags on a shared Master item → gets overwritten by other workflows
✅ Scheduling a separate workflow to run later → too delayed, unreliable timing
Has anyone come up with a creative way to handle pauses, delays, or coordination between concurrent item-level workflows?
Thanks!
—Art
I don't see a way to pause a workflow in NITRO. Am I missing something, or is there a way to simulate a short delay? I’m considering looping or triggering actions a pseudo-random number of times based on ID
, {now}
, etc., since there's no $random()
function either.
Use case:
I have a workflow that runs on multiple items updated at the same time. I need to send one message once all related workflows are finished, but since they run concurrently, I can’t reliably tell when they’re all done.
What I’ve tried:
-
✅ Querying for other items' status mid-workflow → doesn't work due to race conditions
-
✅ Updating counters or flags on a shared Master item → gets overwritten by other workflows
-
✅ Scheduling a separate workflow to run later → too delayed, unreliable timing
Has anyone come up with a creative way to handle pauses, delays, or coordination between concurrent item-level workflows?
Thanks!
—Art
Quote from supportTeam on July 25, 2025, 1:49 pmHi Art,
We have an option to delay the execution of the workflow, which is available in the workflow settings. Open/Edit the workflow -> Click on settings in the top bar -> Scroll down to find the option ‘Delay Execution’
If you're referring to something different, please share more details regarding it.
Hi Art,
We have an option to delay the execution of the workflow, which is available in the workflow settings. Open/Edit the workflow -> Click on settings in the top bar -> Scroll down to find the option ‘Delay Execution’
If you're referring to something different, please share more details regarding it.
Uploaded files:Quote from pf-amalin on July 25, 2025, 1:58 pmThanks for the response! I’m familiar with the Delay Execution option, but I don’t think it helps in this scenario. Since all the workflows are triggered around the same time, they’ll still run concurrently—even with the same delay applied.
What I’m trying to do is delay each workflow by a slightly different (random) amount of time, ideally between 5–10 seconds, to stagger their execution and avoid race conditions. More details are in the original post.
Appreciate any ideas!
—Art
Thanks for the response! I’m familiar with the Delay Execution option, but I don’t think it helps in this scenario. Since all the workflows are triggered around the same time, they’ll still run concurrently—even with the same delay applied.
What I’m trying to do is delay each workflow by a slightly different (random) amount of time, ideally between 5–10 seconds, to stagger their execution and avoid race conditions. More details are in the original post.
Appreciate any ideas!
—Art
Quote from supportTeam on July 31, 2025, 3:52 pmHi Art,
We also have a delay execution option within each action in NITRO Workflows. Please let us know if this suits your scenario. If not, we will further look into this.
Hi Art,
We also have a delay execution option within each action in NITRO Workflows. Please let us know if this suits your scenario. If not, we will further look into this.
Uploaded files:
Quote from pf-amalin on July 31, 2025, 6:33 pmI saw the “delay execution option within each action in NITRO Workflows,” but I don’t think it suits our scenario. If a pause is applied within the workflow, it delays all items equally — so they still run concurrently and the issue remains.
Here’s the context:
We have an Access Request process where one request creates multiple detail records (one per door). Each detail item is processed by a workflow triggered on modification. Approvers typically approve several items quickly in succession (often within a few seconds).
Each workflow:
Notifies IT when a door is approved
Notifies the requester when IT completes processing
The goal: Only send one notification per stage, after all doors are processed.
The challenge: Workflows run simultaneously, and we can't reliably tell when the last one finishes.
What we've tried:
✅ Querying other items' statuses → fails due to race conditions
✅ Updating shared flags/counters → values get overwritten
✅ Scheduled “finalizer” workflow → too delayed
We’ve considered building a separate “Pause” workflow that runs for a fixed time (e.g., 1 sec) and calling it a pseudo-random number of times per item (based on ID or similar) to stagger timing. But that's more complexity than we’d like.
We’ve also added a nightly scheduled workflow that sends a notification if all items are processed but no message has been sent — a fallback.
If there’s a cleaner way to coordinate these workflows or introduce unique timing per item, I’d love to hear it!
—Art
I saw the “delay execution option within each action in NITRO Workflows,” but I don’t think it suits our scenario. If a pause is applied within the workflow, it delays all items equally — so they still run concurrently and the issue remains.
Here’s the context:
We have an Access Request process where one request creates multiple detail records (one per door). Each detail item is processed by a workflow triggered on modification. Approvers typically approve several items quickly in succession (often within a few seconds).
Each workflow:
-
Notifies IT when a door is approved
-
Notifies the requester when IT completes processing
The goal: Only send one notification per stage, after all doors are processed.
The challenge: Workflows run simultaneously, and we can't reliably tell when the last one finishes.
What we've tried:
-
✅ Querying other items' statuses → fails due to race conditions
-
✅ Updating shared flags/counters → values get overwritten
-
✅ Scheduled “finalizer” workflow → too delayed
We’ve considered building a separate “Pause” workflow that runs for a fixed time (e.g., 1 sec) and calling it a pseudo-random number of times per item (based on ID or similar) to stagger timing. But that's more complexity than we’d like.
We’ve also added a nightly scheduled workflow that sends a notification if all items are processed but no message has been sent — a fallback.
If there’s a cleaner way to coordinate these workflows or introduce unique timing per item, I’d love to hear it!
—Art
Quote from supportTeam on August 1, 2025, 3:42 pmHi Art,
We will be adding random delay functionality to NITRO Workflows soon. Would this feature help resolve the challenge you're facing, where the email should be sent only after all workflows have finished executing?
Hi Art,
We will be adding random delay functionality to NITRO Workflows soon. Would this feature help resolve the challenge you're facing, where the email should be sent only after all workflows have finished executing?
Quote from pf-amalin on August 1, 2025, 7:27 pmThanks for the update — and yes, that would definitely help in this situation.
Ideally, it would involve two new Actions:
Random: Generate a random number. If it requires a seed, allow a parameter (e.g., use ID or another unique value) to ensure varied results between items.
Pause / Wait / Delay: Temporarily pause the workflow (or Custom Action) for a specified number of seconds or minutes.
That kind of functionality would go a long way toward solving race condition issues like we’re experiencing — and would likely be useful in a variety of other scenarios where workflows need to be staggered or made more dynamic.
Thank you again for your consideration!
—Art
Thanks for the update — and yes, that would definitely help in this situation.
Ideally, it would involve two new Actions:
-
Random: Generate a random number. If it requires a seed, allow a parameter (e.g., use ID or another unique value) to ensure varied results between items.
-
Pause / Wait / Delay: Temporarily pause the workflow (or Custom Action) for a specified number of seconds or minutes.
That kind of functionality would go a long way toward solving race condition issues like we’re experiencing — and would likely be useful in a variety of other scenarios where workflows need to be staggered or made more dynamic.
Thank you again for your consideration!
—Art
Quote from supportTeam on August 13, 2025, 4:55 pmHi Art,
We’ve released a new feature in NITRO Workflows that allows you to add a random delay before execution. You can find this option in the Settings of the workflow configuration.
To achieve your use case, we recommend creating a separate ‘Item Modified’ workflow with a random delay of 500 to 600 seconds. Follow these steps:
- Go to NITRO Workflow Manager → New → select ‘An item is modified’ as the event type → click OK.
- Open Settings and set the random delay with Min: 500 seconds, Max: 600 seconds. This will give a delay of 9 minutes
- Add a Send Mail action to notify the user once all approval items are approved and publish the workflow
Hi Art,
We’ve released a new feature in NITRO Workflows that allows you to add a random delay before execution. You can find this option in the Settings of the workflow configuration.
To achieve your use case, we recommend creating a separate ‘Item Modified’ workflow with a random delay of 500 to 600 seconds. Follow these steps:
- Go to NITRO Workflow Manager → New → select ‘An item is modified’ as the event type → click OK.
- Open Settings and set the random delay with Min: 500 seconds, Max: 600 seconds. This will give a delay of 9 minutes
- Add a Send Mail action to notify the user once all approval items are approved and publish the workflow
Uploaded files: