Developing for the Amazon Echo

Genady Okrain
Apr 11, 2016 · Unlisted
The future!

About two months ago I purchased my Amazon Echo and I must admit that it has been one of the most exciting pieces of technology I’ve seen in the last few years.

I noticed more and more people talking about the Amazon Echo and mentioning the “App Store” for Alexa Skills:

Ben Thompson & James Allworth — Exponent #70

Federico Viticci & Myke Hurley — Connected #78

Marco Arment & John Siracusa & Casey Liss — Accidental Tech Podcast #164

Walt Mossberg & Kara Swisher — The Amazon Echo: Everything You Might Not Know

M.G. Siegler — Alexa, Unlock the Internet

Dan Moren — My favorite gadget of 2015: The Amazon Echo

I love my Amazon Echo as a user and I was waiting for an opportunity to build something useful, and exactly a month ago I found it.

On one of my random commutes on the Caltrain I noticed people missed the train because they arrived at the last moment. One of the reasons is the lack of a simple place to see a real-time schedule. I messaged my friend and we started prototyping a solution, after quick prototyping and a working POC we decided it is possible to build a better solution and because we will need a server to process all the real-time data, we will leverage this knowledge to build an Alexa Skill and a Slack bot later.

The app was launched last week. While a lot of people criticize the Apple App Store review process, it was really fast and Apple helped us ship two fast bug-fixes and improvements quickly (David Smith & Marco Arment — Under the Radar #19 #20 #21).

Caltrain — Real-time Schedule and Planner

A few weeks before the iOS app was ready we started working on the Alexa Skill. The idea was to build a simple one interaction to check when the next train is, with specified “from” and “to” stations.

Making a quick prototype was really easy. The inputs to the API are “from” and “to” stations and the outputs are time left in minutes and if the train is late.

To make an Alexa Skill you will probably need to do the following 2 or 3 steps:

  1. Add a new skill on the Amazon Apps & Services Developer Portal.
  2. AWS Lambda function (I tried without it but eventually gave up).
  3. Some kind of API that will do your wanted logic (You might do it on the Lambda).

The strange thing here is that when you send your skill for review, Amazon can only review and lock #1 which includes all of the settings for your skill, the supported commands, some keywords and the information about your skill.

While people might argue that you can send an app to Apple for review and later change it completely from your backend. It is uncommon for people to do so. With Amazon Alexa Skills, you can update your response at any time. I am unsure if they monitor your updates and review them later.

When we had something working we shipped it for review and went back to work on the iOS app while we waited for a response from Amazon.

After few days we got rejection email #1:

#2 is interesting request because of later rejection email.

We fixed it and we got rejection email #2:

And rejection email #3:

This one was hard to understand, when you read the checklist they say that if the response is short you don’t need to check it, Turns out that you need to mention that you support it in one place only and it worked.

Eventually the review process improved the skill, but it was funny getting 2–3 random problems after 3–4 days of review.

About a week ago it was finally approved!

And it’s live! (What is that dot under the logo?)

Finally we got it in. Now the question was where will people find it?

To install a skill people need to have the Alexa app on their phone, this app is not a native app but some kind of web app and it’s really hard to navigate and use. While the capabilities of the Echo are remarkable, the app experience is very poor.

Only more 55 to go…

One important missing thing in the skills store is selling skills, currently everything is free. You can use your login and handle everything by yourself, but without a real business model for developers, I can’t see skills as a real game changer. Only small skills like ours and add ons for already existing services are possible.

A few days later, while the skill was already live in the skills store, we got the following email:

What? Now the name is not right? And you want me to submit new one for new review?

In some ways this email made sense, but why would it happen after it was already live?

I just want to mention the fact that 3 business days had already passed and we got the new skill running while the old one is still live. At this point, people will find 2 skills and won’t understand what is going on.

The funny story here is that the submission with the different name was rejected on the first try because of a new reason:

Oh, that’s new!

After fixing that, the skill was approved and now you can find both “Caltrain” and “Next Train for Caltrain” in the skills store.

What happens now?

I’m not trying to say anything bad here, I am just trying to share the process we faced to help other developers develop more skills. Amazon Alexa Skill review process will probably mature and get better and the Alexa Skill store will eventually improve.

I do want to mention something good about it, after the 5th rejection email we wanted to stop working on the skill. Why would we work so hard if no one was using it? It turns out someone was using it!

I guess that this tweet was the most important piece of evidence here. People actually use the Amazon Echo and if you build something useful they will find it somehow, and for each rejection and struggle you have on the way the only thing you need to think about is your users and their best interests. Not about anything else!

Please feel free to comment, tweet or email me.


Genady Okrain

Written by

Founder at @MomentoGIFs

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade