Amazon Predefined Task Reference

Your Alexa skill can request a predefined task from Amazon by using a managed skill connection or a direct skill connection. When your requester skill uses a managed skill connection, Amazon selects the provider skill that fulfills the task request. When your requester skill uses a direct skill connection, your skill specifies the provider for the task.

For more information about requesting tasks from your skill, see Use Skill Connections to Request Tasks.

You can also create a provider skill that implements an Amazon predefined task.

Supported skill connection tasks

Skill Connections support the following predefined Amazon tasks.

Each task has a unique schema for its payload.

To provide a consistent user experience, each Amazon predefined task has its own voice design guidelines, which are included with the description of each task. These guidelines indicate the prompts used by the requester skill, the provider skill, and Alexa during the fulfillment of an Amazon predefined task request.

AMAZON.PrintImage

Enables your requester skill to request to send an image to a printing skill. You can use this task for printing photos, coloring pages, puzzles, origami templates, and so forth.

Parameters

Name Required? Type Description
title Yes String Title of what is being printed.
description No String Description of the file.
url Yes String URL of the image.
imageType Yes Enum Type of image. One of: JPG, JPEG.

Example response with input

{
  "type": "Connections.StartConnection",
  "uri": "connection://AMAZON.PrintImage/1",
  "input": {
         "@type": "PrintImageRequest",
         "@version": "1",
         "title": "Flywheel Document",
         "description": "Flywheel",
         "imageType": "JPEG",
         "url": "http://www.example.com/flywheel.jpeg"
  }
}

Voice design guidelines

This example demonstrates an expected customer experience for the AMAZON.PrintImage task.

Alexa (as determined by requester skill developer): Today's crossword puzzle is available!
Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
User: Sure.
Alexa (as determined by provider skill developer): Today's crossword puzzle is now printing.
Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

Customer has never used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
Customer has used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?

When the session transitions from the provider skill back to the requester skill, Alexa renders a prompt to indicate this.

Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

When your skill surfaces a piece of content that the customer might like to print, your skill should return a response that includes the following items:

  • A prompt that tells the customer that the content is available.
  • A Connections.StartConnection directive with the relevant payload parameters.

AMAZON.PrintPDF

Enables your requester skill to request to send a PDF document to a printing skill. You can use this task for a broad range of things, including printing documents, coloring pages, puzzles, origami templates, and so forth.

Parameters

Name Required? Type Description
title Yes String Title of what is being printed.
description No String Description of the PDF file.
url Yes String Location of the PDF file.

Example response with input

{
 "type": "Connections.StartConnection",
 "uri": "connection://AMAZON.PrintPDF/1",
 "input": {
         "@type": "PrintPDFRequest",
         "@version": "1",
         "title": "title",
         "description": "description",
         "url": "http://www.example.com/flywheel.pdf"
  }
}

Voice design guidelines

This example demonstrates an expected customer experience for the AMAZON.PrintPDF task.

Alexa (as determined by requester skill developer): Today's crossword puzzle is available!
Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
User: Sure.
Alexa (as determined by provider skill developer): Today's crossword puzzle is now printing.
Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

Customer has never used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
Customer has used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?

When the session transitions from the provider skill back to the requester skill, Alexa renders a prompt to indicate this.

Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

When your skill surfaces a piece of content that the customer might like to print, your skill should return a response that includes the following items:

  • A prompt that tells the customer that the content is available.
  • A Connections.StartConnection directive with the relevant payload parameters.

AMAZON.PrintWebPage

Enables your requester skill to request to send a web page to a printing skill. You can use this task for a broad range of things, including printing documents, coloring pages, puzzles, origami templates, and so forth.

Name Required? Type Description
title Yes String Title of what is being printed.
description No String Description of the web page.
url Yes String Location of the web page.

Example response with input

{
 "type": "Connections.StartConnection",
 "uri": "connection://AMAZON.PrintWebPage/1",
 "input": {
       "@type": "PrintWebPageRequest",
       "@version": "1",
       "title": "title",
       "description": "description",
       "url": "http://www.example.com/flywheel.html"
    }
}

Voice design guidelines

This example demonstrates an expected customer experience for the AMAZON.PrintWebPage task.

Alexa (as determined by requester skill developer): Today's crossword puzzle is available!
Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
User: Sure.
Alexa (as determined by provider skill developer): Today's crossword puzzle is now printing.
Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

Customer has never used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
Customer has used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?

When the session transitions from the provider skill back to the requester skill, Alexa renders a prompt to indicate this.

Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

When your requester skill surfaces a piece of content that the customer might like to print, your skill should return a response that includes the following items:

  • A prompt that tells the customer that the content is available.
  • A Connections.StartConnection directive with the relevant payload parameters.

AMAZON.ScheduleTaxiReservation

