Navigation Management for Alexa Skills


You can design Alexa skills for use with devices like Echo Auto, so that your skill can be used in a car while the car is in motion. If the user has a Alexa-enabled device that supports navigation, your skill can provide navigation-related capabilities. For details about automotive skills, see Alexa Skills for Driving.

Presence of the Navigation interface in a request

Your skill service can determine if the user's Alexa-enabled device supports navigation. Check to see if a request to your skill includes Navigation in the devices.supportedInterfaces object. If Navigation is present, your skill can use the SetDestination and CancelDestination directives to manage navigation. For more information about AudioPlayer, see AudioPlayer Interface Reference. For more information about Geolocation, see Location Services.

The following example shows a device property.

"device":
{
  "deviceId": "amzn1.ask.device.",
  "_deviceType": "<string>",
  "rawDeviceId": "<string>",
  "supportedInterfaces": {
    "AudioPlayer": {},
    "Geolocation": {},
    "Navigation": {}
  }
}

SetDestination directive

The SetDestination directive enables Alexa to set a destination on a user's navigation-capable Alexa device. The customer can then start navigating to the destination location. In addition, if the device has display capability, it can display the navigation information along with the destination location. Your skill response that uses the SetDestination directive also includes specific location information about the destination.

For more details about response parameters, see Request and Response JSON Reference.

If included, outputSpeech, card, and reprompt cannot be empty, but each can be omitted.

The following example shows a Navigation.SetDestination response.

{
  "outputSpeech": {<outputSpeech_object},
  "card": {<card_object>},
  "reprompt": {<reprompt_object>},
  "shouldEndSession": true,
  "directives": [
    {
      "type": "Navigation.SetDestination",
      "destination": {
        "singleLineDisplayAddress": "2121 7th Ave Seattle, WA 98121",
        "multipleLineDisplayAddress": "2121 7th Ave\nSeattle, WA 98121",
        "name": "Example Corp.",
        "coordinate": {
          "latitudeInDegrees": 47.608013,
          "longitudeInDegrees": -122.335167
        }
      },
      "transportationMode": "DRIVING",
      "metadata": {
        "hoursOfOperation": [
          {
            "dayOfWeek": "MONDAY",
            "hours": [
              {
                "open": "12:30:00-8:00",
                "close": "1:00:00-8:00"
              }
            ],
            "status": "OPEN_DURING_HOURS"
          },
          {
            "dayOfWeek": "TUESDAY",
            "hours": [
              {
                "open": "12:30:00-8:00",
                "close": "1:00:00-8:00"
              }
            ],
            "status": "OPEN_DURING_HOURS"
          },
          {
            "dayOfWeek": "WEDNESDAY",
            "hours": [
              {
                "open": "12:30:00-8:00",
                "close": "1:00:00-8:00"
              }
            ],
            "status": "OPEN_DURING_HOURS"
          },
          {
            "dayOfWeek": "THURSDAY",
            "hours": [
              {
                "open": "12:30:00-8:00",
                "close": "1:00:00-8:00"
              }
            ],
            "status": "OPEN_DURING_HOURS"
          },
          {
            "dayOfWeek": "FRIDAY",
            "hours": [
              {
                "open": "12:30:00-8:00",
                "close": "1:00:00-8:00"
              }
            ],
            "status": "OPEN_DURING_HOURS"
          },
          {
            "dayOfWeek": "SATURDAY",
            "status": "CLOSED"
          },
          {
            "dayOfWeek": "SUNDAY",
            "status": "CLOSED"
          }
        ],
        "phoneNumber": "+12065551212"
      }
    }
  ]
}

directives

Field name Description
destination Object containing destination information
transportationMode Indicates the means by which to navigate to the destination. Can be one of: BIKING, DRIVING, TRANSIT, WALKING.
metadata Optional object that contains information about the destination.

directives.destination

Field name Description
multipleLineDisplayAddress A multiple-line street address. Newlines expressed with \n escape sequence.
singleLineDisplayAddress A single-line street address.
name Name of the destination location.
coordinate Geographic coordinates (lat, long) of the destination location.
coordinate.latitudeInDegrees Latitude of destination.
coordinate.longitudeInDegrees Longitude of destination.

directives.metadata

The metadata object is optional. If present, then certain fields may be required, as shown in the following table.

Field name Description
phoneNumber Phone number of the location, in E.164 format.
hoursOfOperation Array that contains hours of operation information for each day of the week. If present, this object must contains daysOfWeek. If status is not null, that is UNKNOWN, OPEN_24_HOURS, or CLOSED, then hours must be present.
hoursOfOperation.daysOfWeek Can be one of: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
hoursOfOperation.hours Object that contains opening and closing hours. If present, both open and close are required.
hoursOfOperation.hours.open Opening time for the location.
hoursOfOperation.hours.close Closing time for the location.
hoursOfOperation.status Indicates whether the location is open on this day or not. Can be one of: OPEN_DURING_HOURS, OPEN_24_HOURS, CLOSED, HOLIDAY, UNKNOWN

The open and close hours are expressed in ISO-8601 time with this timezone format:

partial-time = time-hour ":" time-minute ":" time-second ± time-zone-offset

Time is represented in UTC+offset. The offset converts the time to the standard time of the location's time zone with no consideration of daylight savings time.

For status, the following options are possible:

  • OPEN_DURING_HOURS – Location is open during the listed hours.
  • OPEN_24_HOURS – Location is open the entire day, and no hours are listed.
  • CLOSED – Location is closed for the day, and no hours are listed.
  • HOLIDAY – Days that may modify the location's schedule. Should display the available schedule along with a note that "hours may vary".
  • UNKNOWN – Default, if no hours and no other status is present, or if an unrecognized status field is present.

If hoursOfOperation are present, and status is UNKNOWN, then the user's Alexa device should display the hours with a ?, to indicate that there is uncertainty in the schedule.

CancelNavigation directive

A skill user who has a navigation-capable Alexa device can cancel navigation via a voice command, if the skill service has set up navigation with the SetNavigation directive. When Alexa receives a user request to cancel navigation, Alexa sends the following directive to your skill.

CancelNavigation directive example

{
  "directive": {
    "header": {
      "namespace": "Navigation",
      "name": "CancelNavigation",
      "messageId": "Unique version 4 UUID"
    }
  }
}

Was this page helpful?

Last updated: Jun 27, 2024