Steps to Create an Education Skill

Complete the following steps to create an education skill in the developer console, write the skill code, enable the skill, test the skill, and submit it for certification.

Even if you use the Alexa Skills Kit Command-Line Interface (ASK CLI) to create the skill, read this page to learn about the various options. In particular, see Enable end users to limit access.

For prerequisites that you must meet to create education skills, see Prerequisites. For general information about education skills, see About Alexa Education Skills.

Step 1: Create an education skill in the developer console

To create an education skill in the developer console, you create the skill, choose the prompt name, choose the education skill interfaces that your skill will support, specify the endpoint, configure account linking, and enter publishing information.

Create a skill

Create the skill in the developer console by using the following steps.

To create a skill in the developer console

  1. Sign in to the Alexa Skills Kit developer console.
  2. Click Create Skill.
  3. For Skill name, enter a name for your skill.
  4. For Default language, select English (US).
  5. For Choose a model to add to your skill, select Education.
  6. For Choose a method to host your skill's backend resources, select Provision your own.
  7. At the top, click Create skill.

Choose the prompt name

Users don't need to invoke education skills by using the skill name. Instead, Alexa automatically sends the skill the request when the user's utterance maps to one of the interfaces that the skill supports.

When Alexa responds to the user's request, Alexa precedes the response to the user with a prompt name that identifies the education provider service. For example, Alexa might say, "From <promptName>, here are your recently posted grades…"

To specify a prompt name, take the following steps.

To choose a prompt name

  1. Within your education skill in the developer console, on the left, click Skill Names.
  2. For Prompt Name for English (US), enter the name that you want Alexa to precede responses with.
  3. At the top, click Save.

Choose the education skill interfaces

You must specify the education skill interfaces that your skill supports. To support an interface, your skill must receive requests and send responses to it. For a list of interfaces and links to the corresponding API reference pages, see Education skill interfaces. To specify the interfaces, take the following steps.

To choose the education skill interfaces

  1. Within your education skill in the developer console, on the left, click Interfaces.
  2. Toggle the switch next to the interfaces that your skill supports.
  3. At the top, click Save.

Specify the skill endpoint

You must specify the default endpoint for your skill, which is the Amazon Resource Name (ARN) of the AWS Lambda function that contains your skill code. To create a Lambda function, see Create an AWS Lambda function.

After you create your Lambda function, take the following steps to specify the endpoint in the developer portal.

To specify the endpoint

  1. Within your education skill in the developer console, on the left, click Endpoint.
  2. Enter the ARN for the Lambda function that contains your skill code. To find the ARN of your Lambda function, see the AWS Lambda console.
  3. At the top, click Save.

Enable end users to limit access

All education skills must allow end users the option to limit access to the skill. If the user chooses to limit access, Alexa shares the user's information with the skill only when Alexa recognizes the user's voice profile and personal passcode.

If you create an education skill by using the developer portal, the skill automatically supports the ability to limit access.

If you use the ASK CLI to create the skill, you must add the alexa::authenticate:2:optional permission scope to the skill manifest. For details about the permission scope, see permissions. For an example education skill manifest, see Education Skill Manifest.

Configure account linking

Education skills must use account linking to link the Amazon account of the user to their account in the education provider's system. For more information about implementing account linking, see Account Linking for Smart Home and Other Domains. For general information about account linking, see Understand Account Linking.

To configure account linking in the developer portal, take the following steps.

To configure account linking

  1. Within your education skill in the developer console, on the left, click Account Linking.
  2. Enter the values described in Configure account linking.

Enter publishing information

As with any skill, you must enter distribution information such as the public name and description that will appear in the Alexa Skills Store. For details, see Define Skill Store Details and Availability.

Step 2: Write code for your skill

Use AWS Lambda to host the code for your education skill. AWS Lambda is a web service that lets you run code in the cloud without managing servers. For details about AWS Lambda, see AWS Lambda.

To write code for your skill, you create an AWS Lambda function, write code to handle education skill requests, and include support for account linking.

Create an AWS Lambda function

To create a Lambda function for an Alexa skill, follow the instructions in Create a Lambda function from scratch. If you don't have a region preference, we recommend that you create your Lambda function in the US East (N. Virginia) region.

After you create your Lambda function, copy the ARN that the AWS Lambda console displays near the top of the page, and paste it to a convenient location. The ARN will look similar to arn:aws:lambda:us-east-1:123456789:function:myFunctionName1.

