Chatbot Interaction Types
When designing your chatbot, you should be aware of the two fundamental types of chatbot interactions, and put some thought into which one will work best for your audience and your specific goals for your bot. You can also mix and match these two different styles in the same bot, but it helps to be aware of them so that you can be intentional about selecting which approach you will use in any given situation.
Keyword Driven Flow: Button Bots
The simplest form of chatbot interaction, and probably the most common, is where the chatbot will present a list of choices, which are generally called quick replies, and the flow of the conversation is driven on which one of the quick replies the user chooses.
These chatbots usually start with a simple menu of choices, and which option the user selects will determine how the bot will respond. Bots structured in this way are called 'button bots' because they are operated using buttons rather than speaking to them as you would chat to a normal human.
Button bots and keyword-driven flows aren't limited to just presenting choices, however, they will often collect simple pieces of information such as names, e-mail addresses, preferred booking times, etc, but at their core, they use a simple if-this-then-that rule set and what amounts to a glorified phone tree to guide the user through very well defined conversation flows. If your conversation flow can relatively easily be modeled as a flowchart, this is the kind of interaction you want to be building.
This is not to say, however, that this kind of chatbot interaction is somehow bad, or less useful, than their more sophisticated machine-learning powered alternative. In fact, in a very large number of use cases where the goals of a chatbot are straightforward and the conversation flows are well defined with well defined outcomes, these kinds of bots are vastly easier to build and maintain than a bot built on Natural Language Processing.
Flow XO excels at keyword-driven flows, and unless you already know you need an NLP bot and why, should probably be the first kind of interaction you reach for.
Natural Language Processing (NLP) Driven Flow
The alternative to keyword-driven interactions are NLP driven interactions. In an NLP driven interaction, the user simply chats to the bot like they would a person. The bot then attempts to understand the intent and context of what the user is saying and respond accordingly. These systems work by using advanced statistical algorithms to take a phrase like 'Can you tell me what the weather is in Phoenix next week?' and translate that phrase into an an 'intent' - what the user wants to do, and 'entities' - the meaningful bits of information encoded into the sentence.
In the example, "Can you tell me what the weather is in Phoenix next week", the intent may be 'check weather', and the entities are 'Location = Phoenix' and 'Time Period = 'Next Week'
The bot can then use that structured information of intent and entities to 'fulfill' the intent - which is to provide a response that hopefully provides the user what they wanted, or kicks off some automated action like processing a return.
This style of interaction is best when a bot will have a wide range of responsibilities, and it would be more efficient to let the user ask for what they need and interpret the response than to present them with a few pre-defined options. A FAQ/Q&A bot is a good example of this, as are most customer support bots.
It is very tempting to want to start with this style of chatbot, but be aware that they take a lot more work to design, test, and evolve. Making a chatbot respond to natural human conversation intelligently and effectively, even with today's amazingly powerful NLP tools, takes dedicate time, effort, trial, and error. If you need it, it's well worth the investment. If you don't, however, you can waste a lot of time trying to perfect an NLP bot that only does a few simple things when a keyword-driven bot could have been more effective with far less effort.
One important thing to keep in mind is that you don't necessarily need to choose between a keyword-driven bot OR an NLP bot. You can easily mix and match the two to provide your users with a generally guided-experience (via a keyword-driven bot) that is also smart enough to respond intelligently when your users stray from the beaten path. Or, you can use a keyword-driven style to guide your users through your processes, and NLP to handle small-talk or aspects of the conversation that could benefit from the extra flexibility of NLP.
Our recommendation is that in the vast majority of cases start with a keyword-driven bot that will define the overall structure of your user experience and guide your users through any well-defined conversation flows, and bring in NLP selectively when you're sure you need it or where the keyword-driven style is too rigid.