Intents and entities

One of the core concepts in Activechat (and in conversational AI in general) is intent.

The intent of a user in conversational AI is their goal or purpose for interacting with a computer system. This can be a simple task such as looking up information or making a purchase, or a more complex interaction such as scheduling an appointment or configuring a new device.

The same intent can be expressed by the user in many different ways, or phrases. These phrases are called utterances. In conversational AI, an utterance is a unit of speech or text. It is the basic building block of conversation and typically consists of a single sentence or phrase.

For example, if the customer's intent is to order a pizza, corresponding utterances can be something like this:

  • Can I have a pizza, please?

  • I want to make an order

  • Get me two Margaritas and a Pepperoni

  • etc...

So, the problem with most virtual assistants and chatbots is understanding these different phrases and matching them to a specific intent. Activechat utilizes an advanced AI-based natural language understanding (NLU) engine that helps your virtual assistants understand customers even if the utterances they use are different or contain typos/misspellings.

What's an entity?

Intents describe the general goal of the customer's request, but to make that goal actionable some specific parameters are required, and these parameters are called entities in conversational AI.

Entity refers to a specific object or concept within a conversation. For example, a customer's name or the address of a business.

If we dive deeper into the abovementioned intent of ordering a pizza, the parameters (or entities) for it can be:

  • pizza type (Margarita, Pepperoni, Quatro Formaggi, etc)

  • delivery address

  • delivery time

A well-built conversational AI system would be able to extract these entities from the customer's request and use them to convert that request into a specific action (pizza delivery in this example). If some required values are missing, the conversation automation scenario should be able to ask questions to get that data from the user (for example, asking for delivery address or time). This process is called slot filling.

In Activechat, each intent is triggering a skill in your virtual assistant, and this skill is able to guide the user through the conversation, extracting the user's intent and filling the necessary slots.

Now that you understand the basics of slot filling, let's see how it works in Activechat.

How Activechat handles slot filling

Here is an example of a user request that needs to be filled with slot values:

"Can you please order a pizza for me?"

In this scenario, the user's intent is "order pizza." The necessary slot values are the pizza type (meat lovers, veggie, etc.), the delivery address, and the delivery time.

Activechat will ask the user for the necessary slot values in order to convert the user's intent into a specific action. In this example, the user will be asked for the pizza type, the delivery address, and the delivery time.

How exactly this conversation will be arranged is completely up to you (this part is called conversational design). You can use our visual conversation flow builder to create scenarios of any kind, from the most simple (like answering a specific question about a product) to complex ones (like diagnosing a poor phone connection in telecom or submitting an insurance claim).

How to build intents in your chatbot

When you have your conversation designed, it’s important to define the set of intents that your chatbot should handle. Actually, it comes down to specifying what kind of value can customers get from the chatbot. This is always a work in progress – as your chatbot starts having actual conversations with users, there will be new intents popping out almost every day. It’s up to you (as a chatbot developer) to decide, which of these intents should be handled by the bot, and what should happen if the user’s intent is not recognized.

Intents are tied tightly to chatbot skills in Activechat. Actually, each intent should have a specific skill that will be triggered by that intent and which should deliver certain value to your customer. We advise keeping intent names structured and developing some sort of a naming convention to avoid messing it up when the number of intents starts growing.

The logic is pretty simple here – when you introduce natural language understanding into your chatbot, you treat every user message as an utterance, using AI to understand what is the intent of that message, and which skill in your chatbot should be used to help your user to achieve the desired outcome.

The power of Activechat is in the combination of advanced AI provided by technology leaders like Google or Facebook with the simplicity of the visual chatbot builder.

So, the process of building a smart natural language chatbot should look like this:

  1. Define which intents your chatbot should handle.

  2. Come up with possible utterances for that intents.

  3. Build skills that will be triggered by intents to help users get some value.

  4. Get actual conversations and make corrections – both to intents and utterances.

Why do we call it a work in progress? Two simple reasons:

  • You will never know what kind of intents your users will have when talking to the bot

  • You never know which words (utterances) the customers will use to express these intents

Proper preparation and homework before your bot goes live can definitely help, but you should be monitoring conversations constantly to get insights on how the bot can be improved.

Last updated