Skip to main content
Actions are what a component does when an interaction fires (a tap, a change, an appear). An interaction holds an ordered list of actions. This page lists every action kind and its fields. Every action is a ComponentAction with a kind plus its own fields, and may carry an optional delay.

Scheduling: delay

FieldTypeNotes
delaynumber (ms, optional)Absolute offset from when the interaction’s event fired, not a cumulative wait after the previous action. Omitted or 0 runs the action immediately.
Because each action schedules independently, [setVariable @0, setVariable @1000] walks a variable through two values one second apart.

Action kinds

Go to a specific node.
FieldTypeNotes
targetNodeIdstringThe destination node ID. A fixed target, not a dynamic value.

goNext

Go to the next screen (follows the default edge). No fields.

goBack

Go to the previous screen. No fields. Used by the Back Button chrome preset.

closeFlow

Dismiss the entire flow. No fields. Used by the Close Button chrome preset. The closeFlow action ends the flow with the completed outcome. A system dismissal (swipe-to-dismiss or programmatic) ends it with the dismissed outcome instead. See Results and outcomes.

setVariable

Apply an operation to a variable. The primary way to mutate state.
FieldTypeNotes
variableKeystringThe variable to modify. Must be a writable Flow State variable.
operationVariableOperationThe operation (see the table below).
valueVariableValue (optional)Operand, if the operation needs one.
Operations by variable type:
TypeOperations (schema value)UI label
Booleanset_true / set_false / toggleSet ON / Set OFF / Toggle
Numberset / increment / decrement / multiply / divide / resetSet to value / Increment by / Decrement by / Multiply by / Divide by / Reset to initial
Stringset / append / prepend / clearSet to value / Append / Prepend / Clear
Listadd / remove / toggle / clear / setAdd item / Remove item / Toggle item / Clear list / Set list
For boolean operations, value is unused (the operation is self-contained). For list, value is the item to add/remove/toggle, or the new array for set.

assign

Set one or more variables from expressions. Each assignment runs an expression through the SDK’s evaluator.
FieldTypeNotes
assignments{ variableKey: string; expression: FlowExpression }[]Each entry writes one variable.
The expression subset is documented in Conditions and expressions. An expression that cannot be evaluated is skipped (the variable is left unchanged), never written as empty or zero.
assign exists in the schema and the SDK evaluates it, but the editor does not expose it as a pickable action. It is used internally to compile payload bindings (for example {{payload.height}} from a custom component output). For everyday state changes, use setVariable.

trackEvent

Emit a custom analytics event.
FieldTypeNotes
eventKeystringThe event name (shown as “Event Name” in the editor).
propertiesRecord<string, FlowExpressionOrLiteral> (optional)Extra properties.

openUrl

Open a URL.
FieldTypeNotes
urlFlowExpressionOrLiteralThe URL (literal or expression).

haptic

Trigger device haptic feedback.
FieldTypeNotes
intensity"light" | "medium" | "heavy"Strength.

triggerAnimation

Fire a reactive animation step on a target component.
FieldTypeNotes
targetComponentIdstringThe component to animate.
stepIdstring (optional)A specific step. Omit to fire the first reactive step.
animation"enter" | "exit" | "attention" (optional)Deprecated. Use stepId.

triggerParticle

Fire a particle effect overlay. Extends the shared particle config.
FieldTypeNotes
effectParticleEffectTypeconfetti / sparkles / fireworks / snow / hearts / stars / emoji / bubbles / petals.
durationnumber (ms, optional)How long it plays.
colorsstring[] (optional)Particle colors.
emojistring[] (optional)For the emoji effect.
density"light" | "medium" | "heavy" (optional)Count.
size"small" | "medium" | "large" (optional)Particle size.
direction"top" | "bottom" | "left" | "right" | "center" | "edges" (optional)Emit direction.
spreadnumber (optional)Cone angle, 0 to 360.
gravitynumber (optional)-2 to 2.
speednumber (optional)0 to 2.
haptic"none" | "light" | "medium" | "heavy" | "success" (optional)Haptic on emit.
See Particle effects for details.

custom

A named custom action.
FieldTypeNotes
actionKeystringThe action identifier.
paramsRecord<string, FlowExpressionOrLiteral> (optional)Parameters.
custom actions are defined in the flow JSON but there is no public iOS API to register a native handler for them today (the SDK’s registerCustomAction is internal). A custom action with no matching handler does nothing on device. To run your own native code in response to a component event, use a custom component and wire its output instead.

SDK support and editor preview

ActionRenders on deviceRuns in editor preview
navigate, goNext, goBack, closeFlowYesPreview-only navigation (does not affect editor selection)
setVariable, assignYesPreview-only state (not saved)
trackEvent, openUrlYesNo (no analytics or external open in the editor)
triggerAnimation, triggerParticle, hapticYesYes
customOnly if a native handler exists (not public today)No
In the editor’s preview mode, only triggerAnimation, triggerParticle, and haptic fire; navigation and state changes run as preview-only and are never persisted. See Preview and live mirror.