Violet v1.1: Allowing expecting inheritance in Conversation Flows

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.