Last updated December 29th, 2018
What you'll learn
- What Choice blocks are
- The difference between a Choice block and Intent block
- How to add choices for your users to make
- How choices work when the user answer properly
What are Choice blocks?
Choice blocks allow you to ask users to make a choice from a pre-defined list of choices. If the user says one of the choices listed in the choice block, it will follow that choice's path. If the user says something that isn't one of the listed choices, the user will follow the ELSE path.
To add choices, drag the choice block out from your block menu and click the 'add choices' button. You will see the choice block update with new block ports to connect every new choice.
In the action menu (menu on left), when you click on a block you'll see all the different choices you have added. What you type in the choice block is what the user has to say to activate that choice's path. On the choice block you will see each of these paths represented by a number beside the block port.
To connect a choice block to different paths, simply drag out the connector from the block port for the choice path you want to the block you want that user reply to go to. Below, if the user says 'chapter one' they will activate block port #1 and follow the #1 path to the 'chapter 1' speak block. The same process would happen if the user said 'chapter two', the #2 block port and connector would be activated.
Synonyms / response variations / utterances
To add variations of what answer will be accepted by a particular path, you can do so by adding another line for the next variation you want to accept. For chapter one and two, we want to accept just the number response for each which looks like this:
Above, we have added variations to what our choice block will accept as TRUE for each path.
ELSE block port
If the user says something unexpected that is NOT one of the listed choice options, then the ELSE block port will be activated. As an example, if the user was to say 'orange' in our example above, that is not close enough to 'chapter one' or 'chapter two' to trigger either path, and there are no other paths so the choice block would activate the ELSE option.
Using ELSE as an Error Handler
You can use the ELSE on a Choice block as an error handler, where you repeat the available options back to the user, and ask them to choose again. This allows you to ensure they are always choosing from the available options on the list. You link the ELSE to a speak block which repeats the options to the user and asks them to choose again. This process looks like this:
Choice block vs Intent block
Both the Choice block and the Intent block allow the user to make choices. However, you'll notice that the Choice block is classified as a basic block whereas the Intent block is labelled as an advanced block - even though they have similar functionality.
Why is that?
Well, the Choice block does not use any intents or slots which are advanced concepts. The Choice block is meant to be a very easy way to quickly make choices without worrying about setting up an intent for every choice. But, because it is so easy and fast the drawback is that it's a much less powerful block. You cannot use Slots within the choice block which means that the choice block will only match the whole sentence with the correct option, but cannot pick out individual parts of the sentence to store in variables as you can do with the intent block.
Because the Choice block does not use intents using them allows you to surpass the 250-intent limit currently imposed by Alexa. This means that you are able to build much bigger projects by using a mix of Choice blocks and Intent blocks so that you do not hit the 250 intent limit.
Lastly, the Choice block uses Voiceflow's own natural language processing whereas the Intent block uses Amazon's. Needless to say - the Intent block can be much more accurate at deciphering exactly what the user said!
In summary, when you're quickly prototyping out a skill, the Choice block can be the best option for you. But, when you need a lot more power under the hood and want to pick apart user sentences or create more complex interactions, the intent block is the best option for you.
Still have questions? Did we miss something? Have a suggestion?
Message our customer success line in the bottom right corner with the blue bubble :)