Enables your requester skill to request to have the provider skill help the customer book a ride. This task enables a skill to use the customer's preferred method of scheduling rides, thus making the requester skill more useful, and driving business to the customer's preferred provider.

Name Required? Type Description
partySize No Integer Number of people in the reservation
pickupLocation Yes/No PostalAddress Optional only when dropoffLocation is provided. Location where the customer wants to be picked up.
pickupTime No DateTime Time at which the customer wants to be picked up.
dropoffLocation Yes/No PostalAddress Optional only when pickupLocation is provided. Location where the customer wants to be dropped off.

PostalAddress parameters

Name Required? Type Description
streetAddress Yes String Street address.
locality Yes String Typically a town or city or equivalent.
region Yes String Typically a state or province or equivalent.
postalCode Yes String Postal code, which is a zip code in the United States.
country No String Country.

Example response with input

{
 "type": "Connections.StartConnection", 
 "uri": "connection://AMAZON.ScheduleTaxiReservation/1",
 "input": {
       "@type": "ScheduleTaxiReservationRequest",
       "@version": "1",
       "partySize": 4,
       "pickupLocation": {
           "@type": "PostalAddress",
           "@version": "1",
           "streetAddress": "415 106th Ave NE",
           "locality": "Bellevue",
           "region": "WA",
           "postalCode": "98004",
           "country": "US"
        },
       "pickupTime": null,
       "dropoffLocation": {
           "@type": "PostalAddress",
           "@version": "v",
           "streetAddress": "2031 6th Ave.",
           "locality": "Seattle",
           "region": "WA",
           "postalCode": "98121",
           "country": "US"
        }
    }
}

Voice design guidelines

The following dialog depicts the expected customer experience for the AMAZON.ScheduleTaxiReservation task.

Alexa (as determined by requester skill developer): Your taxi reservation has been booked.
Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
User: Sure.
Alexa (as determined by provider skill developer): {ride_fulfilling_skill}
Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

Customer has never used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
Customer has used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?

When the session transitions from the provider skill back to the requester skill, Alexa renders a prompt to indicate this.

Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

When your customer has completed something and you believe that ordering a ride would be relevant, your requester skill should return a response that includes the following items:

  • A prompt that tells the customer they have completed something.
  • A Connections.StartConnection directive with the relevant input parameters.

AMAZON.ScheduleFoodEstablishmentReservation

Enables your requester skill to request a provider skill to help customers get reservations. This task enables a skill to use the customer's preferred method of scheduling restaurant reservations, thus making the requester skill more useful, and driving business to the restaurant.

Name Required? Type Description
startTime No DateTime Time of the reservation.
partySize No Integer Number of people in the reservation.
restaurant Yes Restaurant Restaurant where reservation is placed.

Restaurant parameters

Name Required? Type Description
name Yes String Name of the restaurant.
location Yes PostalAddress Address of the restaurant.

PostalAddress parameters

Name Required? Type Description
streetAddress Yes String Street address.
locality Yes String Typically a town or city or equivalent.
region Yes String Typically a state or province or equivalent.
postalCode Yes String Postal code, which is a zip code in the United States.
country No String Country.

Example response with input

{
 "type": "Connections.StartConnection",
 "uri": "connection://AMAZON.ScheduleFoodEstablishmentReservation/1",
 "input": {
       "@type": "ScheduleFoodEstablishmentReservationRequest",
       "@version": "1",
       "startTime": "2018-04-08T01:15:46Z",
       "partySize": 2,
       "restaurant": {
           "@type": "Restaurant",
           "@version": "1",
           "name": "Amazon Day 1 Restaurant",
           "location": {
               "@type": "PostalAddress",
               "@version": "1",
               "streetAddress": "2121 7th Avenue",
               "locality": "Seattle",
               "region": "WA",
               "postalCode": "98121",
               "country": "US"
            }
        }
    }
}

Voice design guidelines

This example demonstrates an expected customer experience for the AMAZON.ScheduleFoodEstablishmentReservation task.

Alexa (as determined by requester skill developer): Amazon Day 1 Restaurant has the best hip cocktails near you.
Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
User: Sure.
Alexa (as determined by provider skill developer): {provider_skill}
Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

Customer has never used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?
Customer has used provider. Alexa (as determined by Alexa): Got it. {requester_skill_name} would like to use {provider_skill_name} to do that. May I send the request to {provider_skill_name}?

When the session transitions from the provider skill back to the requester skill, Alexa renders a prompt to indicate this.

Alexa (as determined by Alexa): Returning you to {requester_skill_name}.

After a customer has prompted your requester skill for restaurant information, and if you would like your requester skill to provide restaurant information and connect to a provider skill to reserve a table, your requester skill should return a response that includes the following items:

  • A prompt that tells the customer about the restaurant.
  • A Connections.StartConnection directive with the relevant input parameters.