Article: Before You Build an Alexa Skill
Also on LinkedIn
Amazon Alexa provides a voice-to-action framework for development of custom skills. Custom Alexa skills can do anything – order a taxi, consume an API, or just provide a conversation. The functionality itself is only a small part of building an Alexa skill, though. This post lays out some of the other factors to be prepared for when you think about building a custom Alexa skill - specifically, whether your skill fits well within the Alexa interaction model.
Will Your Skill Fit?
Before writing any code, it’s important to understand how your new Alexa skill will perform within the confines of the Alexa world. Some kinds of functionality and interaction don’t belong well and as a result seem kludgy or provide a frustrating user experience.
Does your skill need multiple user inputs to work?
Although Alexa interactions can be conversational, increasing the number of things the user is required to provide up-front can dampen the overall user experience. For example, a skill for purchasing concert tickets might be rarely used because it asks for the band name, date, location, price option, and seating all in one go. Imagine a user saying “Alexa, ask Concert Guru to find tickets for Disturbed in Madison WI on January 25th under forty-five dollars in the front row”. Since Alexa’s voice-to-text can be prone to misinterpretation, Concert Guru is providing five opportunities for their skill to fail completely in the eyes of the user.
If your skill can function with just some of the parameters you can ask the user for each one independently, which helps maintain a good user experience. There’s still a point where providing those inputs is tedious, though, so be aware of when you’re asking too much from the user before providing value back.
Can your skill respond in less than 5 seconds?
After invoking your skill endpoint, Alexa will wait up to 5 seconds for a response. If no response is received, your users hear an error message like “The Inbound Asteroid skill is not responding”. To prevent this, make sure any APIs your Alexa skill consumes are performant and will return their responses to your skill in time for your skill to respond to Alexa. If that’s not possible, your skill is probably not ready for implementation. The NASA Near Earth Object API that Inbound Asteroid consumes is fast enough to meet this criterion while still providing time for extra processing – otherwise we couldn’t have successfully implemented it.
Does your skill rely on privileged information?
It is possible to link a user’s Amazon account to an account in your organization’s system, but it requires a fair amount of extra work and additional user interactions. You can create a card that displays a link on the Amazon Alexa phone app which the user must click to create the link. Although this is a security necessity, it also means future interactions with that Alexa device will likely assume only one person uses your skill. Can you counteract this tediousness by providing some functionality without user account information? For example, your skill might allow a user to say their order number to hear its status, but require user account information before being able to change the shipping address. This helps the user get value from your skill even if they haven’t yet linked their account with your organization.
Inbound Asteroid on Amazon.com | Inbound Asteroid home