In previous blog posts we have talked a lot about voice strategies and the rise of home assistants so we thought it would be good to go in-depth about what’s involved in developing custom Alexa skills. Although this particular blog post is more targeted at software developers, it will also be beneficial to non-developers interested in this process and hopefully we make it clear enough for everyone to follow.
What is an Alexa Skill?
Think of your amazon echo device as an empty brain and the “skills” are what fills it to listen and respond to your commands. There are already a lot of pre-defined skills that come with Alexa such as “Alexa, play music” and “Alexa, what’s the weather like”.
In October of 2017 we developed an Alexa Skill to try and emulate an interview, called ‘The Interviewer’. It is currently the top rated skill for interviews on the Amazon Alexa App.
Each skill has a list of commands such as “Alexa, new interview question” and “Alexa, exit interview”. Defining these commands are similar to creating a username (must be unique throughout all skills). So as we have “Alexa, new interview question”, no other skill can now use that command going forward.
Intents and Sample Utterances
When developing a new skill, there is a lot of words and phrases used to describe the process. Intents and Sample Utterances are probably the first ones you will come across when designing your voice. An intent is the action that the user will do with your skill and represents the core functionality. A sample utterance is the word or phrase the user asks Alexa (the command). You can define many different sample utterances as there can be many different variations of communication. If Alexa asks the user a question on the skill, and the response can be either yes or no, but we want to build skills that are like having a conversation…
Other Sample Utterances of ‘Yes’:
- Yeah
- Yup
- Ok
- Yep
- Yip
- Go for it
- Sure
The above words and phrases can be added to the list that will carry out the same action as responding “yes”. Keeping the flow of conversation between Alexa and the user is important for a rich user experience therefore defining many different variations can help support that.
These Sample Utterances are then ‘mapped’ to an intent, so if the user says <sample utterance> then do <intent>.
While developing an Alexa Skill, it’s quite interesting to understand this flow and making it work with all users in mind.
Database Integration
Developing an Alexa skill is similar to developing a website or an app, just a slight learning curve to understand how to piece it all together. Like web/app development, we can send requests to get, insert, edit and delete data from a database. For example, when you send a tweet out to your followers, it is inserted into a database and then your follower is able to see it as it is getting it from the database.
You can build skills that connect to a database allowing users to use their voice to record tasks or information. A shopping list Alexa skill is a good example of this where you can say “Alexa, add eggs to my shopping basket” (INSERT DATA) and then ask “Alexa, what’s on my shopping list?” (GET DATA).
An example of a big company that has made use of database integration is Uber. This allows you to order a ride by using your voice alone. The echo device also has location services enabled so it knows where to pick you up from.
Benefits of Building an Alexa Skill
There are many ways you can benefit having your own Alexa Skill.
- Purchasing – users can purchase your products or services through voice
- Brand growth – another way to reach new users with your brand
- Rewards – money can be earned if skills are being engaged with often
- Conversation – makes for interesting conversation “we have an Alexa skill”
- Workplace – custom Alexa skills in the workplace can allow for task efficiency
Amazon have put together a step-by-step guide for developing custom Alexa skills. If you are thinking of developing a skill we recommend you refer to that guide as it will walk you through the process. If you are not a developer and would like a custom Alexa skill created, that is something we can do for you, and we would love to have a chat.