Write code to handle education skill requests

Alexa interprets each user utterance and communicates it to your skill as a request message with a JSON payload. Your skill code inspects the request, takes any necessary actions, and then sends a response back to Alexa. Use the documentation for each Alexa.Education interface to see the correct format for your response. For the full list of interfaces, and available request for each, see Education skill interfaces.

After you create your Lambda function and configure your skill to communicate with it, you can write the code for your skill by using the AWS Lambda console. For details, see creating functions using the AWS Lambda console editor.

Support account linking

Your skill must include code that enables the Alexa user to link their Amazon account with the account that contains the education information that your skill accesses. To do so, you must implement account linking. Otherwise, users can't enable or use your skill. For links to sample code and other resources about account linking, see Quick Reference: Add Account Linking to an Alexa Skill.

Step 3: Enable and test your skill

While you create your skill, you can enable it for testing. You test your skill by using the Alexa Simulator or an Alexa-enabled device. If you use a device, register the device to the Amazon developer account that you created the skill with. Make sure to test both expected behavior and error conditions.

To enable and test your skill

  1. Sign in to the Alexa Skills Kit developer console.
  2. Click the name of your skill.
  3. At the top of the page, click Test.
  4. To enable testing, turn on the Test is disabled for this skill toggle.
  5. Find your skill in the Alexa app, and then enable it.
  6. Give Alexa commands that the documentation of the corresponding interface provides as an utterance for the interface. For example, you can trigger an Alexa.Education.Grade.Course request by asking Alexa, what's my grade in chemistry?.

    All education skill utterances generate a student profile request and any grade or coursework utterance generates a course request. Keep in mind that if you vary the level of detail in the utterance, the request might contain different filter parameters. For example, a "What is due tomorrow?" request includes a due-time range of 24 hours that is aligned to tomorrow, whereas a "What is due in chemistry next week?" request has a course ID and a due-time range that encompasses a full week. We recommend that you test your skill by using a variety of requests.

Step 4: Submit your skill for certification

As with any skill, the final step to create an education skill is to submit the skill for certification.

To submit your skill for certification

  1. Review the requirements listed in Certification Requirements.
  2. Create a fictional account that meets the requirements listed in Requirements for the test account.
  3. Sign in to the Alexa Skills Kit developer console.
  4. On the Certification page, follow the instructions.

After your skill is certified and published, it appears in the Alexa Skills Store for Alexa users to discover.

Requirements for the test account

To enable the certification team to test your education skill, you must create a fictional account with your education provider service. Review the following account requirements and provide the requested information to the certification team.

Account requirements

  • Create a test account that doesn't include any information that you don't want to expose to the certification team.
  • Provide the username and password for the account.
  • Indicate whether the account is for a student or for a parent/guardian.
  • For student accounts, provide the student name.
  • For parent/guardian accounts, populate the account with a minimum of two students (ideally three or more) and share the names of each student that the certification team can use to test the skill.

Requirements for skills that implement the Alexa.Education.Coursework interface

  • Enroll each student in at least five courses with unique course names, and provide the certification team with a list of courses that each student is enrolled in.
  • Give each course at least one assignment that's due each week.
  • Make sure that there's at least one assignment due on each weekday (Monday through Friday) for the two weeks that follow the date that you submit your skill for certification.
  • For one day each week, have more than ten assignments due across all the students. For each week, let the certification team know which day is the ten-assignment day.

Requirements for skills that implement the Alexa.Education.School.Communication interface

  • Populate the account with at least five school communications that occur within a week prior to the date that you submit your skill for certification, with at least one of each school communication type that your skill supports. For a list of school communication types, see Prompt behavior for communication types.
  • Make sure that there's at least one message for each student.
  • If possible, schedule new communications to be published each day over the two-week period that follows the date that you submit your skill for certification.

Requirements for skills that implement the Alexa.Education.Grade.Course interface or the Alexa.Education.Grade.Coursework interface

  • Enroll each student in at least five courses with unique course names, and provide the certification team with a list of courses that each student is enrolled in.
  • For each student, have an overall grade for each enrolled course with a lastGradedTime within the seven days prior to the date that you submit your skill for certification.
  • For each student, have at least two coursework grades for each enrolled course with a lastGradedTime within the seven days prior to the date that you submit your skill for certification.
  • If your skill uses StandardGrade, make sure that there's at least one such grade for each student for both a course and a coursework grade.