Sets a collection of attributes on the current flow. These attributes are not carried over to the subsequent flows. With this type of operation, either all attributes are set or none are set.
Factories
UpdateFlowAttributes
UpdateFlowAttributes() -> UpdateFlowAttributesHandle
Construct a fresh UpdateFlowAttributes block with an auto-generated id.
Use this when authoring from scratch, the runtime picks a UUID automatically.
UpdateFlowAttributes
UpdateFlowAttributes(id: String) -> UpdateFlowAttributesHandle
Construct a UpdateFlowAttributes block with an operator-supplied id.
| Parameter | Type | Required | Description |
id | String | yes | Wire identifier, typically a Connect UUID restored by decompile so round-trips stay byte-stable. |
Methods
flow_attributes
flow_attributes(value: Map<String, String>) -> UpdateFlowAttributesHandle
Set the FlowAttributes parameter. Flow attributes written for the duration of THIS flow execution (scope $.FlowAttributes.<key>). On the wire each value is wrapped in an object: Parameters.FlowAttributes = { "<key>": { "Value": "<string>" } } — distinct from UpdateContactAttributes.Attributes, which is a flat Map<String,String>. The typed setter stores the Rhai map verbatim via Dynamic, so author the wrapped form directly: .flow_attributes(#{ MyKey: #{ Value: "literal-or-$.JSONPath" } }). Empirically required — Connect rejects a flat { "MyKey": "v" } with a (misleading) Invalid Action type (probe, the Connect test instance 2026-05-29; see [[connect-attribute-scoping-across-edges]]). Flow attributes are strictly flow-execution-scoped: they do NOT survive a TransferToFlow and do NOT cross an InvokeFlowModule boundary in either direction.
| Parameter | Type | Required | Description |
value | Map<String, String> | yes | Flow attributes written for the duration of THIS flow execution (scope $.FlowAttributes.<key>). On the wire each value is wrapped in an object: Parameters.FlowAttributes = { "<key>": { "Value": "<string>" } } — distinct from UpdateContactAttributes.Attributes, which is a flat Map<String,String>. The typed setter stores the Rhai map verbatim via Dynamic, so author the wrapped form directly: .flow_attributes(#{ MyKey: #{ Value: "literal-or-$.JSONPath" } }). Empirically required — Connect rejects a flat { "MyKey": "v" } with a (misleading) Invalid Action type (probe, the Connect test instance 2026-05-29; see [[connect-attribute-scoping-across-edges]]). Flow attributes are strictly flow-execution-scoped: they do NOT survive a TransferToFlow and do NOT cross an InvokeFlowModule boundary in either direction. |
next
next(target: Handle) -> UpdateFlowAttributesHandle
Wire the success-path transition. Substitutes the target's auto-generated UUID into the wire Transitions.NextAction slot.
| Parameter | Type | Required | Description |
target | Handle | yes | The block to route to once this block completes successfully. |
on_no_matching
on_no_matching(target: Handle) -> UpdateFlowAttributesHandle
Wire an error transition for NoMatchingError: Route to take when Connect rejects the UpdateFlowAttributes action at runtime. The doc-inferred block-def declared errors: [], but real production flows carry Errors[NoMatchingError] entries that Connect accepts on deploy — decompiling such a flow against the pre-overlay catalogue produced .on_error_raw(...) calls that the compiler refused because the typed surface had no error branch registered.
| Parameter | Type | Required | Description |
target | Handle | yes | Block to route to on NoMatchingError. Route to take when Connect rejects the UpdateFlowAttributes action at runtime. The doc-inferred block-def declared errors: [], but real production flows carry Errors[NoMatchingError] entries that Connect accepts on deploy — decompiling such a flow against the pre-overlay catalogue produced .on_error_raw(...) calls that the compiler refused because the typed surface had no error branch registered. |
set_id
set_id(id: String) -> UpdateFlowAttributesHandle
Override the auto-generated identifier with a specific wire id.
| Parameter | Type | Required | Description |
id | String | yes | Wire identifier override. Decompile threads this through to round-trip Connect-side UUIDs. |
meta_position
meta_position(x: i64, y: i64) -> UpdateFlowAttributesHandle
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.
| Parameter | Type | Required | Description |
x | i64 | yes | Canvas X coordinate. |
y | i64 | yes | Canvas Y coordinate. |
set_meta
set_meta(key: String, value: Dynamic) -> UpdateFlowAttributesHandle
Single-key escape hatch, set one ActionMetadata key by name when the typed meta_* setters don't cover it.
| Parameter | Type | Required | Description |
key | String | yes | Wire key name (under Metadata.ActionMetadata[<id>]). |
value | Dynamic | yes | Any JSON-serializable Rhai value. |
overwrite_meta
overwrite_meta(value: Map) -> UpdateFlowAttributesHandle
Full-replace escape hatch, overwrite the entire ActionMetadata blob.
| Parameter | Type | Required | Description |
value | Map | yes | Replacement map for the entire ActionMetadata sub-object. |
set_meta_param
set_meta_param(param: String, flag: String, value: Dynamic) -> UpdateFlowAttributesHandle
Set a single per-parameter ActionMetadata flag.
| Parameter | Type | Required | Description |
param | String | yes | Parameter name (e.g. "Text"). |
flag | String | yes | Flag name ("useDynamic", "MFLAG_*", etc.). |
value | Dynamic | yes | Flag value. |
overwrite_meta_param
overwrite_meta_param(param: String, value: Map) -> UpdateFlowAttributesHandle
Replace the entire flag map for one parameter.
| Parameter | Type | Required | Description |
param | String | yes | Parameter name. |
value | Map | yes | Replacement flag map for the parameter. |
overwrite_parameters
overwrite_parameters(value: Map) -> UpdateFlowAttributesHandle
Wire-shape escape hatch, overwrite the entire Parameters blob.
| Parameter | Type | Required | Description |
value | Map | yes | Replacement parameter map for the block. |
raw_transitions
raw_transitions(value: Map) -> UpdateFlowAttributesHandle
Wire-shape escape hatch for non-canonical transition objects.
| Parameter | Type | Required | Description |
value | Map | yes | Replacement transitions map (raw JSON shape). |