I was just re-reading the documentation and noticed what I think is a new opening word: "resume".
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/supported-phrases-to-begin-a-conversation I couldn't find any documentation suggesting it's different from the other opening words, but from a user experience standpoint it seems pretty clear that it should include some context about the last session (perhaps simply passing the entire previous session along)? Does anybody have some insight into how "resume" works today, and perhaps if the intention is to make it work differently that other opening words in the future (if it doesn't already do so)?
I doubt it works any different. But I strongly suggest you maintain your own state anyway. I never use the session state stuff. Always store my own session bean in my logic indexed by the user ID. Because the recognition is so poor, I get a lot of drops. It was getting VERY tedious to have to pick up each time, listen to the welcome message, before I could repeat my phrase. So: (1) I track my own session state, and (2) part of what I track is the time of last activity. If I get a launch, and it is within a certain timeout, then I just pick up where they left off.
Ha! I noticed that too over the weekend and got excited as _maybe_ the intended use will be to send a new key:value in the JSON request session attributes that'll indicate a continued session but there's nothing in the request when using resume yet - I'll keep an eye on it though ;) This could solve request responses that take longer (than a session can exist) to execute, whereby a User could prompt for an update on a query, or for all those cooking, or tutorial skills that need to pause flow whilst the user does something before continuing. It's a good idea to build some session management stuff into our apps as you suggest jjaquinta - I've got very basic stuff that keeps track of user preferences set during interactions, timezone (when that becomes available), last request, last session, last attributes, etc. - all keyed off the User ID.
Well said James! :D From a user experience point of view I still think when saying 'resume' you expect different results from 'open', so at the very least the skill should be made aware that the user asked for resumption. Good idea jjaquinta. It's a little sad that we can count on the Alexa framework to do this for us and need to build our own session management... but I guess it's easy enough to do.