How I created my first Amazon Alexa skill and won a free Alexa hoodie
I’ve always wanted to create an Alexa skill, and I’m a developer, so I obviously can quickly build one.
I was building websites and web-based systems for quite a while already, so Alexa, and especially VUI (Voice User Interface) was an entirely new field for me. So, I decided to make it super simple and fun for me:
- No coding at all.
- It should be something that I’m really passionate about.
Then it hit me — I need to make an Alexa skill about my favorite YouTuber — Casey Neistat.
There we go, let’s start.
At first, I needed to go to the platform, where you can create Alexa skill without coding called Storyline.
The second thing I need is to come up with a couple of ideas what can this Alexa skill do. After quick brainstorm, I figured out two things that would be interesting to me as a user to do:
- Get a piece of motivational content from Casey every day/week.
- Play some trivia game to test my knowledge about Casey.
Skill structure seems fine — pretty easy to be built in a couple of hours and also, number one has a crucial point of Alexa skills here — repeatability. So, my goal here will be to update motivational content every day, so people keep opening the app regularly. It’s a huge problem with Alexa skills right now because 95% of the skills are built for one-time usage, and they become abandoned pretty quickly.
Ok, when I was done with the skill idea I started building.
So, I logged in to Storyline, clicked “New app”, selected “From Scratch”, and put my name there. I decided it to be “Casey Neistat inspiration”.
Ok, a new skill was created and then I saw an empty canvas.
It’s quite easy to be frustrated a bit when you see an empty canvas, so I highly recommend to watch this YouTube tutorial called “How to create an Alexa skill without coding”. It’s a step-by-step guide, so it’s super helpful to get started.
So, I wanted my skill to be a bit different from others, so I decided to include some custom audio .mp3 files in it. And those folks who watch Casey’s vlogs know that he has amazing vlog music, so I decided to start a skill from a short 5-second long audio track with music from his vlogs.
So, here we go:
Ok, so here we go, now I need to ask my user which part of the skill does he/she want to open. The first one will be triggered by “give me an advice”, the second one by “play a game”.
So, I asked the user which path does he/she wants to follow and split the execution into 2 possible branches:
As you can see, here I’ve also listed a couple of synonyms because users can say not only “get advice”, but also “get life advice”, “give me a piece of advice” and many more, so it’s crucial to handle all those cases.
So, let’s start with the “get life advice” branch. As you remember, I wanted it to be dynamic, updated every day, so I just went to YouTube, found a video called “Casey Neistat | A Guide to Life”, downloaded the audio file and used software called Audacity to crop that .mp3 into about 100 quotes from Casey.
Then I went to Amazon S3 and uploaded all these .mp3 files there, and put the first audio data to Storyline following the “get advice” branch.
So, as you can see, here I used the “==” command which allows you to randomize Alexa speech. You can learn more about it in this video.
Also, I didn’t end the session right after the advice from Casey and asked my users if they want to play a game. Then I routed execution from one branch to another if they say “yes”. You can learn more about message linking in this video.
Ok, so we’re done with the “get advice” branch here. I will just need to go to Storyline and update the .mp3 URL so my users will get updated content every day.
Ok, “get advice” branch is done, “play a game” is the only one left. It’s pretty simple though, just five questions, using the same features as I’ve described earlier, so, you can see the final visual diagram to understand how it works here: https://coggle.it/diagram/WhhmrjOf1gABGka5/t/start
Ok, we have two things left that are crucial for building Alexa skills:
- “Help” branch.
- “Stop” branch.
Let me explain: Amazon requires all Alexa skills to respond appropriately to particular phrases like “help” and “stop”. I needed to implement them as well.
So, I just created a branch called //help from the central “Start” box to handle all those cases when the user says “help” to Alexa. There I just put some general description of my Alexa skill and linked it to the skill starting point where it asks what to do next.
Then I created a //stop from the main gray box as well to handle all those cases when the user says “Alexa, stop”.
So, after finishing two main branches (“play a game”, “give me advice”) and two required ones (“stop”, “help”) I had the whole Alexa skill implemented.
So, next stop was to deploy this skill to Amazon Alexa Skills Store. To do that I went to “Dashboard” section in Storyline and clicked “Deploy”.
After deploy was done, I’ve enabled the skill as Storyline instructed me and then I was able to submit my Alexa skill for certification by following “Publish app” link.
In about two days after submitting it for certification, I got an email from Amazon that my Alexa skill “Casey Neistat inspiration” was approved and went live.
That was awesome, next stop to promote it a little bit. So, I posted about it on my Twitter account, Reddit and a couple of Casey Neistat fan groups on Facebook.
And I got the first 100 users pretty rapidly, maybe in a week or so.
So, I decided to apply to get some free stuff from Amazon. I filled out the form and sent it to Amazon.
In a couple of days, I got an email that my skill is qualified for the Alexa Promotion. Yay!
So, right now I’m waiting for my hoodie to arrive!