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:
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
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.