Create Alexa Custom Skill

Keerthana Murale
5 min readDec 12, 2020

--

Today Let’s give a shot on SKILLL!!! What is skill? Is it worth reading about skill? Do I need to spend my time on this? Read on to find out !!!!!!

Without skill, there is no voice assistant app. Each invocation is a skill.
In the shorter-term, skill is the name given to your backend logic/idea. More broadly, it is the term that refers to the intelligence of Alexa or the voice-driven Alexa capabilities. For example,

Smart Home
Print Connections
Weather report
Play music
Nutrition tips
Latest news

In continuation of the previous blog, let’s create a smarter skill for the Restaurant in the amazon developer console. Check out this post to create the intelligence for your skill.

https://keerthana-murale.medium.com/alexa-skill-with-azure-function-f82ab16ee26b

Skills

Many Built-in skills are available in Alexa. Alexa is a wake-up word to start the skill. Create an Amazon Developer Account or you can also sign-in with the amazon shopping app credentials.

https://developer.amazon.com/ .

Once you sign in , Go to Developer Console, Pick Alexa Skills Kit. It lands you to the Skill tab

Pick Alexa Skills Kit

Create Skill

Click on create a skill named ‘Alex Restaurant

Choose a custom model to create intents and utterances.

Choose the Provision your own method to host our backend resource.

Click create skill on the right top of the page.

Choose a start from scratch template for our skill. It will take a couple of seconds to create.

When a full build is successful, it redirects to the main page. The chosen language defaults to the dropdown box. We can add as many languages as needed with different or same invocation name by selecting the language setting option on the language dropdown.

Build — Default Landing page. To configure your skill.

Code — To write our backend code. It is available only for the Alexa hosted backend resource (Alexa’s python or node js).

Test — Where we test our skill in a development environment.

Distribution — Submit the details to make use of your skill by customers

Certification — This is to validate our skill abilities. Value of voice, user experience.

Analytics — To see the reports, a summary on the number of customers, intents, and utterances for our skill. It also has performance metrics with endpoint responses.

Setting up the skill

On the Build tab, select the Invocation to change the name. It is the keyword to invoke the application. It should be in lower case. Minimum two words are needed.

Now the users can invoke your skill by calling Alexa, open Alex Restaurant. “ask”, “begin”, “launch”, “load”, “open”, “play”, “resume”, “run”, “start”, “talk to”, or “tell” are all keywords which have been automatically added by Alexa as launch word to call your skill

Build Intent

Navigate to the intent menu. By default, The intent menu has built-in intents for your skills. To create a new one, click Add Intent.

Create a custom intent as menuitemdescription

Build Utterance

After the intent has been created, add some utterance which are all the words you suspect that the user can ask to know about your dish description. Use the Plus icon to add multiple utterances.. Then click Save and build the model.

Add Slots

The customer wants to know about your restaurant dishes. So the variation here is the dish item.

Tell me the description for the menu Kulcha Tub

Tell me the description for the menu Peas Pulao

Select the replace word on the added utterance and click Add at the box bottom.

It was added to the Intent slot space on the same page. Map the Slot type to the Amazon.Food

Modify the ITEM word in the added utterance with the curly braces. Don’t forget to Save and build the model

Brief the food {item}

Share {item} description

Power of JSON Editor

Instead of doing all the above, build the slot, intent, and utterance in the JSON editor. In the end, the above steps will generate the JSON file pictured below.

`{
“interactionModel”: {
“languageModel”: {
“invocationName”: “alex restaurant”,
“modelConfiguration”: {
“fallbackIntentSensitivity”: {
“level”: “LOW”
}
},
“intents”: [
{
“name”: “AMAZON.CancelIntent”,
“samples”: []
},
{
“name”: “AMAZON.HelpIntent”,
“samples”: []
},
{
“name”: “AMAZON.StopIntent”,
“samples”: []
},
{
“name”: “AMAZON.NavigateHomeIntent”,
“samples”: []
},
{
“name”: “AMAZON.FallbackIntent”,
“samples”: []
},
{
“name”: “menuitemdescription”,
“slots”: [
{
“name”: “item”,
“type”: “AMAZON.Food”
}],
“samples”: [
“Share item description”,
“Brief the food item”,
“Tell me the description for the menu {item}”
]}],
“types”: []
}}}

Expand the Interaction model from the left sidebar menu, choose JSON editor to view the generated file.

Integrate with Function App

  • On the Build tab of your alexRestaurant, click the Endpoint option from the left corner.
  • Select the HTTPS option and enter the function URL with an route endpoint in the Default Region block.
  • Pick the SSL certificate type as my dev endpoint with the subdomain (2nd option.)
  • Save Endpoints and Build the Model.

Test

Time to test!!! Navigate to the Test tab in the Amazon console. In the skill-testing enabled dropdown, select the Development option.

Simple!!!Happy reading!!!

--

--