User Profiles
When a customer enables your Alexa.Health
skill, you send a profile report to Alexa. Your customers create their profiles in your app, and you create an identifier to track them in your app. Send the same identifier to Alexa in the profile report.
A single customer can manage multiple profiles for their family. For example, a customer that is a mother can manage a profile for herself and a profile for each of her children. In that case, you send multiple profiles together in the same user profile report.
Identify the interfaces and directives that your skill supports for each profile in the profile report. You can support multiple interfaces for each profile. For example, for a mother, you could support the Sleep
interface, and for her child you could support the InfantFeeding
interface. For the full list of interfaces, and available directives for each, see Understand the Baby Activity Skill API.
How to send a profile report
Send a profile report the first time an Alexa customer enables your skill, after the account linking steps are complete. Post profile reports to api.amazonalexa.com/v1/health/profile
. For more information, see Account Linking for Baby Activity Skills.
If a customer adds, updates, or deletes a profile in your app, send a new profile report to Alexa.
User profile report format
Use the profile report to specify the profile id, and the interfaces and directives that you support for your customer and each member of their family.
Profile details
Field | Description | Type | Required |
---|---|---|---|
profiles |
An array of profiles that contain profileId and name fields. |
Array | Yes |
profileId |
The identifier for the person associated with a profile. | String | Yes |
name |
The name of the person associated with a profile. For baby activity skills, the name.nickNames field is required and you must specify at least one nickname for each profile. |
A name object. | Yes |
Capability details
Field | Description | Type | Required |
---|---|---|---|
capabilities |
An array of interfaces and directives that you support for the profile. Each capability contains a name and supportedOperations field. |
Array | Yes |
name |
The name of the interface. | String | Yes |
supportedOperations |
An array of directives that you support for the profile. The values are strings. | Array | Yes |
Examples
The following example shows a profile report with a single profile and support for weight and sleep tracking. The Alexa.Health.Sleep
interface has seven available directives, but in this example, the skill supports only four of them.
User profile report example with a single profile
{
"report": {
"messageId": "<message id>",
"profiles": [
{
"profileId": "<profile id>",
"name": {
"firstName": "John",
"lastName": "Doe",
"nickNames": ["John"]
},
"capabilities": [
{
"name": "Alexa.Health.Weight",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get"]
},
{
"name": "Alexa.Health.Sleep",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get", "Start", "Stop"]
}
]
}
]
}
}
The following example shows a profile report with multiple profiles and support for different operations for each profile.
User profile report example with multiple profiles
{
"report": {
"messageId": "<message id>",
"profiles": [
{
"profileId": "<profile id>",
"name": {
"firstName": "Jane",
"lastName": "Doe",
"nickNames": ["Mom"]
},
"capabilities": [
{
"name": "Alexa.Health.Weight",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get"]
},
{
"name": "Alexa.Health.Sleep",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get"]
}
]
},
{
"profileId": "<profile id>",
"name": {
"firstName": "John",
"lastName": "Doe",
"nickNames": ["Jack", "Junior"]
},
"capabilities": [
{
"name": "Alexa.Health.Sleep",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get", "Start", "Stop"]
}
]
},
{
"profileId": "<profile id>",
"name": {
"firstName": "Jennifer",
"lastName": "Doe",
"nickNames": ["Baby", "Jenny"]
},
"capabilities": [
{
"name": "Alexa.Health.DiaperChange",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get"]
},
{
"name": "Alexa.Health.InfantFeeding",
"type": "AlexaInterface",
"version": "1",
"supportedOperations": ["Add", "Get", "Start", "Switch", "Pause", "Resume", "Cancel", "Stop"]
}
]
}
]
}
}