switch
Branch on a variable’s value, with optional text transforms applied before matching. Useful for keyword-driven inbound message handling.
After the selected branch runs, execution continues with the next step after switch, unless the
branch moves execution elsewhere (for example with goto, return, or transfer), a step fails,
or the document reaches its 100-step limit.
Properties
switch
An object that accepts the following properties.
switch.variable
Variable path to match. Specified without the %{} wrapper (e.g. message.body). The resolved
value is converted to a string, then transformed and compared exactly with the case keys. A
missing variable path resolves to an empty string.
switch.transform
Transform to apply to the value before matching. One of lowercase, uppercase, trim,
lowercase_trim, or uppercase_trim.
switch.case
Map of values to arrays of SWML methods to execute. The key is the value to
compare against variable (after applying transform); the value is the array of methods to run on
match. Keys are literal and are not transformed, and matching is exact. An empty-string key matches
a missing variable; otherwise default is used.
switch.default
Array of SWML methods to execute if no case matches. If
omitted and no case matches, execution stops with an error.
Examples
Keyword-based reply
The request after the switch runs after whichever branch was taken.