You have built a great bot and want to release it to your users. Before you do so, let’s run through the following checklist of things to consider while building your Cognigy.AI Bot.
Make it easier for your users to interact with your bot.
Use the graphical widgets in the webchat to start your conversation with options. Don't start with an open-ended "How can I help?", but instead show your users the top 3 options as buttons or quick replies. This has the added benefit of setting the right expectations in terms of what the bot can and cannot do.
Make sure that user inputs such as "I don't understand" result in helpful information outputs at any given time. The same goes for an explicit “help” intent that can be used to present the user with options, or even start over in a process.
Make sure to ask the user for feedback, e.g. after a certain topic has been discussed, but don't overdo it. It quickly becomes annoying.
In case the user lands in your flow's default case repeatedly, this means that no intent was found. Make sure to have an escalation option in place. This can range from providing contact details for further support, to an automated handover to a human agent.
Natural Language Understanding
Make sure that your bot understands your users.
Keep your intent model clean and use machine learning intents where the make sense. Note that you can use “cIntent” as a comment to trigger intents deliberately, without using text input. Instead of relying solely on intents, use slots and mode when you can. However, using a rule-based intent could help finding the right intention in complex scenarios.
Give varied example sentences, both short and long. If you struggle to find 5 example sentences for an Intent, check whether you should merge it with another Intent or use Slots instead.
Instead of creating new example sentences for each lexicon item, use a lexicon slot annotation to incorporate all of your lexicon terms in one single example sentence.
Make it easier for yourself and fellow developers to work on your bots.
In order to have manageable Flows, split out self-contained parts into their own Flows and execute them or use the Go To-Node. In a similar fashion, you can replace large - If Then Else chains - with Switch/Lookup nodes.
Give your Nodes an appropriate label that makes reading and understanding the Flow easier. Instead of "ci.slots.DATE" label that If Node as "Date mentioned?"
Start with a number that indicates the hierarchy and follow it up with a description. "0 Main" and "1 Check Database" will sort the Flows alphabetically in the hierarchy order so that your fellow developers can easily find what they are looking for.
Cognigy.AI allows you to build advanced conversational interactions by combining NLU with its flow capabilities, but you don't need to use a flow for simple FAQs. You can instead use Default Replies directly from within the Intent configuration panel.
For each main topic, create a separate Flow - e.g. Company FAQs, Product FAQs, Smalltalk - and more. This helps organize your project resources and makes it much easier to work with your fellow developers. Furthermore, one can make use of generic FAQ Flows that can be used in different use-cases without the need of handling misunderstandings -- a "Company FAQ" can be used anywhere in the conversation while a "Specific Product FAQ" is only useful in one part of the chat.
While it is possible to do everything in one Lexicon, this is often not ideal. Separating Lexicons by topic or slot allows you to manage Lexicons more easily and gives you more control on what is attached to a specific flow, and thus, what the flow should be "aware about".