One of the strengths of using the Conversational Flow Language is the ease with which teams can nest flows. As we have been using this capability we have noticed a few edge cases that we wanted to add support for - especially in supporting intent reuse through the conversational scripts. This release has improvements to support these.
One common pattern when using the Conversational Flow Language is that two different choice
elements often end up having the same expecting
values. Violet has always supported these by taking common utterances and grouping them into a new intent so that Violet can trigger the right part of the conversational flow.
Now, apps can not just have shared expecting
values for two choice
elements, but can include all the expecting
values from a particular choice
. This is done by the having the second choice
element having an attribute inheritExpectings
with the id of the first element.
This ability to inherit expecting
elements is mostly used with the predefined Violet ids (for example: help
, stop
, cancel
). Doing so allows not just defining what happens when the user says ‘help’ at the beginning of a conversation, but also defining what happens when a user says ‘help’ in the middle of a particularly complex part of a dialog.
Along with the above, Violet now has support for additional choice
ids for yes
and no
, corresponding to the platform specific ids.
Additionally, there are API level improvements such as allowing defining two intents with the same name. In this case when an intent is triggered, Violet will call the most specific intent that is appropriate - based on the goal states.