Skip to main content
Conditions decide whether something applies; actions decide what happens. They’re the same shapes everywhere they appear: version start/hide rules, step triggers, and button / question actions.

Conditions

A condition list is AND by default. Use a group to express OR (or to nest): a group’s match is how its children combine (all = AND, any = OR). A group must hold at least one condition — an empty group is not “no filter”, it is a node that never matches, so next to an AND it makes the whole rule unmatchable. Writing one is rejected. A version saved with an empty group in the builder still reads back with it and draws a validate warning; writing that list back is refused until the group is filled or dropped.

group

attribute

The same shape with type: "event_attribute" (and no scope) filters on an event’s own attributes — valid only inside an event condition’s where.

segment

current_url

element

content_state

event

text_input

text_filled

time_window

task_clicked

Parameterless ({ "type": "task_clicked" }). Valid only in a checklist item’s completeWhen — the item completes when clicked.

unsupported

Read-back only: a stored condition the representation cannot express is returned as { "type": "unsupported", "note": "…" } — usually a DEAD condition the runtime never matches (deleted attribute/event, end-only time window); the note says which. It cannot be written back: echoing it is rejected (E1017) — the placeholder carries no data to preserve. Either remove it from the list you write, an explicit choice that DELETES the stored condition (mind: a never-matching node inside an AND list pins the whole rule to “never fires”, so deleting it can bring the remaining conditions to life), or repair the original condition in the Usertour builder first. The same contract applies to segment conditions.

Actions

goto_step

start_content

dismiss

run_javascript is echo-only: builder-authored script actions appear on reads, and echoing one back unchanged preserves it when you rewrite the surrounding list (action lists are full replacements — leaving it out deletes it). Authoring a new or edited script is rejected (no API/agent-injected JavaScript).

Target

An element reference (used by element / text_input / text_filled conditions, tooltip steps, and banner container).