Dear Developer, Over the past few weeks, we have asked for feedback on the types of apps you’re building as input into our development plans. You’ve shared with us the interaction patterns you’re using as well as requests for features to make the user experience with an Alexa voice app, clearer for customers. Thank you! Based on your feedback and our research, we are making a change next week that will enhance the experience a user has with your apps. This enhancement is designed to reduce the risk of customers getting stuck within an app without knowing what to say or do next. In-App Experience Before the Change Currently you can build open-ended experiences where the user remains immersed in an application session that is kept open indefinitely. In-App Experience After the Change With each interaction with the Alexa service, you will have two options: 1) ending the session by setting the ShouldEndSession flag or 2) prompting the user for the next input (“utterance”) with a question. With the ShouldEndSession flag set to ‘false’, the Echo will render your application prompt then automatically enter wake mode by turning on the microphone/leds and the user will have an allotted number of seconds to begin speaking. If Alexa does not detect a response, we will end the session with your application. Example of supported interactions: User: “Alexa, ask Car-Fu how much a car is to Ballard” Your app: It’ll be between 6 to 8 dollars for a Car-Fu Standard Car to Ballard.Would you like for me to order one? // speech stream is opened; user remains in dialogue with your app Option 1 User: “Yes.” Your app: Okay. A Car-Fu Standard car to Ballard is on the way. Look out for a Red Toyota Prius. The driver’s name is Jerry.” // your application exits; user at Alexa top level User: “Alexa, ask Car-Fu how much a car is to Ballard” Your app: It’ll be between 6 to 8 dollars for a Car-Fu Standard Car to Ballard.Would you like for me to order one? // speech stream is opened; Alexa awaits user’s input Option 1, no response from user User: [No response] Your app: // Your application receives a session ended call from Alexa with the reason “max prompts exceeded.” Example of deprecated interactions: User: “Alexa, ask Car-Fu how much a car is to Ballard” Your app: It’ll be between 6 to 8 dollars for a Car-Fu Standard Car to Ballard. // speech stream closed; user remains in your app Unsupported Preparing for the Change We understand that some of your apps will be impacted by this change and will need to be updated. We appreciate your being pioneers of the Alexa SDK and apologize for any inconvenience you may experience because of the changes. To prepare for the upcoming change we recommend that you think about the interaction pattern of your application and structure it such that after each user interaction, you are either re-prompting the user for input, or choosing to end your application’s dialogue (“session”) with the user. We also recommend you consider cases where it is useful for you to maintain the state of a customer’s interaction with your application, so that they can continue their interaction in the next invocation of the app. What do you think? We also want to hear from you about this change and have created a forum thread to discuss it with you. You can find that thread at . Please let us know your thoughts on the upcoming interaction model enhancement as well as any additional features you would like to see included around session management and dialogue support. As we move towards a public launch of the SDK -- and as you choose to publish your applications -- we believe these changes will allow customers to have an easy-to-understand way of engaging with and exiting from your apps. If you have any direct questions, please feel free to let us me know by replying to this email.
I am liking this change, my apps have been updated and it is much more fluid without having to say alexa every time. I can see cases of having open ended sessions though, do you think that will be possible in the future?
I like the new model, I think overall it works better. The only negative point I have found is that when the user says something that does not match one of "utterances", the session ends automatically. It would be nice to have a catch-all utterance, where our apps could say something like "I did not catch that. Try saying something like..." otherwise user sessions will often end abruptly (users should not have memorize the baf file).