Dialog Management in Teneo – Summary

Conversational AI has come a long way in raising the bar to create more human-like conversations with Virtual Agents (VAs) and users now expect their interactions with VAs to run in a smooth and efficient manner.

We have explored some of the most encountered challenges in dialogue management for conversational agents in previous articles on different #TeneoTuesday events. We described the way to handle these challenges using Teneo Platform. This article is a summarized collection of previous articles that highlighted the different dialogue aspects and challenges that can be managed in Teneo.

Out -of-Scope and Irrelevant User Input

Virtual Agents may be exposed to all kinds of user requests. Some of which are within the knowledge of the VA, and some fall out of its scope. In a dedicated article, we learned how to Build an Out-of-Scope Flow in Teneo to capture input that the VA does not have the right response to yet. In the image below, we can see that the bot answer to out-of-scope input would provide an improved user experience as opposed to Safetynet answers to all input that the bot does not understand.
out of scope in tryout

In addition to that, using Teneo you can improve the user experience by setting expectations to the topics that the VA can handle. This strategy consists of providing suggestions in the form of quick messaging such as lists or buttons. The image below is just an example for displaying suggested topics to the user in the form of buttons in Teneo Web Chat. Using such methods ensures an improved user experience, since they are presented with the most common topics and they can easily click on a button to receive the desired information or service.
virtual agent greeting message with buttons

Ambiguous User Requests

Ambiguous user input results in indeterminate user intent. This may be caused either by:

  • Keyword messages. Where the challenge lies in multiple intents relevant to the user input. Or,
  • Unclear messages. Which makes it difficult to define the relevant intent.

As a conversation designer, you want to make sure that you set up the necessary components to ensure smooth and efficient dialogues with the bot.

Luckily, using Teneo platform, you can disambiguate indefinite user requests with a set of strategies inside your solution. Make sure to check out to our article about Handling ambiguous input for a full guide on this topic.

The most common type of ambiguous input is keyword requests. Such user requests consist of one or a couple of words that constitute short phrases; these phrases may be linked to multiple intents. As a conversation designer, you want to start by identifying the products, services, or topics that the users may ask about using short phrases. Once you have identified the input, then you can build a disambiguation flow inside Teneo that can be triggered by keyword requests and that extracts more information from the user to be able to complete a task or respond with the queried information.

On Teneo.ai, you can find a practical example on building disambiguation flows. The images below display what the trigger of such a flow is matched against. This flow is built to capture user requests relating to any sort of coffee. The Match requirement is therefore a Language Object that consists of coffee types.

Language Object Match for Keyword Triggers

The flow continues to collect more specific user input to be able to disambiguate the intent, by asking the user whether he/she wants to order coffee or see the menu. Depending on the user answer to that, the flow then branches to multiple flows using Flow Links.


Interruptions in Conversational AI Dialogues

When a user converses with a bot, she/he may switch from one topic to another. This topic switch may be challenging. As long as a certain topic is discussed, the conversation is following the triggered flow path, but as soon as the path is interrupted with a topic switch, the conversation follows the path of the newly triggered flow. The challenge lies in not losing the information that was collected in the prior flow, and the fact that the user will not be taken back to that flow unless she/he triggers that flow again.

In Teneo, interruptions are allowed and handled with the revisit output-node feature and the flow stack logic. On a previous #TeneoTuesday, we published an article that provides details on How Interruptions are Handled with Teneo.

The image below displays an example of handling interruptions. Where the user switches from an intent to buy a cube to an intent to ask about price. As soon as the second topic is addressed, the bot brings back the first topic again.

This is made possible by setting a revisit option on the output node in the first flow (buy a cube flow). The illustration below explains the flow switch process.

flow resumption

This will allow the flow to remain on the flow stack even if the next user input does not match the flow trigger. The new user input would match another trigger of a second flow (how much does the cube cost flow). Once that flow is dropped or in other words, the answer is provided to the user, then the first flow is back on the top of the flow stack.

Depending on the use-case, you can change the maximum number of times that a node should be revisited. Once that maximum number is reached, the flow will not be on the flow stack anymore; it will only be triggered with new matching input.

User Intent Recognition: Trigger Ordering

In the previous sections we highlighted the most common strategies that can be used in Teneo to handle very common dialogue management challenges. From the first stages of designing a conversational AI project and throughout the way, the main concern of the developers is accurate intent recognition. Several components play a role in user intent classification and identification; most importantly: the Natural Language Understanding component, the classification algorithms involved, and the methods used to determine intent matching and flow triggering.

In Teneo, the information needed for matching to relevant intents and activating the corresponding flows is stored in flow triggers in form of Match requirements . Furthermore, Triggers in Teneo can be placed in different order groups that determine which trigger is evaluated first, second, etc. until a trigger match requirement is met, and the corresponding flow is activated. Trigger Ordering is a powerful tool to configure the intent matching mechanism and flow triggering process in your solution to best suit your bot functionality and use-case.

In a different article, we explain in detail the impact of trigger ordering on intent recognition in conversational AI solutions, and provide recommendations for a good ordering methodology. The illustration below clarifies how the rank of a trigger in relation to the other triggers in your solution controls when the corresponding flow is triggered.

Contexts Restrictions for Improved Conversational AI Interaction

Depending on your conversational AI project, you may want to adapt the dialogues depending on contextual information. This information can be related to the user, the channel, time of day, previous topic in the conversation, season of the year …etc.

In Teneo you can create two types of context restrictions: variable-based and scripted restrictions. These restrictions may be placed on Triggers or Transitions of a Flow.

The image below is an example of using variable-based restrictions; a Global Variable value is evaluated as a context restriction for a Trigger Match requirement.

Teneo Flow: Context restriction

This is an example flow for ordering coffee. The user would say “can I order coffee” and this flow will be triggered. What if during the same conversation the user says, “I will have one of these”? Adding this context restriction means that if the Global Variable “coffeeTypeInFocus” has a value then this trigger will match.

In a previous article, we present a set of Commonly-used Global Contexts, and provide three examples on how scripted context restrictions can help you alter the bot communications with end users depending on contextual information. For instance, in case your bot is live on different channels, and you want to cater the functionality depending on the channel that the user is on, you can add a scripted context restriction to handle that. The image below is an example of using a scripted context restriction to manage different bot functionality depending on different channels such as: Alexa, Microsoft Teams, Facebook Messenger.


Setting up the necessary strategies to ensure efficient dialogues with conversational virtual agents can be a challenging task. In this article , we present a summary of the most common challenges along with methods to handle them using Teneo conversational AI platform. Does your project face any of these challenges? Or different ones? Let us know in the comments.