Getting started with Alexa Skills
This is from a presentation given in Sept 2018 at the Denver Alexa Meetup, slides available here
When you build skills, you reach customers through alexa-enabled devices. There is a whole suite of devices with Alexa that enable different use cases. For example. Fire TV customers can use Alexa to control their TV with voice—without a remote. There are many more third-party devices that also have Alexa, and some places you might not expect.
- Echo 1-2, tap, dot
- Show and spot
- Fire TV and remote, Fire cube
- Your phone, Alexa app, Amazon app
- Even a light switch!
On top of all this, there are also ad-on devices
- Echo Button
- Echo Connect
With all this come lots of new opportunities. Of course there is a need for project managers, and developers, but there are also entirely new skill sets. VUI design is completely new, it is unlike designing for any other platform. As voice grows and becomes more and more pervasive, voice marketers will also be in demand.
50,000 skills already
We’re here to talk about building engaging skills for Alexa. A quick overview of skills – Skills are like apps for the smartphone. Developers build skills to add new functionalities and make Alexa smarter. And customers can enable the skills of their choosing to create a more personalized experience.
There are already over 50K skills for Alexa alone, and yet only a fraction of users have installed or use 3P skills. With skill discovery becoming easier and spontaneous the opportunity continues to grow.
Multi modal devices
Voice is amazing, but not everything is best suited to a voice experience. Multi-modal devices offer a way to combine both a voice interface with a screen.
Or the echo spot. Two very different multimodal experiences.
Where is Alexa?
Alexa is available in over 80 countries including the US, UK, Mexico, Germany, Italy, Austria, Spain, India, with more countries being added. This gives you a lot of potential users as well as new challenges when working to internationalize your skills.
This isn’t new, but something every Alexa developer should know. Every month, you can earn money for engaging skills that drive some of the highest customer engagement. Seven different categories are eligible including games, lifestyle, and health and fitness.
Remember: You can increase your level of skill engagement and potentially earn more by improving your skill, building more skills, and making your skills available in more places.
Don’t miss out, publish your skill now!
Not only can you earn money, you can also save money. You can build and host most skills for free with AWS promo credits.
If you have a published skill, you can apply to receive a $100 AWS credit. You can receive an additional $100 per month in credits if you incur AWS usage charges for their skill.
Voice Design Guide
Designing for voice is different than screen based apps. Voice is an unbounded medium, the constraints you are used to on a screen just don’t exist. Not to mention that we write much differently than we talk. This forces you to work through the conversation design by speaking to other people, it rarely works to just script it out. Amazon has a great guide to get you started.
SMAPI + ASK CLI
The Skill Management API (SAMPI) gives you the ability to programmatically manage your skill’s lifecycle, and the ASK CLI provides the ability to do the same from the command line.
As you start building questions come up, fortunately there is a great community around Alexa Skills. The AlexaDevs are helpful, and you can reach them on social media as well as a few other places.
- Slack channel – http://www.alexaslack.com/
- Office hours – http://alexa.design/officehours
- Twitch – https://www.twitch.tv/amazonalexa
Types of Skills
|Public||Alexa For Business|
|Custom||Smart Conference Room|
|Smart Home||Private Custom|
There are also blueprints! Blueprints allow you to create personalized skills for your own use without needing to write any code or know any of the details about how the skill is hosted. There are over 20 templates (blueprints) to use to build your skills. You can even share them with others.
Create a skill overview
Now you know the ecosystem, let’s get started building skills!
Skill development lifecycle
So where to start? More so than any other software development lifecycle, user experience design is critical. Getting the voice experience right is the most important task when building a skill. It also directly influences how you build your code, so most of your time will be spent here.
Creating an Alexa Skill
There are two components to an Alexa skill, frontend and backend. The frontend is managed in the Amazon developer portal.
and the backend is a service you host. AWS is a great way to host your skill’s backend code, and even required for a few types of skills. You can use either a lambda function or make requests to an HTTP endpoint.
Utterances, Intents, and Code
When a user invokes your skill, you receive and Intent. In order to link what a user says to your intent you define sample utterances for each intent. The more samples you have the better job Alexa can do identifying which intent the user needs. It is the Intent that is passed to your skill code, and not the text (utterance) or audio from the user interaction. So how does that work?
It’s a voice browser
It’s what you might expect. The audio stream is sent to the Alexa cloud where it is processed and an intent created that is sent to your skill. What does your skill code get in that request?
JSON! The request is simply a JSON body containing information about the request, the user and device as well as the intent and any state you have saved in previous requests in the session. More on that latter…
Four main Requests
Start a session without a specific intent. If your skill has a long running interaction, like some games, or has only one function, this is the way to go.
Alexa, open My Skill
Start a session to accomplish a specific task.
Alexa, ask My Skill to Do My Thing
- CanFulfillIntentRequest Optional
CanFulfillIntentyour skill can be launched by Alexa without it’s invocation name. The AI can (but might not) pick your skill when a user asks Alexa for an intent you support.
Used to inform your skill that the User has ended the session. You can use it to clean up state and say good bye. Not sent after an
A simple request and response. All information needed for your skill to respond is included.
Alexa, ask Joke Maker to tell me a joke, your skill then responds
Alexa and Siri walk into a bar... and the session is done.
Multi turn request
A multi turn request is when your skill needs more information from the user to complete the interaction. It is more of a conversational style.
Wake and launch words
Understand How Users Invoke Custom Skills
To invoke your skill users can use a wide array of launch words and connectors to specify intents. Things like
Alexa, ask My Skill for cool stuff or
Alexa, get some awesome with My Skill. There are a lot of possibilities, the Alexa design guide is the place to look for what is possible.
Time to start building! The ASK CLI is the quickest way to get a skill up and running, but getting everything setup takes a bit of work. Now we will walk through setting up a development environment for building your skills…
For instructions on setting it up on your own see Alexa Development Environment