Intents

Intents are a collection of expressions that are all used to express a specific request. You chatbot may have multiple intents to express different requests such as 'room reservation', 'vacancy check' and so on. Intents creation is directly counted to your account capabilities but will be counted only when you publish. As long as your chatbot stays in preview or draft you are free to create as many intents as you like.

To create a new intent click on the Add Intent button on the Intents page. Once your new intent has been created clicking on it will redirect you to the expressions creation page. If you have multiple intents and expressions you may also quickly import them.

Once your intent is defined, just click on the intent row to access the expressions views.

Main Intent Properties

Name

This is the name of the intent. It can be any name you like.

Key

This value is used only on platforms where intents may be used to represent builtin or default intents. In any other case, it can be anything you like.

Description

This is the description of the intent. It can be anything you like.

Language

You can specify here the language that will be used by the NLP engine when training the expressions. Selecting the correct language may dramatically improve training results as many terms and words are automatically stemmed to a more common form, increasing confidence and detection percentage.

The current supported languages are: English, Spanish, Italian, German and French.

Context

Context is used to automatically filter intents detection based on the context of a previous expression. Let's consider the following chat:

User: Is there cable tv in every room?
Bot: Yes, of course. All of our rooms have cable tv!
User: and Wifi?
Bot: Sorry, I'm not sure I've understood your question.

This is a very typical example of a non-contextual chat: when the second question is asked by the user, the chatbot has lost the context (which is room services) and replies vaguely with a typical bot answer. Using Xenioo NLP, you can build intents with context and intents that activate only on very specific contexts so that your chatbot is capable of sustaining a meaningful conversation.

In our example above, we could have a general room services intent setting a "Room Service" context and a general "Room Services" intent that activates only on if "Room Service" context is set. By doing so, the conversation can be easily adjusted to handle something like this:

User: Is there cable tv in every room?
Bot: Yes, of course. All of our rooms have cable tv!
User: and Wifi?
Bot: Yes, also Wifi is available in all of our rooms!

The chatbot above brings a much smoother exchange with the user, resulting in a better conversational experience.

A bot not staying in context is bad but of course, also a bot always staying in context is equally bad. Again, imagine a conversation like this:

User: Is there cable tv in every room?
Bot: Yes, of course. All of our rooms have cable tv!
User: and Wifi?
Bot: Yes, also Wifi is available in all of our rooms!
User: Nice, and do you have any room available for August?
Bot: Sorry we don't have this service. Do you want a list of available room services?
User:how can I reserve a room?
Bot: Room services can be reserved by simply calling our service desk!

As you can see, the conversation is going nowhere. This is because this time the bot has no way of leaving its current context. Again, Xenioo intents can be configured to automatically leave context after a number of "out of context messages" so that our chatbot can successfully react to these changes.

User: Is there cable tv in every room?
Bot: Yes, of course. All of our rooms have cable tv!
User: and Wifi?
Bot: Yes, also Wifi is available in all of our rooms!
User: Nice, and do you have any room available for August?
Bot: We have multiple rooms available for that period. What type of 
     room are you intereseted in?

The settings below can be used to configure how your intent reacts to context changes.

Value

This is the context value set by this intent. Usually each intent sets its own context with some intents not setting any but also multiple intents can set the same context.

Context Filter

In this area you can specify one or more context values that will act as a filter for this intent activation. If this area is empty this intent will be activated by any expression match that reaches the configured confidence.

Context Expiration

This is the number of times an out of context answer may happen before the current context is erased and reset to nothing. By default the reset context number count is zero which means that context is reset as soon as an out of context answer is received.

Topic

While your chatbot dialog capabilities grow, you may face issues like false positives or near confidence when a user express an intent that can lead to different topics. Let have a look at the following conversation:

Bot: Hello! Welcome to Awesome Printers! How can I help you?
User: I need to setup my printer network
Bot: Sure! To help you install your printer I first need to know your 
     PC Operating System!

As you can read, the chatbot reply is not really correct...and not really wrong. It may be possible that the user just wanted to setup the network but also that none of the initial setup steps has been followed.

To handle these dialog states, Xenioo NLP uses Topics. Using Topics you can assign to any intent a generic topic and minimum viable confidence and Xenioo will be able to detect, group and display to your user all the intents that have matched the expression.

Bot: Hello! Welcome to Awesome Printers! How can I help you?
User: I need to setup my printer network
Bot: Sure, I'll be glad to help you.
Bot: What would you like to do?
Bot: 1- Setup the printer on my PC
Bot: 2- Setup your printer for network printing

As you can see, the bot had two possible topics and gave the user an option for both. Once configured, it can be handled automatically by Xenioo and ultimately translates to a much better experience.

Each detected topic will automatically increase the value of the conversation_topics runtime variable. Use this variable to see if a topics summary may be useful to your user.

Topic Title

This is the text that will be displayed by the NLP Topics Action if the confidence reaches the Propose Confidence value.

Propose Confidence

This is the confidence percent above which the topic will be added to the detected topics list.

Conversation

Using the conversation section of the intent settings you can configure your intent to generally activate without using any kind of behavior or global bot operations.

Activation

This setting shows the type of activation used for this intent.

Confidence

This is the minimum required confidence to be met by the engine to trigger the activation modes.

Priority

Using this setting you can change the order of activation when multiple expressions may trigger automatically. Take for example these two expressions:

Intent:Salutations  --> Hello there!
Intent:Hotel Search --> Hello there! I'm looking for a hotel

Both these expressions may end up triggering their respective intent but of course, you would prefer to have the hotel search triggered and not just reply something like this:

User: Hello there!
Bot: Hello!
User: Hello there! I'm looking for a hotel
Bot: Hello!

To avoid a situation like the one above, you can just assign to the Salutations intent a lower priority than to Hotel Search. As a result, Xenioo will trigger Salutations only if there isn't any Hotel Search triggered.

Behaviour

This is the behaviour where the conversation will be automatically redirected when Automatic Redirection is selected.

Interaction

This is the interaction where the conversation will be automatically redirected when Automatic Redirection is selected.

Reply Text

This is the text that will be sent to the user when Immediate Reply is selected. Like in any other text, Dynamic variable parsing can be used here.

Can Bypass Input State

Enabling this option will allow the automatic activation to override any currently blocking input and activate the associated flow.

Changing the flow during a blocking question will fully skip the question. Use the Bookmark action to allow your users to eventually go back to the question.

Further Reading

Last updated