When Teneo tests a user input against your solution's triggers and transitions, it stops at the first match. It is thus crucial in which order the triggers and transitions are tested. Teneo allows you to define and modify their order. This concept is called ordering.
Active flows first
When searching for a matching trigger, Teneo always gives priority to the flow that is currently being processed. Thus, each input is first tested against the transitions at the current point of the active flow. The order in which these transitions are tested is indicated in the flow graph.
Only if there is no active flow or if none of the transitions in the active flow match the user input, Teneo will go on and test the input against other flow triggers of the solution.
If there is no active flow, or no matching transition in the active flow, Teneo will go through all other flows of the solution to find a matching trigger. The order in which the triggers are tested is determined by the triggers' order group. To get an overview of the order groups of your solution, simply select the 'Intent Trigger' icon in the 'Ordering' section of the top ribbon.
This opens an overview of the existing order groups in your solution. When searching for a matching trigger, Teneo will start at the top and work its way down until it finds a matching trigger.
The order groups displayed above are the groups that come with Teneo Dialogue Resources (which you can use as a template when creating a new solution). Let's have a quick look at all of these groups:
- Default - group to store default triggers. Because this is marked as 'default', triggers you add to your solution will automatically be assigned to this group
- TDR - Top - contains triggers from Teneo's Dialogue Resource template solution, which are very specific.
- TDR - Middle - this is the group you should assign triggers which are in between 'Top' and 'Low'.
- TDR - Low - contains the triggers from Teneo's Dialogue Resource template solution that are less specific.
- TDR - Safetynet - this group contains the Safetynet that comes with Teneo's Dialogue Resource template solution.
These pre-defined groups should take you a long way. However, should you discover that you need to add more order groups to your solution, you can easily do so by moving over to the 'Groups' tab of the 'Intent Trigger Ordering' window. There, you may also move triggers from one group to another, if necessary. But before you add order groups or start moving triggers, you may want to try whether 'Relative Ordering' does the job. You can read more on how to create a custom order group here.
Managing order groups
The tools needed to manage order groups can be found under the Groups tab. Here, we can add, move, and delete groups.
In the View group in the ribbon bar there are buttons to toggle the visibility of disabled triggers. To select multiple groups, hold down the Ctrl key while clicking on group names.
In some cases, multiple triggers within one order group might be competing for inputs. This can be solved easily by defining relations between those triggers. Trigger relations are defined by arrows that can be drawn between any two triggers in the same order group by simply clicking on one trigger and dragging an arrow to a second one.
This relative ordering clarifies the order in which the triggers should be tested. Just like with order groups, the more specific triggers should be put before the less specific ones; otherwise, the most specific triggers would never be tested.
Relative ordering between triggers can be defined in the Intent Trigger Ordering window. Here, we can click on an order group to see exactly which triggers are included in that group.
Triggers and relations are treated as separate types of objects. For example, in this image, there are three different objects that can be selected: two triggers, and one relation.
Triggers and relations have their own groups in the Home tab of the ribbon bar.
We have so far seen how to order Intent triggers, which make up for the majority of triggers in our solution. Prompt triggers are ordered separately from the intent triggers, but their ordering follows the same general principle: more specific triggers should be tested before less specific ones. To view or change the ordering of prompt triggers, simply select the 'Prompt Trigger' icon in the Ordering section of the top ribbon.