Reprompt and Fallback Intent

Alexa's reprompt ability on Voiceflow and the Fallback Intent.

After giving the user a choice/interaction/capture, there are only two technical things that Alexa can do after the user speaks:

  1. It captures an Intent of some kind

  2. It does a reprompt

Intent Response

Voiceflow only gets information if case #1 occurs. When an intent is received Voiceflow can activate the "else" port and give a new response. This can be triggered by a "AMAZON.FallbackIntent"

Reprompt

If Alexa fails to map whatever the user says to any intent defined in your skill, the reprompt effect (#2) occurs. For instance if the user says nothing, gibberish, or words that aren't part of any intent, it does not map to an intent. A reprompt needs to be defined with the last outgoing message and the Voiceflow service receives no information when a reprompt happens.

Reprompts only occur twice and will exit the skill if it still doesn't understand the third time.

We send out each choice with the default reprompt of the last spoken thing. So if you have a speak block "What color do you like?" followed by a choice block, and Alexa fails to map to an intent, it will simply repeat "What color do you like?"

However, Voiceflow allows you to define custom reprompts if you don't want it to repeat the same thing. This can be done on any choice, interaction, or capture block

Fallback Intent

In all English Regions, Amazon has created a special "AMAZON.FallbackIntent" to capture if the user actually said something, but not relevant to any other existing intents in your skill. We include this automatically with all Skills in English regions. However from our experience this system doesn't work very well and FallbackIntent often fails to trigger when the user says real responses.

If you never want a reprompt to occur if the user says real words, (and always hit the else port) the best way around this is to create a CatchAll intent (An intent with only a slot). This acts as a faux-fallback intent that is stronger and catches more things. However this runs the risk of capturing real intents as the CatchAll, which then can't be processed normally.

It would look like this and you can just keep it on the side in your home flow disconnected from everything:

This is obviously not ideal but it's the best way around Amazon's current buggy Fallback system.