Your Alexa Consoles
?
Support
Alexa Blogs Alexa Developer Blogs /blogs/alexa/feed/entries/atom 2018-04-20T20:55:15+00:00 Apache Roller /blogs/alexa/post/b66bf85d-b194-4e24-a5f1-302592074a22/with-alexa-developer-rewards-david-markey-says-alexa-changed-his-life With Alexa Developer Rewards, David Markey Says Alexa “Changed His Life” Jennifer King 2018-04-20T15:00:00+00:00 2018-04-20T15:00:00+00:00 <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/david_markey_blog._CB497729457_.png" /></p> <p>David Markey built his first custom skill in only one day. Within a month of launching his second skill, he had earned almost $1,500 in Alexa Developer Rewards.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/david_markey_blog._CB497729457_.png" /></p> <p>Brown University student David Markey attended an Alexa developer conference in August 2017 to learn more about building Alexa skills. The conference literally changed his life.</p> <p>“I had been coding since I was 14 but never for Alexa,” says Markey. “When Amazon launched Alexa Developer Rewards, I knew they were serious about it. I saw a big opportunity with Alexa, and I was eager to get started.”</p> <p>Having experimented before with <a href="https://developer.amazon.com/alexa-skills-kit/flash-briefing">Alexa flash briefing skills</a>, Markey built his first custom skill at the conference in only one day. On the train home, he created his second skill called <a href="https://www.amazon.com/Word-of-the-Day-Quiz/dp/B076B93YT7" target="_blank">Word of the Day Quiz</a>. Within a month of launching Word of the Day Quiz, Markey had earned almost $1,500 in Alexa Developer Rewards.</p> <p>“I was expecting just $10 or maybe $100, but nothing like this,” says Markey. “I've taken the rewards and reinvested them into creating even higher-quality Alexa skills that I would never have been able to create on my own dime.”</p> <p>The rewards from the conference didn’t end there. A fellow attendee connected Markey with a leader at a management consulting company in Boston. A couple of days and interviews later, Markey had landed his dream job—waiting for him when he graduates later this year.</p> <p>“The conference showed me just how extraordinary, sharing and generous the Alexa developer community is,” says Markey. “It also showed me the huge potential of a career developing for voice, and an almost instant flow of developer rewards proved it.”</p> <h2>From Flash Briefing to a Rewarding Custom Skill</h2> <p>Markey initially created the <a href="https://www.amazon.com/Peppercorn-Media-Word-the-Day/dp/B06VTHH5MW" target="_blank">Word of the Day</a> as a flash briefing skill. But with the Alexa Developer Rewards, he saw the biggest opportunity to make money by building custom Alexa skills.</p> <p>“The flash briefing was popular, but a custom skill requires you to understand more about how Alexa works and how to pass requests and responses,” says Markey. “I went to the conference to learn how to leverage this technology so I could earn money with Alexa.”</p> <p>Since users don’t often get to practice using new words in day-to-day conversation, Markey then created <a href="https://www.amazon.com/Word-of-the-Day-Quiz/dp/B076B93YT7" target="_blank">Word of the Day Quiz</a> to reinforce what they learn in the flash briefing. The quiz provides a natural, entertaining way to test understanding and correct usage of the word.</p> <p>Markey says the quiz is so engaging because it provides a sense of surprise and fun in the interactions. More than reciting a definition and an example of today’s word in a sentence, Markey records punchy and even silly dialog to make listening fun, then quizzes users to ensure they understand the word.</p> <p>The quiz also delivers “reward” and “streak” content, including a witty song for first-time users and after playing the quiz for 30 days. There's also congratulatory content for milestones, like an epic movie-type announcement when users play the quiz for 3 days.</p> <p>“I focused on creating a ‘streak’ mechanism to drive retention and give people a spark of joy in the skill,” says Markey. “Giving users something different to look forward to for being diligent helps ensure they return day after day.”</p> <p>Markey still maintains the original flash briefing, which shares some of the quiz’s audio content. And by promoting the quiz in the daily flash briefing, Markey is able to build audience and user retention for the quiz, which further increases his reward payouts.</p> <p>“I just tell flash briefing listeners they can reinforce the word they just heard by playing Word of the Day Quiz,” says Markey. “That’s how I drive new and repeat traffic to the custom skill, which keeps me involved in the developer rewards program.”</p> <h2>Elevating Voice Experiences with Developer Rewards</h2> <p>As a student on a budget, Markey took some financial risks when building Word of the Day Quiz. But as the monthly payouts began, he saw the opportunity to deliver even more amazing experiences.</p> <p>Alexa Developer Rewards enable him to hire professional actors to add vocal variety to the skills and musicians to write and record music and songs. Perhaps more importantly, he is able to pay a fellow student to help him build more Alexa skills.</p> <p>“I knew entertaining content would be crucial to driving retention on the skill,” says Markey. “It ended up being a good calculated risk. The rewards have allowed me to create even better content, and to pour even more effort into new skills like <a href="https://www.amazon.com/Peppercorn-Media-Price-It-Right/dp/B07871TGCT" target="_blank">Price It Right</a>.”</p> <p><a href="https://www.amazon.com/Peppercorn-Media-Price-It-Right/dp/B07871TGCT" target="_blank">Price It Right</a> is a multi-player game that lets users compete to guess the prices of actual items on Amazon.com. Markey combined everything he learned from Word of the Day Quiz to make Price It Right the most engaging, highest-retaining Alexa skill possible. He says those lessons include giving skills more personality, adding an occasional element of surprise, and reducing potential user confusion wherever possible.</p> <p>“Once again, I’m able to pay for real music and real human audio for the interactions so Alexa can respond to players as a real human would,” says Markey. “And as far as I can tell from the stats, it has far exceeded my expectations for its ability to drive user engagement.”</p> <h2>Quality is the Key to Monetizing Skills</h2> <p>Markey advises Alexa developers to leverage the power and openness of the Alexa developer community for help, tips, and feedback. Developers can participate in online forums, follow the <a href="https://developer.amazon.com/blogs/alexa/post/4a39d8bf-e27e-4da1-8a37-1196d3bd1f5c/how-to-increase-customer-engagement-with-your-alexa-skill">Alexa blog</a>, and attend <a href="https://developer.amazon.com/alexa/devday">workshops and conferences</a>. But they can also reach out to experienced developers with an email or social media. Many of these—including Markey—include email address in their online skill descriptions and are excited to respond to questions and new ideas from fellow developers.</p> <p>“Connect and work with other developers,” he says. “You’ll save yourself a lot of time and effort. It’s made a ton of difference in my own development experience just having someone to bounce ideas off of.”</p> <p>But of all the tips Markey can share about building high-earning Alexa skills, the first and foremost is to build quality into your skill from the beginning. From the interaction model to the voices, from audio tracks to special effects, quality is what keeps people coming back.</p> <p>“The reason I focus so heavily on the quality of my skills is because it really makes a difference in how you stand out and get noticed in the Alexa Skills Store,” says Markey. “People are hungry for voice experiences that provide human quality audio and feel as natural as a real conversation. When you give them that, that’s when you find your rewards.”</p> <h2>Build Engaging Skills, Earn Money with Alexa Developer Rewards</h2> <p>Every month, developers can earn money for eligible skills that drive some of the highest customer engagement. Developers can increase their level of skill engagement and potentially earn more by improving their skill, building more skills, and making their skills available in in the US, UK and Germany.<a href="https://developer.amazon.com/alexa-skills-kit/rewards"> Learn more</a> about our rewards program and start building today.<a href="https://developer.amazon.com/alexa-skills-kit/guide/build-engaging-skills"> Download our guide</a> or watch our<a href="https://attendee.gotowebinar.com/register/4673294238964482305" target="_blank"> on-demand webinar</a> for tips to build engaging skills.</p> /blogs/alexa/post/9c769704-b6c1-466d-ac90-2c386848e508/personalize-your-alexa-experience-in-minutes-with-alexa-skill-blueprints Personalize Your Alexa Experience in Minutes with Alexa Skill Blueprints Brian Crum 2018-04-19T13:10:37+00:00 2018-04-19T14:02:10+00:00 <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/blog(12)._CB497405295_.png" style="height:240px; width:954px" /></p> <p>Amazon today introduced <a href="http://phx.corporate-ir.net/phoenix.zhtml?c=176060&amp;p=irol-newsArticle&amp;ID=2343493" target="_blank">Alexa Skill Blueprints</a>, a new way to create your own personalized skills and responses for Alexa. Using a set of easy-to-use templates, anyone can create customized experiences for Alexa within minutes.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/blog(12)._CB497405295_.png" style="height:240px; width:954px" /></p> <p>Amazon today <a href="http://phx.corporate-ir.net/phoenix.zhtml?c=176060&amp;p=irol-newsArticle&amp;ID=2343493" target="_blank">introduced Alexa Skill Blueprints</a>, a new way to create your own personalized skills and responses for Alexa. Using a set of easy-to-use templates, anyone can create customized experiences for Alexa within minutes. Whether it’s your own answer to the question &quot;Alexa, what is the best city?&quot; or a skill that offers helpful information for the pet sitter, <a href="https://blueprints.amazon.com/" target="_blank">Skill Blueprints</a> allow you to build personalized voice experiences with Alexa, helping you make Alexa even more useful around your home.</p> <p>Using Skill Blueprints is as easy as filling in the blanks. You can have fun customizing Alexa’s responses to questions like “Alexa, who is the best mom in the world?” or “Alexa, am I your favorite painter?” You can also use Skill Blueprints to create an interactive adventure story with your child as the lead character with the “Adventure” Blueprint, or create a skill to poke fun at Dad’s corny one liners with the “Family Jokes” Blueprint. &nbsp;</p> <p>The skills and responses you create with Skill Blueprints will be available instantly on all Alexa-enabled devices associated with your account. The Skill Blueprints announced today are for personal use only, and are not published to the Alexa Skills Store. Skills Blueprints are available today to customers in the US.</p> <p>While Skills Blueprints introduce a new way to build personal experiences for Alexa, the self-service APIs, tools, documentation, and code samples in the <a href="https://developer.amazon.com/alexa-skills-kit/" target="_blank">Alexa Skills Kit (ASK)</a> – accessible from the <a href="https://developer.amazon.com/blogs/alexa/post/8914b24e-8546-4775-858c-becd800a3c2f/the-new-alexa-skills-kit-developer-console-is-now-generally-available" target="_blank">new developer console</a> or when used with one of our&nbsp;<a href="https://developer.amazon.com/alexa/agencies-and-tools" target="_blank">agencies or tool providers</a> – enable you to build engaging skills and publish to the Alexa Skills Store to reach customers through tens of millions of Alexa-enabled devices.</p> <h2>Start Building Personalized Voice Experiences Today with Skill Blueprints</h2> <p>There are more than 20 Skill Blueprints available across four categories,&nbsp;and the selection will continue to grow:</p> <p><strong>At Home</strong></p> <ul> <li>Custom Q&amp;A: Customize responses to your questions</li> <li>Houseguest: Make your guests feel at home with quick access to important info</li> <li>Babysitter: Help your sitter find things, remember steps and get important info</li> <li>Pet Sitter: Help your pet sitter care for your favorite animal</li> </ul> <p><strong>Fun &amp; Games</strong></p> <ul> <li>Family Jokes: Create a list of your favorite jokes for when you need a laugh</li> <li>Trivia: Create your own multiple choice trivia game on any topic</li> <li>Inspirations: Curate a list of your favorite inspirational quotes</li> <li>Family Trivia: Play together and brush up on family history</li> <li>Bachelorette Party: Play to find out how well the bride’s friends know her</li> <li>Birthday Trivia: Play to see who knows the birthday girl or boy best</li> <li>Burns: Roast your friends and family with lighthearted burns</li> <li>Compliments: Flatter your favorites with a list of custom compliments</li> <li>Double Trouble: Find out which couple knows each other best with this customizable game</li> <li>First Letter: Play a game of categories starting with a certain letter</li> </ul> <p><strong>Storyteller</strong></p> <ul> <li>Adventure: Write an adventure story where your child is the hero</li> <li>Fairy Tale: Customize an interactive prince and princess-themed tale</li> <li>Sci-Fi: Create an interactive story with a far-out theme</li> <li>Fable: Create a short narrative with a moral of the story</li> </ul> <p><strong>Learning &amp; Knowledge</strong></p> <ul> <li>Flash Cards: Study, test yourself, and master any subject by voice</li> <li>Facts: Keep a list of facts on your favorite topic, all in one place</li> <li>Quiz: Challenge yourself and others with a customizable quiz</li> </ul> <h2>How to Get Started with Skill Blueprints</h2> <p>Follow these three steps to start creating your own personalized voice experiences for Alexa:</p> <ol> <li>Select your Skill Blueprint. Visit <a href="https://blueprints.amazon.com/">blueprints.amazon.com</a> to browse more than 20 Skill Blueprints across four categories, including Fun &amp; Games, At Home, Storyteller, and Learning &amp; Knowledge.</li> <li>Add your skill content and unleash your creativity. Each Skill Blueprint comes with pre-filled content that can be used as-is or customized as you like.</li> <li>Complete your personalized skill with just one click. Your skill will be available on all Alexa-enabled devices associated with your Amazon account.</li> </ol> <p>There is no limit to the number of skills you can create. Need to add even more hilarious jokes to your “Dad’s Jokes” skill? You can easily edit and add more content to your skill from the Skill Blueprints website.</p> <p>Skill Blueprints are available now for customers in the US. Visit <a href="http://blueprints.amazon.com" target="_blank">blueprints.amazon.com</a> to start building your personalized Alexa skills.</p> <h2>More Resources</h2> <p>For more information about Skill Blueprints, visit our <a href="https://blueprints.amazon.com/help/frequently-asked-questions" target="_blank">FAQ</a>.&nbsp;</p> <p>Join us <a href="https://www.twitch.tv/amazonalexa" target="_blank">live on Twitch</a> for <em>Creating Personalized Alexa Skills with Alexa Skill Blueprints</em>, starting at 2 PM PST on Friday, April 20.&nbsp;</p> /blogs/alexa/post/d1e8b7d5-c93f-490e-a8b0-c8c53506e04e/6-dialog-management-resources-to-build-advanced-alexa-skills 6 Dialog Management Resources to Build Advanced Alexa Skills Jennifer King 2018-04-19T12:00:00+00:00 2018-04-19T14:01:41+00:00 <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/c53f5d9ea335b8d81da9f7403b793abc564f0236062f4430b4c08fabdfca5189_64a500f8-d83f-4eba-bf6e-533225cf2cf1._CB488143019_.png" style="height:240px; width:954px" /></p> <p>This resource roundup features our top blog posts on dialog management to help you build conversational Alexa skills.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/c53f5d9ea335b8d81da9f7403b793abc564f0236062f4430b4c08fabdfca5189_64a500f8-d83f-4eba-bf6e-533225cf2cf1._CB488143019_.png" style="height:240px; width:954px" /></p> <p>Conversations are not scripted. When you ask someone a question, the person may or may not provide all of the information that was asked. They may even provide more. When designing your Alexa skill, it’s important to start with this conversation in mind. In an Alexa skill, a dialog with the user is a conversation with multiple turns in which Alexa asks questions and the user responds with the answers.</p> <p>For example, let’s say you built a skill that could book a flight, and it asked the user, “Where are you going?” to which the user replies, “I’m going to Tokyo next Tuesday.” Your skill should recognize that the user gave you more information than what was asked. If you follow up by asking, “When are you leaving?” the user will be frustrated since they’ve already told you when. On the other hand, if your skill asks, “When and where are you going?” and user replies, “I’m going to Tokyo.” Then your skill should recognize that it only received one piece of the necessary information and ask, “Where are you going?” as a follow-up question.</p> <p>There are also many ways to express the same idea, so you should think about the different words you might use when asking a question or the different ways Alexa could respond. For example, if you wanted to ask about the weather, you might use different words like “downpour,” “shower,” “storm,” and “rainstorm” to refer to the “rain.” This ability to use different words occurs naturally in everyday conversation. When incorporated into Alexa skills, you can allow users to have conversations in the way that comes naturally to them, creating an engaging voice experience. Entity resolution allows you to map synonyms to your slot values so you can add more variation into how the user may fill slots.</p> <p>Dialog management makes these types of conversational voice experiences possible. We’ve shared several best practices on the topic over the last several months. Combined with <a href="https://developer.amazon.com/blogs/alexa/post/5de2b24d-d932-4c6f-950d-d09d8ffdf4d4/entity-resolution-and-slot-validation">entity resolution</a>, you can easily disambiguate synonyms that have resolved to more than one value that you have defined. If you’re ready to enhance your Alexa skills using dialog management to enable multi-turn conversations, check out our latest roundup of tutorials, sample skills, and blog posts to get started.</p> <h2><a href="https://developer.amazon.com/blogs/alexa/post/5b0efd02-0ed0-42d5-b922-5ee594d30a38/new-alexa-skills-kit-template-build-an-alexa-decision-tree-skill">Tutorial: Enable Multi-Turn Dialog with the Decision Tree Sample Skill</a></h2> <p>The decision tree sample skill is a great way to practice using dialog management and entity resolution. Previously this sample skill only allowed Alexa to ask yes/no questions. Depending on the answer, Alexa would ask a follow-up question. By applying dialog management, Alexa can ask more engaging questions to collect a set of necessary slots and deliver a more conversational experience to your users. <a href="https://developer.amazon.com/blogs/alexa/post/5b0efd02-0ed0-42d5-b922-5ee594d30a38/new-alexa-skills-kit-template-build-an-alexa-decision-tree-skill">Check out this post</a> to learn more about how you can use the updated sample skill template for a basic decision tree skill.</p> <h2><a href="https://developer.amazon.com/blogs/alexa/post/555d00d6-66b4-4f0b-8974-2021cd9a1630/alexa-skill-teardown-decoding-dialog-management-with-pet-match">Decoding Dialog Management with the Pet Match Skill</a></h2> <p>Pet Match is another sample skill you can use to learn the ins and outs of dialog management.</p> <p>By applying dialog management, Pet Match gains the flexibility to collect the slots, all at once in a one-shot utterance and one or many slots in a multi-turn sequence without writing any code to manage keeping track of which required slots are still missing. This <a href="https://developer.amazon.com/blogs/alexa/post/555d00d6-66b4-4f0b-8974-2021cd9a1630/alexa-skill-teardown-decoding-dialog-management-with-pet-match">skill teardown</a> will walk you through activating dialog management in your voice user interface, and the blocks of code in the backend that hook into the dialog management state machine and delegate collection back to Alexa.</p> <h2><a href="https://developer.amazon.com/blogs/alexa/post/79bc6f74-cfef-47d0-a069-5ed7c0ee5722/taking-control-of-the-dialog-management-state-machine">Taking Control of the Dialog Management State Machine</a></h2> <p>Dialog management greatly reduces the necessary coding required to reprompt for missing slot values. From your interaction model, you mark which slots are required and provide a set of prompts and utterances for each required slot. From your backend, you delegate the collection of the slots to Alexa. Each interaction between the customer and Alexa during dialog management allows to you hook into the state machine and perform your own logic. <a href="https://developer.amazon.com/blogs/alexa/post/79bc6f74-cfef-47d0-a069-5ed7c0ee5722/taking-control-of-the-dialog-management-state-machine">Check out this post</a> to discover how you can leverage dialog management to delegate the state management to Alexa.</p> <h2><a href="https://developer.amazon.com/blogs/alexa/post/d8579cd6-9109-42b2-ada6-df017fc1dee5/how-to-handle-different-intent-requests-with-dialog-management">How to Enable Alexa to Switch Context Mid-Conversation</a></h2> <p>When you have a natural conversation with another person, you might find the conversation can take different directions. Therefore, the context of the conversation can change quite rapidly. The previous iteration of dialog management required the user to complete the dialog to switch context to a different intent, but recent updates now make it possible to switch context between intents part-way through. <a href="https://developer.amazon.com/blogs/alexa/post/d8579cd6-9109-42b2-ada6-df017fc1dee5/how-to-handle-different-intent-requests-with-dialog-management">Read the post</a> to learn more about how you can enable Alexa to maintain context while switching between intents.</p> <h2><a href="https://developer.amazon.com/blogs/alexa/post/44dd83f4-4842-40c5-91f8-3868b9f4608c/using-dialog-management-to-capture-a-and-b-or-c-slots">Using Dialog Management to Capture A and B or C Slots</a></h2> <p>For more advanced multi-turn conversations, you can lean on dialog management to simplify collecting a set of required slots that an intent needs to perform its task for the user. <a href="https://developer.amazon.com/blogs/alexa/post/44dd83f4-4842-40c5-91f8-3868b9f4608c/using-dialog-management-to-capture-a-and-b-or-c-slots">This post</a> walks you through how you can use dialog management to pull a set of required slots from your user based on a condition.</p> <h2><a href="https://developer.amazon.com/blogs/alexa/post/5fe7565a-9547-4e03-be36-6c62ed356d57/dynamically-elicit-slots-during-dialog-management-based-on-previously-given-slot-values">Eliciting Slots Dynamically with Dialog Management</a></h2> <p>Because dialog management requires you to predefine a set of prompts for each required slot, it seems like it wouldn’t be possible to dynamically change Alexa’s response. However, you can use the dialog management state machine to override prompts and determine which slot is going to be prompted for next, including optional slots. <a href="https://developer.amazon.com/blogs/alexa/post/5fe7565a-9547-4e03-be36-6c62ed356d57/dynamically-elicit-slots-during-dialog-management-based-on-previously-given-slot-values">This post</a> walks you through how to accomplish dynamic slot elicitation by overriding predefined prompts and elicited slots with dialog management, using a skill that recommends products as the example.</p> <h2>Build Engaging Skills, Earn Money with Alexa Developer Rewards</h2> <p>Using dialog management, you can build more engaging skills that customers love, and potentially earn rewards. Every month, developers can earn money for eligible skills that drive some of the highest customer engagement. Developers can increase their level of skill engagement and potentially earn more by improving their skill, building more skills, and making their skills available in in the US, the UK and Germany. <a href="https://developer.amazon.com/alexa-skills-kit/rewards">Learn more</a> about our rewards program and start building today.</p> /blogs/alexa/post/9151c680-ddba-4b37-ace1-bc356e5c38c0/publishing-your-device-s-capabilities-to-alexa Publishing Your Product's Capabilities to Alexa Ted Karczewski 2018-04-19T12:00:00+00:00 2018-04-19T12:00:00+00:00 <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaVoiceService/OTA-API-Update-blog._CB497502210_.png" /></p> <p>We're excited to announce the AVS Capabilities API. As Alexa gets smarter with new features and updates that require client-side code changes, you can use the Capabilities API to let Alexa know which interfaces and interface versions your product supports following an over-the-air update.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaVoiceService/OTA-API-Update-blog._CB497502210_.png" /></p> <p>Today we’re excited to announce the Alexa Voice Service (AVS) <a href="https://developer.amazon.com/docs/alexa-voice-service/capabilities-api.html">Capabilities API</a>. As Alexa gets smarter with new features and updates that require client-side code changes, you can use the Capabilities API to let Alexa know which interfaces and interface versions your product&nbsp;supports following an over-the-air (OTA) update.</p> <p>For example, after your product&nbsp;installs an OTA update that adds support for a new Alexa feature, you publish your product's new capabilities to Alexa by specifying the interfaces and interface versions your product supports using the Capabilities API. Alexa will only enable a new feature on products that have successfully installed your OTA update and are ready to support the new feature, leaving products that have not yet updated, unchanged.</p> <p>We are also introducing interface versioning, which enables you to clearly understand changes made to the APIs as new features are added or updated, and communicate those versions to Alexa using the Capabilities API.</p> <p><strong>Device makers who want to upgrade their Alexa-enabled products to support new Alexa features can follow these steps:</strong></p> <p><em>Note: If you are using the AVS Device SDK v1.7 or later, no further action is required.</em><em> </em></p> <h2>1. Familiarize yourself with interface versioning</h2> <p>When new directives and events are added to&nbsp;or removed from&nbsp;an interface, or when message payloads are adjusted, impacted interfaces will be versioned independently using a MAJOR.MINOR scheme.</p> <p><strong>Major Version</strong></p> <p>The MAJOR number for an interface version is increased when incompatibilities are introduced.</p> <p><strong>Minor Version</strong></p> <p>The MINOR number for an interface version is increased for backward compatible, non-breaking changes.</p> <p>For more details on interface versioning and for a list of current and supported interface versions, please see the <a href="https://developer.amazon.com/docs/alexa-voice-service/capabilities-api.html" target="_blank">Capabilities API documentation</a>&nbsp;on the AVS Developer Portal.</p> <h2>2. Update your AVS client code to support the Capabilities API</h2> <p>Capabilities is a new HTTP1.1 API that you must call when your product is first unboxed or when the firmware on your product changes to support new Alexa features. When you call the API, you must provide the complete list of interfaces and interface versions that your product supports.</p> <p>Please see the <a href="https://developer.amazon.com/docs/alexa-voice-service/capabilities-api.html" target="_blank">Capabilities API documentation</a> for a more detailed discussion of the API&nbsp;and a complete set of use cases.</p> <h2>AVS Sample App on GitHub</h2> <p>The AVS Device SDK v1.7 and later supports the Capabilities API and interface versioning. Build your first prototype with Raspberry Pi or download the latest code to see the new features.&nbsp;<a href="https://github.com/alexa/avs-device-sdk/wiki">Prototype with the updated AVS Device SDK for C++ Client for Raspberry Pi now.</a></p> <h2>What is AVS?</h2> <p>AVS is a customizable suite of development tools and resources that make it easy to integrate Alexa directly into your products and bring voice-forward experiences to customers. Through AVS, device makers can add a new natural interface to their products and offer customers access to a growing number of Alexa features, smart home integrations, and skills. Visit the <a href="https://developer.amazon.com/alexa-voice-service" target="_blank">AVS Developer Portal</a> to get started.</p> /blogs/alexa/post/decb3931-2c81-497d-85e4-8fbb5ffb1114/now-available-version-2-of-the-ask-software-development-kit-for-node-js Now Available: Version 2 of the ASK Software Development Kit for Node.js BJ Haberkorn 2018-04-18T18:41:47+00:00 2018-04-18T18:41:47+00:00 <p><img alt="sdk_blog.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/sdk_blog._CB497464748_.png?t=true" /></p> <p>You can use v2 of the Alexa SDK for Node.js to develop skills faster and reduce complexity in your code.</p> <p><img alt="sdk_blog.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/sdk_blog._CB497464748_.png?t=true" /></p> <p>We are excited to announce version 2 of the Alexa Skills Kit (ASK) Software Development Kit (SDK) for Node.js. The updated SDK improves existing features and adds new ones to help you build skills faster and reduce complexity in your code. The ASK SDK v2 for Node.js provides the same core feature set and advantages as the <a href="https://developer.amazon.com/blogs/alexa/post/1a4e8b01-663d-4680-8efd-c28e96e31655/now-available-version-2-of-the-ask-software-development-kit-for-java">ASK SDK v2 for Java that we announced last month</a>.</p> <h2>More Options for Event and Error Handling</h2> <p>We’ve improved the <strong>Request Handlers</strong> in the ASK SDK v2 for Node.js. In v1 of the SDK, each handler could handle only one kind of request determined by the request type. Now in v2 you can easily group request processing logic that applies to one or more request type. You can also use new <strong>Interceptors</strong> to invoke common logic that applies to multiple request types. By centralizing common logic, you can avoid duplicating code. We’ve also added <strong>Error Handlers</strong> in the SDK to allow you to gracefully respond to non-obvious errors in your code, such as missing handlers for infrequent events.</p> <h2>Greater Flexibility in Storing and Retrieving Skill Data</h2> <p>Data storage and retrieval in a skill can be useful for managing customer interactions either during a single session or across multiple sessions; for example, you store the customer’s spot in a story, their level in a game, and much more, and use the stored information to determine what happens next. The <strong>Attributes Manager</strong> provided in v1 of the SDK provided data storage and retrieval, but with limitations: &nbsp;you could store and retrieve data for your skill at only one scope, either for the given skill session for across sessions. If you chose to store data across sessions, you could only use Amazon DynamoDB as your backend store. We removed these limitations in the ASK SDK v2. The updated <strong>Attributes Manager </strong>allows you to store data at the level of the current request, the current skill session, and across multiple skill sessions. In addition, now you can use either DynamoDB or the external database of your choice for storing data across sessions. Finally, you now have multiple options for using the stored data – you can either use it to determine which request handler should be invoked for an incoming request, or by explicitly retrieving and processing it within your handlers or other code.</p> <h2>Simpler Calls to Alexa Services</h2> <p><strong>Alexa Service Clients</strong> enable you to easily make calls to Alexa services, and now we automatically inject endpoint and authentication token information for you. You can now rely on the v2 SDK to populate this information automatically rather than doing it in your code.</p> <p>Improved Packaging and Tool Support</p> <p>We’ve also made improvements to help optimize your development environment:</p> <ul> <li><strong>Modular package setup </strong>allows you to selectively install the package you need for your skill, reducing the code package size when possible. For example, the ask-sdk-core package requires only 40 kb after compression compared to 5 MB for the ask-sdk package.</li> <li>A cleaner handler interface enables <strong>better IDE support</strong>, such as hints and auto-completion. All SDK tools are provided in the handlerInput object which are easily accessible and easier for unit testing.</li> <li>We’ve included <strong>TypeScript definition files</strong> for use in TypeScript projects and to support tools that can read .d.ts files.</li> <li>We support the latest <strong>ecmascript language standard</strong>, which can yield cleaner code style. For example, you can use the async/await combination to replace the Promise callback and minimize the amount of code you have to write.</li> </ul> <h2>Download and Try the Updated SDK</h2> <p>Download the ASK SDK v2 for Node.js from the <a href="https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs">alexa-skills-kit-sdk-for-nodejs</a> repository on GitHub. You’ll find everything you need to get started, from a “Hello, world” sample to the complete technical documentation. If you want to update an existing skill built with v1 of the SDK, read the ASK-SDK-Migration-Guide on GitHub.</p> <p>&nbsp;</p> /blogs/alexa/post/0c975fc7-17dd-4f5c-8343-a37024b66c99/alexa-skill-recipe-using-the-device-address-api-to-request-information Alexa Skill Recipe: Using the Device Address API to Enhance Your Voice Experience Jennifer King 2018-04-18T14:00:00+00:00 2018-04-18T14:00:00+00:00 <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/skill_recipe_blog._CB499280997_.png" style="height:240px; width:954px" /></p> <p>When a customer enables your Alexa skill, your skill can use the Device Address API to request permission from the customer to use address data associated with their Alexa device. In this skill recipe, we'll walk through how you can use address data to enhance the voice experience.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/skill_recipe_blog._CB499280997_.png" style="height:240px; width:954px" /></p> <p><em>Creating an Alexa skill is like cooking a delicious meal. There are many recipes to choose from and several ingredients that go into each one. The </em><a href="https://github.com/alexa/alexa-cookbook"><em>Alexa Skill-Building Cookbook</em></a><em> on GitHub gives you the recipes and ingredients to build engaging Alexa skills, using short code samples and guidance for adding features to your voice experience. With each installment of the </em><a href="https://developer.amazon.com/blogs/alexa/tag/Skill+Recipe"><em>Alexa skill recipe series</em></a><em>, we’ll introduce you to a new recipe that can help you improve your voice design and skill engagement. You’re the chef. Let’s get cooking!</em></p> <p>When a customer enables your Alexa skill, your skill can use the Device Address API to request permission from the customer to use address data associated with their Alexa device. You can then use this address data to enhance the voice experience.</p> <p>For example, using this address information, your skill could provide a list of nearby store locations or restaurant recommendations, deliver food and groceries to a customer’s home, or provide directions to a nearby gym.</p> <p>It’s important to note that this is not the GPS location of the device, but rather the address configured by the customer in their Alexa app settings. Also, the device address is not automatically available to a skill by default. Your skill needs to request permissions from the customer by presenting a card on the Alexa app, along with a helpful voice response. For example:</p> <p style="margin-left:40px"><em><strong>User</strong>: Alexa, ask food buddy for restaurant recommendations.</em></p> <p style="margin-left:40px"><em><strong>Alexa</strong>: Sure. I need your permission to access your zip code to get some yummy recommendations based on your address. I’ve sent a card to your Alexa app that you can use to grant the permissions to this skill to access your zip code.</em></p> <p style="margin-left:40px"><em><strong>User</strong>: &lt;Opens up the Alexa app, and grants the permission using the card sent by the skill.&gt;</em></p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/alexa-app-permissions-annotated._CB498669559_.png" style="display:block; height:500px; margin-left:auto; margin-right:auto; width:1000px" /></p> <p>Once the customer has granted the permissions through the Alexa app, they can go back to interacting with Alexa and getting the location-specific information back from your skill.</p> <p style="margin-left:40px"><strong><em>User</em></strong><em>:</em> <em>Alexa, ask food buddy for restaurant recommendations</em></p> <p style="margin-left:40px"><strong><em>Alexa</em></strong><em>:</em> <em>Here are some recommendations based on your location, …</em></p> <p>As you can see from this simple conversation above, when a user enables a skill with the Alexa app that wants to use location data, the user will be prompted to provide consent for location data to be made available to the skill. It is important to note that when a user enables a skill via voice, the user will <u>not</u> be prompted for this information and the default choice will be &quot;none.&quot; In this case, you should use cards to prompt the user to provide consent using the Alexa app.</p> <h2>Types of Device Address Permissions</h2> <p>There are two levels of location data your skill can request permissions from customers for:</p> <ol> <li><strong>Full address</strong>, which includes street address, city, state, zip, and country.</li> <li><strong>Country and postal code only.</strong></li> </ol> <p>Let’s see how we can achieve the sample conversation above using the Node.js SDK. We will begin by breaking down the several parts into steps, and then bring them all together in an encompassing “device address” recipe at the end of this post.</p> <h2>Part 1: Requesting Permissions from the Customer to Share Address Information</h2> <p><strong>Step 1: Configure your skill in the developer console to indicate that it requires address information.</strong></p> <p>The first thing we need to do is, enable Device Address for our skill in developer console.</p> <ol> <li>Edit your skill in the developer console.
</li> <li>Navigate to the Build &gt; Permissions page.</li> <li>Select Device Address, and then choose either Full Address or Country &amp; Postal Code Only, depending which your skill uses.</li> </ol> <p>For this example, let’s assume that we need the &quot;Full Address.” So, we choose that as shown in the screenshot below:</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/set-permissions-alexa-developer-console._CB498669553_.png" style="display:block; height:1056px; margin-left:auto; margin-right:auto; width:2532px" /></p> <p><strong>Step 2: Request permission through voice and cards.</strong></p> <p>We are now ready to write some code to request permissions from the user. When the customer launches the skill, Alexa should respond back with a helpful message like &quot;<em>Please grant skill permissions to access your device address.</em>” It should also send a card to the customer’s Alexa app that they can use to grant our skill the permissions.”</p> <p>Here’s how we can do this using the Alexa Node.JS SDK:</p> <pre> <code class="language-javascript">//generate the voice response using this.response.speak this.response.speak('Please grant skill permissions to access your device address.'); const permissions = ['read::alexa:device:all:address']; this.response.askForPermissionsConsentCard(permissions); this.emit(':responseReady'); </code></pre> <p>To generate a helpful voice response, we use Alexa Node.js SDK’s <em>askForPermissionsConsentCard()</em> method to generate the permissions card for us, and pass it the permissions we need as a parameter.</p> <p><strong>Understanding Permissions Scope</strong></p> <p>Permissions is a list of scope strings that match the scope that we declared for the skill on the Configuration page in the Amazon developer portal in step 1. In this case, it’s <strong>read::alexa:device:all:address. </strong>If the request was for the country and postal code, then the permissions value in this response will be <strong>read::alexa:device:all:address:country_and_postal_code.</strong></p> <p>As a general rule, you should include only those Alexa permissions that are both needed by your skill and that are declared in your skill metadata on the Amazon developer portal.</p> <table border="1" cellpadding="1" cellspacing="1" style="height:232px; width:706px"> <tbody> <tr> <td style="text-align:center"><strong>Device Address Permissions on the Developer Console</strong></td> <td style="text-align:center"><strong>permissions =&nbsp;</strong></td> </tr> <tr> <td style="text-align:center">Full Address</td> <td style="text-align:center">['read::alexa:device:all:address’]</td> </tr> <tr> <td> <p style="text-align:center">Country &amp; Postal Code Only</p> </td> <td style="text-align:center">['read::alexa:device:all:address:country_and_postal_code’]</td> </tr> </tbody> </table> <p>Now we are all set with part 1 and requesting permissions from the customer. We are now ready to obtain the permissions granted by the user, and use the address data to deliver the appropriate response based on their location. Let’s do that now in part 2.<strong> </strong></p> <h2>Part 2: Using Address Data After Receiving Permissions</h2> <p>Now that we have requested the permissions from the customer (and hopefully, the customer has granted those permissions through the Alexa app), we now need to call the Device Address API to retrieve those permissions, and use that to get the address data of the customer.</p> <p><strong>Step 1: Get the deviceId and apiAccessToken from the JSON request. </strong></p> <p>To call the Device Address API, we need the device ID (deviceId) and the API access token (apiAccessToken). This is included in the JSON requests sent to your skill.</p> <p>Each JSON request sent to your skill includes the device ID (deviceId). And regardless of whether the user granted your skill the permissions needed to fulfill the request, it also includes an API access token (apiAccessToken), which encapsulates the permissions granted to your skill.</p> <p>Here’s an example of a request that your skill may receive:</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/before-permissions-json._CB498669556_.png" style="display:block; height:875px; margin-left:auto; margin-right:auto; width:750px" /></p> <p>Using the Alexa Node SDK, we can grab these values with the following code:</p> <pre> <code class="language-javascript">const token = this.event.context.System.apiAccessToken const deviceId = this.event.context.System.device.deviceId; </code></pre> <p><strong>Step 2: Obtain the endpoint for the Device Address API.</strong></p> <p>Next, we need the endpoint for the Device Address API. The endpoint for the Device Address API varies depending on the geographic location of your skill. You can get the correct base URL to use from the apiEndpoint value in the System object: context.System.apiEndpoint in the JSON request (see request above).</p> <p>Using the Alexa Node SDK, we can grab the API endpoint with the following code:</p> <pre> <code class="language-javascript">const apiEndpoint = this.event.context.System.apiEndpoint; </code></pre> <p><strong>Step 3: Call the Device Address API.</strong></p> <p>Once we have obtained the deviceId, the apiAccessToken, and the apiEndpoint from the JSON request, we are ready to call Device Address API, and get the address data for our customer. Here’s the code to do just that:</p> <pre> <code class="language-javascript">const das = new Alexa.services.DeviceAddressService(); das.getFullAddress(deviceId, apiEndpoint, token) .then((data) =&gt; { this.response.speak('&lt;address information&gt;'); console.log('Address get: ' + JSON.stringify(data)); //print log to Amazon CloudWatch this.response.speak(&quot;You are in &quot; + data.city); this.emit(':responseReady'); }) .catch((error) =&gt; { this.response.speak('I\'m sorry. Something went wrong.'); this.emit(':responseReady'); console.log(error.message); }); </code></pre> <p>We create an instance of &quot;DeviceServiceAddressService&quot; built into the Alexa Node SDK, and then use that to call the <strong>getFullAddress()</strong> method (or <strong>getCountryAndPostalCode()</strong> method if you were requesting country and postal code only). This returns the following JSON string that we use to create our response (data.city):</p> <pre> <code class="language-javascript">{ &quot;addressLine1&quot;: &quot;7 W 34TH ST 6TH FLOOR&quot;, &quot;addressLine2&quot;: null, &quot;addressLine3&quot;: null, &quot;districtOrCounty&quot;: null, &quot;stateOrRegion&quot;: &quot;NY&quot;, &quot;city&quot;: &quot;NEW YORK&quot;, &quot;countryCode&quot;: &quot;US&quot;, &quot;postalCode&quot;: &quot;10001-8100&quot; } </code></pre> <h2>The Skill Recipe: Bringing It All Together</h2> <p>Here is the all-encompassing recipe that you can use from one of your intent handlers to request device address permissions (part 1) and obtain the address data of the customer (part 2).</p> <pre> <code class="language-javascript">'DeviceAddressIntent': function () { console.log(JSON.stringify(this.event)); if (this.event.context.System.user.permissions) { const token = this.event.context.System.user.permissions.consentToken; const apiEndpoint = this.event.context.System.apiEndpoint; const deviceId = this.event.context.System.device.deviceId; const das = new Alexa.services.DeviceAddressService(); das.getFullAddress(deviceId, apiEndpoint, token) .then((data) =&gt; { this.response.speak('&lt;address information&gt;'); console.log('Address get: ' + JSON.stringify(data)); this.response.speak(&quot;You are in &quot; + data.city); this.emit(':responseReady'); }) .catch((error) =&gt; { this.response.speak('I\'m sorry. Something went wrong.'); this.emit(':responseReady'); console.log(error.message); }); } else { this.response.speak('Please grant skill permissions to access your device address.'); const permissions = ['read::alexa:device:all:address']; this.response.askForPermissionsConsentCard(permissions); console.log(&quot;Response: &quot; + JSON.stringify(this.response)); this.emit(':responseReady'); } } </code></pre> <p>The only one new thing we have added in this recipe is the if/else statement, just to check if the user has granted us permissions. If they have, the “permissions” property will be included in the JSON request. In the GIF below, you can see that the permissions property is included in the JSON request sent to your skill after the permissions have been requested from the customer.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/before-after-permissions._CB498669562_.gif" style="display:block; height:960px; margin-left:auto; margin-right:auto; width:640px" /></p> <p>For more recipes, check out the <a href="https://developer.amazon.com/blogs/alexa/tag/Skill+Recipe">skill recipe series</a> on the Alexa blog or visit the <a href="https://github.com/alexa/alexa-cookbook" target="_blank">Alexa Skill-Building Cookbook</a> on GitHub.</p> <h2>More Resources</h2> <ul> <li><a href="https://developer.amazon.com/docs/custom-skills/device-address-api.html" target="_blank">Device Address API Documentation</a>
</li> <li><a href="https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs#device-address-service" target="_blank">Accessing Device Address API Using the Alexa Node SDK </a></li> <li><a href="https://github.com/alexa/skill-sample-node-device-address-api" target="_blank">Sample Skill for Device Address (Node.js)</a></li> <li><a href="https://developer.amazon.com/blogs/alexa/tag/Skill+Recipe">More Alexa Skill Recipes</a></li> </ul> <h2>Build Engaging Skills, Earn Money with Alexa Developer Rewards</h2> <p>Every month, developers can earn money for eligible skills that drive some of the highest customer engagement. Developers can increase their level of skill engagement and potentially earn more by improving their skill, building more skills, and making their skills available in in the US, UK and Germany.<a href="https://developer.amazon.com/alexa-skills-kit/rewards"> Learn more</a> about our rewards program and start building today.<a href="https://developer.amazon.com/alexa-skills-kit/guide/build-engaging-skills"> Download our guide</a> or watch our<a href="https://attendee.gotowebinar.com/register/4673294238964482305" target="_blank"> on-demand webinar</a> for tips to build engaging skills.</p> /blogs/alexa/post/ccb2d51c-3eb8-4fa4-8c04-709e4294b929/enhance-your-audio-skill-visuals-for-echo-show-and-echo-spot Enhance Your Audio Skill Visuals for Echo Show and Echo Spot Shiraz Datta 2018-04-17T15:04:57+00:00 2018-04-20T18:18:56+00:00 <p><img alt="Audio-Player-Enhancement_Blog.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/Audio-Player-Enhancement_Blog._CB497188990_.png?t=true" /></p> <p>Today, we are happy to announce an important update to the AudioPlayer interface to help you enhance the visuals for your audio skills for Echo Show and Echo Spot. Now you can send additional metadata about the playing track with the Play directive.</p> <p><img alt="Audio-Player-Enhancement_Blog.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/Audio-Player-Enhancement_Blog._CB497188990_.png?t=true" /></p> <p>Based on your feature request, we are happy to announce an important update to the <a href="https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html" target="_blank">AudioPlayer interface</a> to help you enhance the visuals for your audio skills for Echo Show and Echo Spot. Now you can send additional metadata about the playing track with the <a href="https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html#play" target="_blank">Play directive</a>. This metadata enhances your audio skill with visuals and other information, increasing the visual elements of your audio skill on Echo Show and Echo Spot. Your audio skill can now include album artwork, audio title, subtitle, and a background image. You provide these assets in the Play directive’s new metadata object.</p> <p>You can update your existing audio skill immediately by adding the additional audio metadata in your code. After making these updates, you don’t have to submit your skill for recertification. On Echo Show and Echo Spot, audio skills that use additional metadata with the Play directive will now appear as shown below:</p> <p><img alt="Audio_Player.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/Audio_Player._CB497188985_.png?t=true" /></p> <p style="text-align:justify">Here is a sample code showing the <a href="https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html#play" target="_blank">Play directive</a> with the new metadata object:</p> <pre> <code class="language-json">{ &quot;type&quot;: &quot;AudioPlayer.Play&quot;, &quot;playBehavior&quot;: &quot;valid playBehavior value such as ENQUEUE&quot;, &quot;audioItem&quot;: { &quot;stream&quot;: { &quot;url&quot;: &quot;https://url-of-the-stream-to-play&quot;, &quot;token&quot;: &quot;opaque token representing this stream&quot;, &quot;expectedPreviousToken&quot;: &quot;opaque token representing the previous stream&quot;, &quot;offsetInMilliseconds&quot;: 0 }, &quot;metadata&quot;: { &quot;title&quot;: &quot;title of the track to display&quot;, &quot;subtitle&quot;: &quot;subtitle of the track to display&quot;, &quot;art&quot;: { &quot;sources&quot;: [ { &quot;url&quot;: &quot;https://url-of-the-album-art-image.png&quot; } ] }, &quot;backgroundImage&quot;: { &quot;sources&quot;: [ { &quot;url&quot;: &quot;https://url-of-the-background-image.png&quot; } ] } } } }</code></pre> <p style="text-align:justify"><a href="https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html" target="_blank">Learn more</a><strong> </strong>about the AudioPlayer interface and how to add a title, subtitle, artwork, and background image to your audio skill for Echo Show and Echo Spot.</p> <h2 style="text-align:justify">Build Engaging Skills, Earn Money with Alexa Developer Rewards</h2> <p style="margin-left:0in; margin-right:0in">Every month, developers can earn money for eligible skills that drive some of the highest customer engagement. Developers can increase their level of skill engagement and potentially earn more by improving their skill, building more skills, and making their skills available in the US, UK, and Germany. <a href="https://developer.amazon.com/alexa-skills-kit/rewards" target="_blank">Learn more</a> about our rewards program and start building today.</p> /blogs/alexa/post/a9e49714-7167-4808-acea-5695b6c94296/things-every-alexa-skill-should-do-use-a-memorable-invocation-name-and-utterances Things Every Alexa Skill Should Do: Use a Memorable Invocation Name and Utterances Jennifer King 2018-04-17T14:00:00+00:00 2018-04-17T14:00:00+00:00 <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/blog(10)._CB498456606_.png" style="height:240px; width:954px" /></p> <p>It can be easy to come up with an invocation name for your Alexa skill, but it’s more important to come up with a name that’s memorable. Keep these best practices in mind when creating your invocation name and sample utterances for your Alexa skill.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/default/blog(10)._CB498456606_.png" style="height:240px; width:954px" /></p> <p><em>Editor's Note: This is an installment of our new series called </em><a href="https://developer.amazon.com/blogs/alexa/tag/10+Things"><em>Things Every Alexa Skill Should Do</em></a><em>, which highlights the important features and lessons that every skill builder can use to make their skills more engaging for customers. Follow the series to learn, get inspired, and build engaging Alexa skills.</em></p> <p>It can be easy to come up with an invocation name for your Alexa skill, but it’s more important to come up with a name that’s memorable. A great example of this is “Alexa, open the <a href="https://www.amazon.com/The-Magic-Door-LLC/dp/B01BMUU6JQ/ref=sr_1_1?s=digital-skills&amp;ie=UTF8&amp;qid=1520340637&amp;sr=1-1&amp;keywords=magic+door" target="_blank">Magic Door</a>.” The invocation name, paired with the starting phrase “open” paints a rich image in your head. When you open this skill, you’re even presented with the sound of a creaking door. This kind of effective invocation name makes it much easier for your customers to remember the name of your skill the next time and return to it in the future.</p> <p>Crafting a great invocation name is only the first step. I’m currently building a game skill that gives the user three clues, and asks them to determine what those clues have in common.&nbsp; I came up with a long list of clever names for this game, but eventually settled on the name “Three Clues.” It describes exactly what the game is, and it’s easy to remember. On its own, it works pretty well, but that’s not enough.</p> <p>The catch to this is that users don’t generally just say your invocation name when they want to start your skill.&nbsp; They say things like:</p> <p style="margin-left:40px">“Alexa, let’s play Three Clues.”</p> <p style="margin-left:40px">“Alexa, start Three Clues.”</p> <p style="margin-left:40px">“Alexa, open Three Clues.”</p> <p>You create a memorable statement for your customer within these sample utterances. “Alexa, let’s play Three Clues” is a perfect example of a memorable utterance, primarily because it is phrased the way a user would say it to a friend. It’s a natural speech pattern, and one that your user won’t have to commit to memory to reproduce.</p> <p><img alt="" src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/blog/ten-things/consider-invocation-name-and-utterances/ThreeClues._CB1523367127_.png" style="display:block; height:500px; margin-left:auto; margin-right:auto; width:1005px" /></p> <p>You’re not just limited to the words “open” or “play,” however. The list of starting phrases a user can say is pretty extensive, including words like “ask,” “begin,” launch,” “load,” “resume,” “run,” and “tell.” (<a href="https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html">You can see the complete list, including the ways users interact with skills here</a>.)</p> <p>As you’re working on your skill, consider how a user will start interacting with it. A memorable pairing between a starting phrase and your invocation name can make all the difference. A user can say any of the starting words to start using your skill. By taking the time to consider and present a memorable example phrase, you can create one that sticks in their head and keeps them coming back to your skill.</p> <h2>Get the Guide: 10 Things Every Alexa Skill Should Do</h2> <p>With more than 30,000 skills in the Alexa Skills Store, we’ve learned a lot about what makes a skill great, and what you can do to create incredible voice experience for your customers. Download the complete guide about <a href="http://dev.amazonappservices.com/10ThingsEveryAlexaSkillShouldDoGuide.html?sc_campaign=10ThingsGuide&amp;sc_channel=SM&amp;sc_details=Blog1" target="_blank">10 Things Every Alexa Skill Should Do</a> for more tips, code samples, and best practices to help you start building incredible voice experiences for your customers. <a href="http://dev.amazonappservices.com/10ThingsEveryAlexaSkillShouldDoGuide.html?sc_campaign=10ThingsGuide&amp;sc_channel=SM&amp;sc_details=Blog1" target="_blank">Get the guide now</a>.</p> /blogs/alexa/post/6bfbb61f-cab8-4c3f-8c09-2b71ac72a555/what-you-missed-on-twitch-april-2-13 What You Missed from Amazon Alexa on Twitch (April 2-13) Memo Doring 2018-04-13T15:00:00+00:00 2018-04-15T15:27:22+00:00 <p>Check out what happened on Twitch this week with the Amazon Alexa team.</p> <p>The Alexa developer evangelist team uses <a href="http://twitch.tv/amazonalexa" target="_blank">Twitch</a> to bring you live streaming sessions on all things voice. We do live skill building, dig into voice design concepts, and answer questions from the community. Our Twitch channel is a great place to interact with our evangelists and other skill builders.</p> <p>Here’s a quick recap of what we've been up to on Twitch. If you want to get an alert every time we go live, follow our channel, <a href="https://www.twitch.tv/amazonalexa" target="_blank">twitch.tv/amazonalexa,</a> and keep notifications on.</p> <p>We've hosted two new streams since we launched the new Java SDK. In the first one, we covered how to get started. We showed how to work with Maven from the command line, as well as setting up an IDE. We also built and deployed a &quot;Hello World&quot; Alexa skill. In the second session, our team's Java expert <a href="https://twitter.com/cwillycs" target="_blank">Cami Williams</a> did a <a href="https://www.twitch.tv/videos/245890684" target="_blank">deep dive on the new quiz game tutorial</a>. Cami covered several of the new SDK features like <a href="https://github.com/alexa/alexa-skills-kit-sdk-for-java/wiki/Request-Processing" target="_blank">request processing</a> and <a href="https://github.com/alexa/alexa-skills-kit-sdk-for-java/wiki/Response-Building" target="_blank">response building</a>.</p> <p><a href="https://twitter.com/paulcutsinger" target="_blank">Paul Cutsinger</a> also joined me to start <a href="https://www.twitch.tv/videos/246270684?t=01h16m01s" target="_blank">Live Coding &quot;Water Check,&quot;</a> a skill to help us track our water intake. This skill we will be focused on streak tracking, so we are persisting data using Amazon Dynamo DB. In the second session, I focused on getting the core functionality fleshed out. Finally, Paul and I <a href="https://www.twitch.tv/amazonalexa/manager/edit/249548177" target="_blank">added a welcome screen </a>to the skill using <a href="https://developer.amazon.com/docs/custom-skills/display-interface-reference.html">Display Directives.</a> We will continue to live code this skill on Twitch in the coming weeks.</p> <p>We were also happy to have <a href="https://twitter.com/jeffblankenburg" target="_blank">Jeff Blankenburg’s</a> weekly stream <a href="https://www.twitch.tv/videos/246559124" target="_blank">&quot;The Joy of Voice</a>&quot; as part of our stream. Jeff will be showing off his voice-design skills during his weekly streams. He'll implement advanced voice user interface (VUI) features and build a fully-featured skill over the next eight weeks. Check out the <a href="https://www.twitch.tv/videos/246559124" target="_blank">first</a> and <a href="https://www.twitch.tv/videos/249230504" target="_blank">second</a> episodes to get up-to-speed on his skill-building journey.</p> <p>Last, I kicked off our “Meet the Dev” series with an interview with <a href="https://twitter.com/flreln" target="_blank">Vasili Shynkarenka</a>, CEO of <a href="https://getstoryline.com/" target="_blank">Storyline</a>. He shared a demo of Storyline, his online conversation editor, and <a href="https://www.twitch.tv/videos/247407462?04m" target="_blank">we discussed how non-coders can get started</a> developing Alexa skills using the tool.</p> <h2>Join Us Every Week on Twitch</h2> <p>You can find Alexa evangelists on Twitch every week at <a href="https://www.twitch.tv/amazonalexa" target="_blank">twitch.tv/amazonalexa</a>. Follow our channel to get notifications every time we stream. You can also tune in to our Office Hours on Tuesdays. During these <a href="https://register.gotowebinar.com/rt/8924773651242797059" target="_blank">weekly one-hour sessions</a> our rotating cast of Alexa evangelists and solution architects are available to answer questions from skill builders in the community. We look forward to meeting you on Twitch!</p> /blogs/alexa/post/b371e45a-6e91-481c-9f52-a5bda5f9e1e8/announcing-new-ways-to-validate-example-phrases-for-your-alexa-skills Announcing New Ways to Validate Example Phrases for Your Alexa Skills Shiraz Datta 2018-04-12T14:38:41+00:00 2018-04-13T15:50:38+00:00 <p><img alt="Example-Phrase_Blog.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/Example-Phrase_Blog._CB498128327_.png?t=true" /></p> <p>The new example phrase validation and&nbsp;Skill Validation API help you to improve your skill’s example phrases and avoid related certification errors.&nbsp;</p> <p><img alt="Example-Phrase_Blog.png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/Example-Phrase_Blog._CB498128327_.png?t=true" /></p> <p>We are excited to announce new ways to&nbsp;test and validate&nbsp;example phrases for your Alexa skills. Example phrase validation runs a series of tests on your skill’s example phrases and provides in-line real-time validation feedback. You can use this feedback to improve your skill’s example phrases and avoid related certification errors. You can <a href="https://developer.amazon.com/docs/devconsole/launch-your-skill.html#example-phrases" target="_blank">validate example phrases </a>through the Alexa developer console, or by using the new Skill Validation API (beta) through the <a href="https://developer.amazon.com/docs/smapi/skill-validation-api.html" target="_blank">Skill Management API</a> (SMAPI) or <a href="https://developer.amazon.com/docs/smapi/ask-cli-command-reference.html#validate-skill-subcommand" target="_blank">Alexa Skills Kit Command-Line Interface</a>&nbsp;(ASK CLI). These services are currently available to skills using the English language.&nbsp;</p> <h2>Validate Example Phrases in the Developer Console</h2> <p>Example phrase validation is accessible through the <a href="https://developer.amazon.com/docs/devconsole/launch-your-skill.html#example-phrases" target="_blank">Alexa developer console</a>. When you enter example phrases on the Launch page, it verifies whether an example phrase is correct and provides guidance, as shown below:</p> <p><img alt="example-phrase-validation-full_(2).png" src="https://m.media-amazon.com/images/G/01/DeveloperBlogs/AlexaBlogs/AlexaSkillsKit/example-phrase-validation-full_(2)._CB497190124_.png?t=true" /></p> <h2>Skill Validation API in ASK CLI and SMAPI</h2> <p>You can validate example phrases via <a href="http://developer.amazon.com/docs/smapi/ask-cli-command-reference.html#validate-skill-subcommand" target="_blank">ASK CLI</a> or through <a href="http://developer.amazon.com/docs/smapi/skill-validation-api.html" target="_blank">SMAPI</a> using the Skill Validation API (beta). The API runs a set of tests to validate your skill before submission for certification or at any time during development.&nbsp;As an example, the following command, run from the command line, validates a skill (substitute the actual skillId value) for the default development stage.</p> <pre> <code class="language-json">$ ask validate -s my-skill-id</code></pre> <p>The results are returned in JSON format, just as shown below when corresponding SMAPI commands are run.</p> <p>The <a href="https://developer.amazon.com/docs/smapi/skill-validation-api.html" target="_blank">Skill Validation API</a> can also be accessed through SMAPI, using a POST command to validate your skill, and a GET command to get the results of the validation. A JSON response is returned with the results. You can determine whether to validate the “DEVELOPMENT” or the “LIVE” stage of your skill.</p> <p>See a <a href="https://developer.amazon.com/docs/smapi/skill-validation-api.html#sample-response-to-skill-validation" target="_blank">sample JSON response with example phrase validation.</a></p> <p>See the <a href="https://developer.amazon.com/docs/smapi/skill-validation-api.html" target="_blank">Skill Validation API</a> for more implementation details.</p> <p>Here are some sample commands:</p> <pre> <code class="language-json">POST /skills/{skillId}/stages/{stage}/validations GET /skills/{skillId}/stages/{stage}/validations/{validationId}</code></pre> <p>The <a href="https://developer.amazon.com/docs/smapi/skill-validation-api.html" target="_blank">Skill Validation API</a> is offered as a <em>beta</em> and may improve or change as we receive feedback and iterate on the feature. Please provide your feedback to this forum thread: <a href="https://forums.developer.amazon.com/questions/164367/wanted-feedback-on-skill-validation-api.html" target="_blank">Wanted: Feedback on Skill Validation API</a>.</p> <h2>Build Engaging Skills, Earn Money with Alexa Developer Rewards</h2> <p>Every month, developers can earn money for eligible skills that drive some of the highest customer engagement. Developers can increase their level of skill engagement and potentially earn more by improving their skill, building more skills, and making their skills available in the US, UK, and Germany. <a href="https://developer.amazon.com/alexa-skills-kit/rewards" target="_blank">Learn more</a> about our rewards program and start building today.</p>