Whether you’re thinking of building a voice experience to monetize, share it with others for fun, or create a brave new service that will change the world, you’ll eventually come to the point where you’ll want to learn how to build and publish an Alexa skill.
With that in mind, we hosted a webinar where we built and published a skill in one hour to show you how straight forward it is. We started with the fact skill template on GitHub, customized it, tested it, and submitted it for certification to be published in the Alexa Skills Store. If you missed the webinar, no worries – you can sign-up for a future webinar here. You can also check our technical documentation for a step-by-step walkthrough.
When the time comes for you to start your first Alexa skill, you’ll likely have a few questions. To help you out, we’ve compiled some of the most frequently asked questions and answers that we’ve received from developers about to build their first Alexa skills:
You’ll need a developer account, and we recommend setting up an AWS account to host the back end of your skill as well. Though it’s not necessary to host your skill infrastructure on AWS, it will make things significantly easier to learn, and you can always switch your back end later.
Regions are a part of the AWS Global Cloud infrastructure. Each region is a separate geographic area where our physical computing resources for AWS cloud services are located. By selecting N. Virginia, we’re hosting our AWS Lambda function on computers in that specific physical region. You can read more about what regions are and why we have them here.
If you’re deciding to host your backend on AWS, Lambda functions for custom skills can be hosted in one of the following regions:
For a primer on the overall architecture of an Alexa skill, check out this page in our technical documentation that explains the different components of a skill.
You do not. There is a simulator in the Alexa Developer Console that you can use to test and debug your interactions. However, there are limitations to this approach. For example, you can enable the Echo Show Display and Echo Spot options to see an approximation of how your responses will look on the Echo Show and Echo Spot, but this does not show how your responses would display on any other devices, such as Fire TV. You can read more about testing with the simulator here.
While you are able to download and modify your skill code and interaction models offline, you must be connected to the internet in order to test on the Alexa voice service. The Alexa Skills Kit Command-Line Interface (ASK CLI) provides multiple commands for fetching and deploying your changes to their appropriate destination, and it’s a recommended tool for any iterative development. Here’s our technical documentation with more info about the CLI.
Cancel and Stop are typically treated the same for skills (so we group them together). But in short, they just have different utterances associated with it, so you might use Cancel differently for more complex skills. For example, Cancel may prevent a transaction from going through, or could be a part of a confirmation flow in your skill, while Stop would immediately end or close your skill. Both of these must be handled gracefully as part of our Certification Guidelines. More information about stop and cancel can be found here.
DynamoDB is a low latency, non-relational database offered as a part of AWS. It works really well to retrieve and save data for your Alexa skill through the persistence adapter in our software development kit. Persistence by this mechanism can allow your skill to preserve customer preferences or context, allowing customers to come back to your skill and continue from a specific point. You can learn more about the using persistence in our software development kit here.
If you want to learn about how that’s implemented, you can see how it’s done in this sample skill. Just click Get Started! to move through the steps for setting this up appropriately.
We call this localization. Localizing a skill is relatively simple from a technical standpoint. The interaction model and speech output are the major things you’ll have to change, whereas the application logic in your Lambda function (or other back-end) should see less. To learn more about localizing Alexa skills, check out our technical documentation. And here’s a sample skill using multiple locales in one codebase.
It depends on how you structure your skill code. Your AWS Lambda function can check an accessible file store (e.g. an S3 bucket) or a database (e.g. DynamoDB), dynamically updated files on your own server, or even reach out to an API for data.
You can monetize your Alexa skills using in-skill purchasing by offering customers premium experiences on a subscription basis, as a one-time purchase, or as a quickly consumable or depletable item (like an in game currency). If you have an existing web service or application that processes payment transactions for a product or a service, you can leverage account linking so customers can access your product or service through your skill – this is essentially how the Domino’s Pizza and Uber skills work!
Once you’re done building a skill, you submit it for certification. After your skill passes certification, it is published and made available for anyone to enable from the Alexa Skills Store. When you get to this step, we recommend checking out this blog for some tips to pass certification.
Most skills functions fall within the AWS Free Tier limits, but you may incur fees if you are accessing significant amounts of data through S3 or DynamoDB. Once you have a published Alexa skill, you can apply to receive a $100 AWS promotional credit, and in subsequent months, may be eligible to receive an additional $100 per month in AWS promotional credits if you incur AWS usage charges for your skill. This makes it free for you to build and host most Alexa skills (even ones with significant utilization). Pricing for AWS Lambda is here and you can apply for AWS promotional credits here.
We have several software development kits (SDKs), which can you help you build faster and reduce complexity in your code. In addition to Node.js, we have SDKs for Python and Java.
Skills that incorporate visual elements like graphics, lists, and displays are called multimodal skills. While skills that incorporate visuals are highly engaging, the experience should remain voice first. If you’re new to building skills, we first recommend getting your voice experience right, and then incorporate visuals to enhance or augment the experience. Check out this blog post for more guidance.
Private skills are a capability for organizations that have signed up for Alexa for Business. They’re skills that are only available to specific members or groups of a particular organization. Alexa for Business is a service that enables organizations and employees to deploy Alexa devices at Scale. With Alexa for Business, organizations can use Alexa to automate meeting rooms, provide customers or guests with custom experiences, and easily provision, manage, and monitor hundreds of Alexa devices from a centralized console. You can learn more about Alexa for business here.
In this webinar we created a custom skill, though you can also create flash briefing and smart home skills, which are unique by design and have their own qualities. Flash briefings are skills that allow customers to add content feeds to their flash briefing feature on Alexa. These can be in the form of pre-recorded audio or text-to-speech (TTS). Smart home skills leverage the Smart Home API and can be used to build skills for smart home devices such as cameras, lights, locks, thermostats, smart TVs, and so on.
There are also Alexa Skill Blueprints, which you can use to make personal skills from pre-defined templates without coding. Blueprints can be shared with others, but not published in the Alexa Skills Store.
There are lots of great resources you can use to build your first skill. In addition to attending our webinar, you can:
Bring your big idea to life with Alexa and earn perks through our milestone-based developer promotion. US developers, publish your first Alexa skill and earn a custom Alexa developer t-shirt. Publish a skill for Alexa-enabled devices with screens and earn an Echo Spot. Publish a skill using the Gadgets Skill API and earn a 2-pack of Echo Buttons. If you're not in the US, check out our promotions in Canada, the UK, Germany, Japan, France, Australia, and India. Learn more about our promotion and start building today.