Transitions connect flow nodes with each other. They determine the paths a dialogue can follow. If there are multiple transitions leaving a node, all transitions are tested in a certain order and the first one whose condition is satisfied is chosen.


New input or not?

Some transitions wait for a user input while others do not. You specify whether a transition should wait for a new input or not with a toggle in the 'Examples' panel.

Toggle Icons

In case a transition has been set to wait for user input, the flow processing halts until the user has provided an input. Usually, such transitions are placed after output nodes in which the bot asked a question. In Teneo, transitions waiting for user input are displayed as solid lines. Transitions that are set to continue without user input are displayed as dotted lines. This makes the two visually distinguishable from each other:

Example of transitions that wait for new input or not

Conditional or not?

Transitions can be conditional or unconditional. If a transition is conditional, Teneo will evaluate if a condition is met before it follows the transition. You specify conditionality with a toggle in the 'Examples' panel:

Condition toggles in the Examples panel

Just like syntax triggers, transitions use language conditions to evaluate if the input of a user meets the criteria to follow a transition. You can either hand-craft the condition yourself, or let Teneo automatically create it for you from a set of examples, after which you can edit the condition. Say that you want to capture extras together with a coffee order:

Conditioned transitions which require user input

The language conditions for the 'Milk and sugar' branch may look like this:

Language condition for transitions

For language conditions in transitions it is usually enough to focus on the crucial content-bearing keywords. This way, less important words that might exist in the user's input, are ignored.

You can also use Groovy code in the condition field. The code should be embraced by curly brackets, e.g. {userAge > 18} (which requires the value of the variable userAge to be larger than 18). Language conditions that consist of Groovy code are often used in transitions that continue without user input.


If multiple transitions have the same node as their starting point, you specify the order in which they (or rather: their conditions) should be tested. The order is displayed in the flow graph, as a number on the transition. You change the order in the 'Examples' panel.

Transition ordering

When setting up the ordering of the transitions, make sure that the more specific conditions are tested first and the more general ones last. Otherwise the more general ones will never be chosen.


You can specify whether a transition should be considered just once per session, or always. This is useful when you want the behaviour of a flow (or a point of flow) to be different depending on how many times the user visits it.

Was this page helpful?