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"]
          }
        ]
      }
    ]
  }
}