Introducing the purpose of the series and the need to intimately know the tools.
This blog is the first of a series on systems for chatbot design. This is not about design choices like âshould my chatbot be serious or funny?â or âshould my chatbot act human, or clearly, be a bot?â. There is already a lot of material available on this topic, and different sources give conflicting advice. Instead, I will focus on systems that help you with:
- Implementing your design.
- Spotting weaknesses in your design.
- Comparing the implementation with the design.
- Updating the design based on user interaction.
Proper design of websites requires tools like Figma and Adobe XD to transfer the design to engineers in a concrete manner. Proper websites also require analytics to check if the design actually works in an intended way. Systems to support, validate, and improve a design are even more important for chatbots since chatbots are less established than websites and design principles arenât set in stone yet.
Design systems to support and validate design!
I did get distracted by the particulars of how some concepts work. And some of the answers werenât even present in the documentation. I use Dialogflow, but if you donât you can still benefit from the systems that I will share and the discussion that I hope to spark. I also still suggest you skim the questions that distracted me and think of the questions you need to get answered before you start with the design so that you donât get distracted during the process.
Does the input context of an intent just disallow the intent from being called without the context, or does it also infer priority to the intent with the âbest fittingâ input context for the given state?
In my testing, I found out that priority is given to the intent with the best fitting context. Additionally, the priority resulting from context overrules the manually set âintent priorityâ (the dot next to the intent name).
However, there is an exception to this rule: Dialogflow will prefer any matching intent to a fallback intent, even if the context of this fallback intent perfectly matches the given context.
How are parameters handled by contents? Are they handed to the next content as well?
Parameters are not automatically sent to the next context. However, rather than maintaining a large set of messy contexts you can manually transfer a parameter from one context to the next.
For instance, you want to move parameter x
from input context A
to output context B
. You can then, in the parameter section of the Intent, add a new parameter with the notation #A.x
(essentially get parameter x
from context A
) in the value section and the ânewâ parameter that takes this as value will then be forward from the input context to the output context.