Native ability to trigger some action once after a given timeout

Currently there seems to be only the option to fire certain events repetitively after some time, e.g. every X seconds.

It would be nice if there was also a native option to fire a trigger only once after some specified timeout.

Currently we achieve this using a custom widget with a simple timeout in it.

We use this to e.g. show the operator a more elaborate confirmation message before the app switched back to the next step.

Hey @sebme -

Would a ‘sleep’ trigger action achieve this? Sleep could be added in order within your trigger actions, and would delay the next action from happening for x seconds?

As a little context - There is a feature flag that does actually enable this trigger action, we don’t have it on by default, because triggers don’t run asynchronously, so while this sleep is happening, the app freezes. This could be resolved so that sleep can run async though (I think, would need to double check with engineering).

Pete

I guess this would work?

In reading your question back, I think I may have misunderstood it initially-

The underlying issue is you want what exists with a timer trigger, but you only want it to run once? Additionally you want the triggering condition to be some other event (like users clicking a button that displays a message). Is this right?

How do you picture us implementing this? Maybe triggers have a start timer function, then the timer trigger automatically fires when that timer expires? I don’t love that as a solution, but also don’t see any reason it wouldn’t work.

Pete

Hi Pete,

not sure I follow you here…

I am essentially just looking for a way to temporarily delay the execution of a trigger.

The trigger could be a simple trigger action called “timeout” where you specify a delay time… after the delay time is passed, the next trigger/transition is executed.

That way I could put this into an “on step enter” action followed by a transition to the next step.

What do you think?