start
), but can also contain as many steps as necessary. You should think of steps as individual, simple bits of logic, linked inside the same conversation topic (which is the flow).goto
(or goto step
) followed by the name of the step.goto end
.goto end
instruction is omitted, the conversation will be closed anyway. goto end
can be used to exit of a conversation early at any point, but it is implicitly added at the end of all steps if no other goto
instruction is present.goto flow
keyword. This will trigger the start
step of the target flow and close the current flow, so coming back to the first flow will actually go back to the beginning of that flow.Introduced in CSML v1.2
@flow_name
part is not specified, CSML interprets it as "in the current flow". So goto stepname
actually is shorthand notation for goto [email protected]_flow
, where current_flow
is dynamically matched from the name of the current flow, and works accordingly.step_name
part is not specified, CSML interprets it as start
. So as @
means "flow", goto @flow_name
is the same as goto [email protected]_name
which is also the same as goto flow flow_name
.Introduced in CSML v1.5
"..."
. In order to navigate to dynamically set steps or flows, CSML adds a special syntax, similar to the dereference pointer concept in other languages.$
sign:a.b
) is not supported in variable flow and step names.