Create a password flow

I need to ensure only users with a password can access my skill.

What’s the best way to do this?

I’ve tried a Choice block and an Intent block with a custom intent of ‘password’. If the password is correct, they move forward. If incorrect, they get 2 more chances with voice prompts - at any point if successful, they move forward. After 3 failed attempts, they go straight to the exit block.

This works perfectly in VF, but ADC returns the error “The skill should not respond to intent requests with empty text or SSML in prompt while keeping the skill session open.”

I also tried using a Listening Intent after a password request. Then an intent block with the custom ‘password’ intent. The Listening intent included the 3 re-prompts for incorrect passwords.

What is the best/cleanest way to deal with this?

now you solved your “empty text or SSML” problems and can move on to password intent :smile:

:sweat_smile: Yes!

What I have seems to work - is this the best way?

Custom intent that contains the actual password.

A Speak Block requesting user to utter password (in the image labelled Password Request)
Followed by a Prompt - listening for an intent (ie. the password)
The Prompt has 3 reprompts (you can see in the image the reprompts for Password Request) - each one triggers after a successive failed password utterance

Thank you!

so actual password is one of sample utterances in your intent, right? like this.

you see the password is “apple”?

Let’s test on ADC.

looks ok. then how about this?

not works…

Alexa tries to match flexibly, in other words, inexactly. If you need more “strict” matching, maybe you should use a slot, put it into variable, and match with actual password.

Wow, this is super helpful, thank you! I thought that my solution was liable to cause issues, particularly if there was going to be any additional complexity. Your solution is much more robust AND has encouraged me to engage with both Slots and the IF logic.

I’m confident that this will be useful others as well.

Thank you.