In my previous role, I worked on improvements for tooling for conversational user experiences. One of these improvements was an easy way to gather user input before actions are invoked. These typical conversation scenarios are often referred to as ‘slot filling’.
In traditional web applications, users define input values in HTML forms and then click on submit buttons to invoke business logic. ‘Slot filling’ is basically the counterpart for conversational user experiences. For example, a ‘find company news’ intent might require a ‘company’ and a ‘sentiment’ parameter before the actual APIs (e.g. Watson Discovery API against news corpus) can be invoked.
If all of this information is provided by people in their phrase, the conversation is straightforward and looks like this.
If, however, the input parameters are mandatory and have not been provided, the conversation service gathers these slots from users first.
While it has been possible to build such scenarios with the Watson Conversation service for quite some time, the tooling provided by the Conversation service has now significantly improved. You don’t need any longer different dialog nodes for every single variation of a conversation flow. Instead, developers can turn on ‘slots’ per node to enter additional information how to ask users to provide the missing information.