Crow Canyon Software Forum

Forum Navigation
Please or Register to create posts and topics.

How to simulate a pause or random delay in NITRO workflow?

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

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:
  • Screenshot-2025-07-25-231805.png

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

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:
  • Screenshot-2025-08-01-011936.png

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

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?

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

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:

  1. Go to NITRO Workflow Manager → New → select ‘An item is modified’ as the event type → click OK.
  2. Open Settings and set the random delay with Min: 500 seconds, Max: 600 seconds. This will give a delay of 9 minutes
  3. Add a Send Mail action to notify the user once all approval items are approved and publish the workflow

 

 

Uploaded files:
  • Screenshot-2025-08-14-022425.png

Perfect, just what I was looking for!

Art