Alexa.Education.School.Communication Interface
Implement the Alexa.Education.School.Communication
interface so that students and parents can ask questions about school communications such as announcements, alerts, and reminders. For more information about education skills, see About Alexa Education Skills.
For the list of languages that the School.Communication
interface supports, see List of Alexa Interfaces and Supported Languages.
Utterances
When you use the Alexa.Education.School.Communication
interface, the voice interaction model is already built for you. The following examples show some user utterances:
Alexa, are there any posts from my professors?
Alexa, are there any class announcements for Jack?
Alexa, did Tom's teacher leave any messages about him?
Alexa, are there any updates from the school?
Alexa, are there any posts to Peter's journal?
Request
The Get
request queries a list of recent school communications or updates that match the request query. This request has query parameters to filter for studentId
(optional) and courseId
(optional).
The payload of the Get
request contains the following fields.
Field | Description | Type |
---|---|---|
|
Pagination information |
|
|
Match-all query parameters to filter for |
Object |
|
Locale that identifies the user's language |
|
The following is an example of a Get
request.
{
"request": {
"header": {
"namespace": "Alexa.Education.School.Communication",
"name": "Get",
"messageId": "ExampleMessageID",
"interfaceVersion": "1.0"
},
"authorization": {
"type": "BearerToken",
"token": "ExampleBearerToken"
},
"payload": {
"paginationContext": {
"maxResults": 5,
"nextToken": "ExampleNextToken"
},
"query": {
"matchAll": {
"studentId": "1184"
}
},
"locale": "en-US"
}
}
}
Response
If you handle a Get
request successfully, respond with a GetResponse
object.
The payload of a GetResponse
object contains the following fields.
Field | Description | Type | Required |
---|---|---|---|
|
Pagination information |
|
No |
|
The results of the query |
Array of |
Yes |
The following is an example of GetResponse
.
{
"response": {
"header": {
"namespace": "Alexa.Education.School.Communication",
"name": "GetResponse",
"messageId": "ExampleMessageID",
"interfaceVersion": "1.0"
},
"payload": {
"paginationContext": {
"totalCount": 1
},
"schoolCommunications": [
{
"id": "update_001",
"type": "GENERIC_FROM",
"kind": "ANNOUNCEMENT",
"from": "Ms. Fizzle",
"content": {
"type": "PLAIN_TEXT",
"text": "Homework1 is now available.Its due by 30th April."
},
"publishedTime": "2019-04-12T00:00:00Z"
},
{
"id": "update_002",
"type": "REMINDER",
"remindTime": "2019-05-30T09:00:00Z",
"content": {
"type": "PLAIN_TEXT",
"text": "There is an upcoming school bake sale next Sunday."
},
"publishedTime": "2019-04-12T00:00:00Z"
},
{
"id": "update_003",
"type": "BEHAVIORAL_UPDATE",
"studentId": "student_001",
"studentName": "Hannah",
"content": {
"type": "PLAIN_TEXT",
"text": "Hannah achieved Amazing Learner badge!"
},
"publishedTime": "2019-04-12T00:00:00Z"
}
]
}
}
}
Prompt behavior for communication types
Alexa's response to the user begins with a prompt that depends on the communication type, as shown in the following table. For details on the fields that each communication type include, see SchoolCommunication
.
School Communication Type | Prompt Intro |
---|---|
<kind> from <from>: "<content text>" |
|
<kind> for <for>: "<content text>" |
|
A message from <author>. Would you like me to read it? |
|
A behavioral update for <StudentName>: "<content text>" |
|
A reminder for <Weekday, Month, Date using remindTime field>: "<content text>" |
|
A discussion post from <author> in <courseName>: "<content text>" |