Intents

Intents

An Intent is a way to flag completion of a specific task during a conversation. For example, when you call to get a pizza delivered to your house, your intent is to 'get the pizza'. And you have talk to someone to tell them what kind of pizza you want. You might want mushrooms as topping instead of cheese.

Defining intents on our platform allows you to automatically execute business logic that you implemented. Following the pizza example, it means you can tell our backend to call your code when the bot has gathered enough information for you to execute an actual pizza order using your favourite API.

How to use intents with Hu:toma AI

In this section, we will go through a simple 'pizza delivery' intent and we will be utilising the 'topping' entity that you might have created if you followed the example from the Entities section.

First, go to your console homepage and click the "Intent" link you should see in the navigation menu on the left side of your screen. This will open the Intent main page. Name your intent and click the "Create Intent" button. This will take you to the Intent Detail form.

User Expressions

The first thing we want to do is give the AI examples of how this intent might be triggered. For example, in the case of the 'pizza delivery' intent, phrases that might trigger it could be:

  • I'd like to order a pizza
  • Would love a Margherita

Now when the system will recognise something that looks like your examples, it will set itself so it can go back and forth with users until the entities you specify are identified.

Intent Entities

After providing examples of how an intent could be triggered, we need to tell the system what variables you will want to be extracted from a conversation once the Intent is fulfilled. In our pizza example, the entity we are interested in is the 'Topping'. That is, if someone wants to order a pizza we want to know what kind of topping is required.

The Entity section allows you to specify few things:

  • Entity - The entity you want to track during a conversation once this intent is triggered
  • N Prompts - How many times you want the bot to prompt the end user if an added entity is not found
  • Prompts - What is that you want to tell the end user if the entity you are looking for is not specified
  • Required - If selected, it will tell your bot that the specific entity must be specified by the user or else the Intent will not be fulfilled
  • Label - This is an string you can use to identify this entity in your Webhook code.Inents

In our pizza example, we only added the 'topping' entity that you might have previously created

Intent Responses

When an intent is fulfilled, the bot will output an answer that you can customise here (ex. 'Hey, I've ordered your pizza!'). If you add one or more custom responses, one will be picked randomly.

Webhooks

The last bit of information you need to specify is a Webhook. A webhook is essentially a bridge between our system and your custom business logic. When an Intent is fulfilled, the URL you specify will be called automatically passing a bunch of information including recognised entities

Simple Intents

Intents are the easiest way to map questions your Human users might ask with the responses your Bot gives.   

From this Intent screen you can view all of your intents.  Each is editable when you click into them.   Create more intents by clicking the "New Intent" button.    

Each Intent is given a name to help you find them in future.   You can search on this 

In this example we create an intent called "Reset_Password".   See #1 in the screenshot below.  

Intent names can only contain numbers, letters, underscores, and hyphens without spaces.  



Add the questions that your human users might ask the bot in "Human Says" (#2) and your bots' responses in "Bot Responds" (#3).   Just type away the answers and click enter.  

You can add as many entries into the "Human Says" section as you like to account for the different ways in which the intent might be asked.   


 

In Bot Responds (#3) This is where you define your bots' responses to a users question.    

You can add URLs to content that you have published elsewhere online.  For instance links to articles in your knowledge base or video tutorials published on Youtube.   

For the moment if there are multiple entries in "Bot Responds" then they will be chosen at random.   

Once you have finished with adding "Human Says" and "Bot Responds" click Save or "Save and add new Intent" (#4) if you'd like to add another Intent.    

You can always return to the intent in future to edit these.  

Inline Entities

As well as simple intents, it's possible to expect inline entities within an intent. For example, if you have a bot to take a drinks order, you might create a 'drinks' intent and have as the human input "I would like a drink" - but the intent could just as naturally be asked with the order as a part of the intial conversation - "I would like to get a coffee". To support this ensure that the entities are set up, for example:

Create a drinks entity, giving it a name 'drinks'

Populate the entity with the drinks types the bot should understand:

Coffee
Tea
Mineral water
Beer
Red wine
White wine

Then update the intent questions to reference the entity, so for the intent input messages you might have:

I would like a drink
I would like to get a @{drink}@
I would like a cup of @{drink}@

The @{entityname}@ format is how to reference inline entities in an intent. The example above means the drinks intent would be triggered by any of the following inputs:

I would like a drink
I would like to get a beer
I would like a cup of tea

With the last two examples, the drinks entity would be automatically satisifed by the text in the original input statement.

You can use inline entities with any type of entity.

Printing an Entity Value

Sometime you want your bot to output the value of an entity that it just retrieved during a conversation. For example, you might want to print a confirmation message to double check the value the user entered during an entity loop. To do that, add the symbol $ in front of the entity value you want to output.

For example, to print the name of the drink the user picks from the previous example, you simply add the string 'Ok your $drink is being prepared.'

Bulk Upload of Intents 

If you have multiple Intents to upload you may find it easier to upload them using our "Upload CV file" functionality.   Before you start creating your first intent you will be presented with this option.  

By clicking the "Upload CSV file" button you'll be presented with an option to select a CSV file you have containing your Intents.  

This should be in a CSV file in the following format.  

User Says should be separated by a ;


How did we do?