Wait

typed block

Pauses the flow for a specified duration, or until a specified event happens, whichever happens first.

Factories

Wait

Wait() -> WaitHandle

Construct a fresh Wait block with an auto-generated id.

Use this when authoring from scratch, the runtime picks a UUID automatically.

Wait

Wait(id: String) -> WaitHandle

Construct a Wait block with an operator-supplied id.

ParameterTypeRequiredDescription
idStringyesWire identifier, typically a Connect UUID restored by decompile so round-trips stay byte-stable.

Methods

events

events(value?: Array<WaitEvent>) -> WaitHandle

Set the Events parameter. The event that resumes the Wait action down its branch of the same name, as a one-element array (.events(["CustomerReturned"])). Measured 2026-10-14: Connect accepts CustomerReturned and BotParticipantDisconnected in their exact case, at most one of them, and one in place of the array; it refuses Continue, which the console's WaitEvent enum also lists. BotParticipantDisconnected requires the ParticipantNotFound error branch.

ParameterTypeRequiredDescription
valueArray<WaitEvent>noThe event that resumes the Wait action down its branch of the same name, as a one-element array (.events(["CustomerReturned"])). Measured 2026-10-14: Connect accepts CustomerReturned and BotParticipantDisconnected in their exact case, at most one of them, and one in place of the array; it refuses Continue, which the console's WaitEvent enum also lists. BotParticipantDisconnected requires the ParticipantNotFound error branch.

time_limit_seconds

time_limit_seconds(value: String) -> WaitHandle

Set the TimeLimitSeconds parameter. Maximum number of seconds the Wait action holds the contact before falling through to NoMatchingError. Wire shape is a stringified-integer ("900", "5"). Authors pass a string (.time_limit_seconds("30")).

ParameterTypeRequiredDescription
valueStringyesMaximum number of seconds the Wait action holds the contact before falling through to NoMatchingError. Wire shape is a stringified-integer ("900", "5"). Authors pass a string (.time_limit_seconds("30")).

continue_execution

continue_execution(value?: ContinueExecution) -> WaitHandle

Set the ContinueExecution parameter. Routes the contact down the Continue branch while the Wait holds it. Measured 2026-10-14: Connect accepts TRUE in any casing and rejects FALSE, yes, a JSONPath and the JSON boolean true.

ParameterTypeRequiredDescription
valueContinueExecutionnoRoutes the contact down the Continue branch while the Wait holds it. Measured 2026-10-14: Connect accepts TRUE in any casing and rejects FALSE, yes, a JSONPath and the JSON boolean true.

minimum_wait_time_seconds

minimum_wait_time_seconds(value?: String) -> WaitHandle

Set the MinimumWaitTimeSeconds parameter. Minimum seconds the Wait holds the contact, as a stringified integer or a JSONPath reference.

ParameterTypeRequiredDescription
valueStringnoMinimum seconds the Wait holds the contact, as a stringified integer or a JSONPath reference.

interruptible_events

interruptible_events(value?: Map<String, InterruptibleEvent (LambdaCompletion | ExternalToolCompletion)>) -> WaitHandle

Set the InterruptibleEvents parameter. Event-based wait branches, keyed by branch name; each entry holds exactly one of AsyncLambdaCompletionEvent or AsyncExternalToolCompletionEvent. Authored as .interruptible_events(#{ LambdaReturned: #{ AsyncLambdaCompletionEvent: #{ Identifier: "$.LambdaInvocation.InvocationId" } } }). Measured 2026-10-14: Connect refuses a branch name that is empty, longer than 100 characters, another Wait branch or a JSONPath reference it accepts as an Identifier.

ParameterTypeRequiredDescription
valueMap<String, InterruptibleEvent (LambdaCompletion | ExternalToolCompletion)>noEvent-based wait branches, keyed by branch name; each entry holds exactly one of AsyncLambdaCompletionEvent or AsyncExternalToolCompletionEvent. Authored as .interruptible_events(#{ LambdaReturned: #{ AsyncLambdaCompletionEvent: #{ Identifier: "$.LambdaInvocation.InvocationId" } } }). Measured 2026-10-14: Connect refuses a branch name that is empty, longer than 100 characters, another Wait branch or a JSONPath reference it accepts as an Identifier.

next

next(target: Handle) -> WaitHandle

Wire the success-path transition. Substitutes the target's auto-generated UUID into the wire Transitions.NextAction slot.

ParameterTypeRequiredDescription
targetHandleyesThe block to route to once this block completes successfully.

when

when(cond: ConditionHandle, target: Handle) -> WaitHandle

Append a Conditions[] branch. Multiple .when(...) calls chain, evaluation runs in source order, first match wins.

ParameterTypeRequiredDescription
condConditionHandleyesBuilt from the Cond::<op>(...) namespace, e.g. Cond::equals("42").
targetHandleyesBlock to route to when the condition matches.

on_no_matching

on_no_matching(target: Handle) -> WaitHandle

Wire an error transition for NoMatchingError: If no other Error matches.

ParameterTypeRequiredDescription
targetHandleyesBlock to route to on NoMatchingError. If no other Error matches.

on_participant_not_found

on_participant_not_found(target: Handle) -> WaitHandle

Wire an error transition for ParticipantNotFound: The supported event currently is "BotParticipantDisconnected".

ParameterTypeRequiredDescription
targetHandleyesBlock to route to on ParticipantNotFound. The supported event currently is "BotParticipantDisconnected".

set_id

set_id(id: String) -> WaitHandle

Override the auto-generated identifier with a specific wire id.

ParameterTypeRequiredDescription
idStringyesWire identifier override. Decompile threads this through to round-trip Connect-side UUIDs.

meta_position

meta_position(x: i64, y: i64) -> WaitHandle

Set the block's canvas position. Mostly auto-emitted by decompile; authored scripts call Flow.auto_layout() instead and let the layout pass fill positions in.

ParameterTypeRequiredDescription
xi64yesCanvas X coordinate.
yi64yesCanvas Y coordinate.

set_meta

set_meta(key: String, value: Dynamic) -> WaitHandle

Single-key escape hatch, set one ActionMetadata key by name when the typed meta_* setters don't cover it.

ParameterTypeRequiredDescription
keyStringyesWire key name (under Metadata.ActionMetadata[<id>]).
valueDynamicyesAny JSON-serializable Rhai value.

overwrite_meta

overwrite_meta(value: Map) -> WaitHandle

Full-replace escape hatch, overwrite the entire ActionMetadata blob.

ParameterTypeRequiredDescription
valueMapyesReplacement map for the entire ActionMetadata sub-object.

set_meta_param

set_meta_param(param: String, flag: String, value: Dynamic) -> WaitHandle

Set a single per-parameter ActionMetadata flag.

ParameterTypeRequiredDescription
paramStringyesParameter name (e.g. "Text").
flagStringyesFlag name ("useDynamic", "MFLAG_*", etc.).
valueDynamicyesFlag value.

overwrite_meta_param

overwrite_meta_param(param: String, value: Map) -> WaitHandle

Replace the entire flag map for one parameter.

ParameterTypeRequiredDescription
paramStringyesParameter name.
valueMapyesReplacement flag map for the parameter.

overwrite_parameters

overwrite_parameters(value: Map) -> WaitHandle

Wire-shape escape hatch, overwrite the entire Parameters blob.

ParameterTypeRequiredDescription
valueMapyesReplacement parameter map for the block.

raw_transitions

raw_transitions(value: Map) -> WaitHandle

Wire-shape escape hatch for non-canonical transition objects.

ParameterTypeRequiredDescription
valueMapyesReplacement transitions map (raw JSON shape).