Conversational interfaces and virtual personal assistants are the future. They promise great advantages to businesses by improving customer experiences and marketing unobtrusively. 18% of adults in the U.S. already own a smart speaker, and the number is growing. In the first quarter of 2018, Amazon alone sold 4 million items globally.
Amazon Echo, Echo Dot, Echo Tap, Echo Show, and Echo Spot — all these devices are powered by Amazon’s voice service Alexa. One of their strengths is the vast library of voice-driven abilities called Alexa skills. They help users with a variety of needs and wishes, from getting a ride with Uber to voice shopping with Amazon Prime. More than 30,000 skills are available on Amazon’s website and Amazon Alexa app. The number will be increasing consistently due to growing demand and Amazon’s strategy of facilitating the development of skills. Nowadays, it’s accessible virtually to everyone thanks to Alexa Blueprints and other products of Amazon.
Would you like to give your old girl Echo a unique capability? Or are you interested in creating a custom skill to grow your business’ brand value? Even if your ambition is to become an Alexa skills developer, this article should offer some starter tips.
Basic Alexa Skill Development
A skill is, in essence, an application for an Alexa-enabled device, the interface between the voice service and the user. It must help the latter achieve a specific goal hands-free. (Although skills are called Alexa apps, they shouldn’t be confused with the Amazon Alexa companion mobile application. It’s used to set up Alexa devices, enable the use of compatible services and additional features, connect with smart home devices, etc.)
The free Alexa Blueprints service allows owners of Echo devices to endow them with unique abilities without any programming. You’ll only have to log into the Amazon account that you use for Alexa. The process is straightforward and user-friendly.
It starts at the Blueprints webpage. The service offers some 30+ ‘skill blueprints’. These are templates of the possible capabilities, currently ranging from an ‘Adventure’ to the ‘World’s Best Mom.’ While most scripts seem to be about fun and games, others may prove to be really useful. For example, the ‘Houseguest’ looks like an excellent solution for Airbnb hosts. They can enable a smart speaker to answer the guests’ questions about the home appliances, house rules, where they can find things, etc.
Each blueprint has a description, a sample to listen, and a short instruction. Here is an example: the ‘Babysitter’ template should enable Alexa to help the babysitter or family member in charge of the small one when you are away.
If an available template contains your desired functionality, select ‘Make Your Own.’ The service will walk you through customizing the script by following the ‘blueprint.’ You basically need to fill out an online form in three steps. For the ‘Babysitter,’ this means to provide the information on the child’s habits and schedule, any allergies or medications they take, emergency contacts, etc. Then, you may customize the default ‘hello-goodbye’ utterances if you want. Finally, you’ll have to give your new Alexa app a title. The phrase will be used to trigger the skill. For best results, avoid using last and first names, because Alexa is still learning to recognize and pronounce them.
Once you’re done, click on the ‘Create’ button to save the new capability. That will push it live to your Amazon account and the associated Alexa device(s). The new skill will be ready to use in a few minutes. You can trigger it by saying something like “Alexa, open the Babysitter Guide.” You can also see your applications on the ‘Skills You’ve Made’ page and edit them as needed.
By default, these blueprint-generated abilities are available only to your own Alexa devices, but you can share them if you want. After you’ve shared a skill with another person, they can install it on their Echo device. In the same section of the Blueprints site, you can check who is using your skills and revoke access whenever you want.
Creating your own Alexa app using a blueprint is much simpler than making it from scratch. However, ready-made templates and answers have their limitations. Although Amazon is sure to add new scripts, they certainly cannot meet all of the users’ individual needs and customization requirements. Moreover, if you happen to create a great commercial idea, you won’t be able to realize it at scale.
Custom Skill Needed?
The scope is not the only difference between a template-based and a custom-made Alexa app. If you want to create an Alexa app from scratch, you first need to design a voice interaction. Alexa’s conversations with users must follow some rules to start with. Then, you’ll also have to sign up for the Amazon Developer Portal and deal with the Amazon Web Services (AWS). (An important tip: throughout the development process, make sure to consistently use, or create, corresponding accounts with the same Amazon account that your Echo device is linked to.)
Every time you ask Alexa for something, it triggers an Alexa Skills Kit (ASK). It’s a collection of self-service APIs, tools, documentation, and code samples that facilitate adding applications for the virtual assistant. ASK supports building several types of capabilities/interaction models:
- controlling the lights, thermostats, and other smart home devices;
- controlling cloud-enabled video services;
- provision of news and other original content for the user’s flash briefing;
- custom skills that can manage almost any type of request (intent).
Once you’ve selected the suitable interaction model, you’ll have to create a cloud-based service that handles requests for it. For a custom skill, you can write a web service and host it with any cloud hosting provider. The web service must accept requests over HTTPS. It can be written in any programming language.
Alternatively, a Lambda function can be required. It will let you run code in the cloud without managing servers. A Lambda function is created in the AWS Console. It can be written in C#, Java, Node.js, or Python.
The next step is setting up the skill in the Amazon Developer Portal. There, you should select the Alexa Skills Kit. (A tip: the language you pick must match the language used by your Amazon Echo.) You’ll have to create:
- an invocation name (your Alexa app name which must be unique for your account);
- intents (an intent tells the Lambda function what it should do);
- sample utterances that map to each intent.
Once you’ve got an ASK and linked Lambda function (when applicable), the new skill can be tested. There are three ways to do that:
- You can instantly use the service simulator from the Test step of your skill development. On the simulator, you can enter a sample utterance (service request) and see what the service response will be.
- Try to use the new application on your Echo device. If you share an Amazon household, make sure to do it under your Alexa profile.
- If your Echo is out of reach, you can simulate the skill with the testing tool at Echosim.io. You would log into your Amazon account, activate the microphone, and speak your commands.
If you want to customize the skill, it’s done in the same Interaction Model tab on the Amazon Developer Portal. To customize the output accordingly, you’ll have to go back to the Code tab in Lambda and change the text there. Then, test the whole thing in the Developer Portal again.
That is Alexa skill development in a nutshell. If you wish to try your hand at making a skill, you might quickly learn the basics here (if you have no programming experience) or here(if you’re comfortable with Python). If you’d like to learn skill development professionally, the next paragraph will give some clues as to where to start.
Resources for an Aspiring Alexa Skills Developer
With the voice app ecosystem growing exponentially, innovative, competent developers and voice designers are going to be in demand. Here are a few affordable online training programs to start your skill-building journey:
The tutorial covers nearly all features of ASK with real-world example skills, including a published application. You would learn how to develop Alexa skills with both AWS Lambda function and web service as an endpoint using Node.js and Python.
The course is focused on the creation of sound interaction models and implementation of fulfillment models using AWS Lambdas to provide smooth, increasingly automated auto-scaling code endpoints. Additionally, the program provides a broader picture of voice and text interfaces, current trends in human-computer interaction, and how the Amazon ecosystem works. It’s useful not only for Echo or FireTV developers looking to create skills for Alexa but also for web and mobile app developers that want to add voice apps. Basic knowledge of JS programming, HTTP/s, and EST APIs work is necessary.
Amazon consistently promotes the development of voice interfaces for a host of devices around the world. They also envision new practical uses for custom skills. Alexa Blueprints enables millions of Echo owners to make their devices more useful. Anyone can create skills literally in minutes at no added cost. With ASK and AWS Lambda, people with various programming abilities can do more. Developers, designers, or hobbyists can build their own personal assistants which can be integrated into practically any activity.
By offering the tools for building Alexa apps, Amazon has made customizing its products simpler than ever before. But is this enough for businesses? Do you have the time for learning voice design and programming with Alexa Skills Kit and web services? Are you sure your team can build an efficient voice application for reaching thousands of customers? Contact us if you need extra expertise or a professional team to help bring your very own Alexa app to life.
Many thanks to Ivan Sagal and Sasha Berdnikov of Onix’ IoT Development department for their assistance in writing this post.