Gracias por tu visita. Esta página solo está disponible en inglés.

Alexa Reminders Overview

With the Alexa Reminders API, which is a set of RESTful APIs, you can create and manage reminders for your customers. A skill requires explicit customer permission to create reminders and can only manage (modify, edit, and delete) reminders that the skill itself has created for that customer. See Alexa Reminders API Reference and Alexa Reminders Guidelines.

Customer experience for reminders

With the customer's permission, your skill can set a reminder for a predetermined time, and then when the reminder is delivered at this time, Alexa will wake up and read it out to the customer.

Alexa "barges in" to whatever interaction the customer may be having with Alexa at that moment. This may be disruptive if the customer is not expecting this reminder. To protect customers from unexpected barge-ins, a skill must acquire two sets of permissions in order to create a reminder: a) Global Reminders Read/Write permission (acquired during skill enablement), and b) an explicit customer permission for setting each specific reminder. Explicit permission should be obtained as part of the dialog your skill has with the customer. For example, you may ask the customer "Would you like me to remind you?", or "Do you want me to remind you of this?" The skill response must clarify to the customer when the reminder time will be and call out if it is a recurring reminder.

When a reminder is due to go off, the customer will hear a brief tone from their Alexa-enabled device, and then will hear Alexa say, "Here's your reminder ….", along with label information. The reminder will repeat twice unless the customer says "Stop".

A sample uninterrupted reminder flow:

  • Alexa plays a brief tone at the reminder time.
  • Alexa says, "Here's your reminder. You have an upcoming reservation at Fizzy-Foo today at 8.00 PM. You have an upcoming reservation at Fizzy-Foo today at 8.00 PM."

You cannot customize the voice delivery for the reminders. However, in your skill you can set whether the reminder should also enable a mobile phone notification.

The customer will see reminders in the Alexa app until three days after completion, after which they are automatically deleted.

In cases where the customer has not granted reminders permission to the skill, ensure that your skill gracefully informs the customer on how the they can grant permissions and that the skill sends a home card providing a link to the skill permissions page.

How to add reminders to your skill

If you have an existing Alexa custom skill, or are building a new custom skill, you can easily integrate with Alexa reminders by following these steps:

  • Configure your skill in the Permissions section of the Amazon Developer Portal to indicate that it requires Alexa Reminders permission.
  • Implement reminders capabilities in your skill service code.

  • The customer should receive a card in the Alexa app that indicates the reminder has been delivered. This card should follow this format:
Format for reminder card in the Alexa app

If you edit the skill manifest directly, ensure that it contains the alexa::alerts:reminders:skill:readwrite permission.

Manage permissions with an apiAccessToken

When your skill uses the Alexa Reminders API to create a reminder, your skill must provide an in-session ID where explicit customer permission was granted. If a skill is found to violate the permission policy, reminders access for the skill will be revoked. An out-of-session token cannot be used to create a reminder, but can be used to edit or delete a reminder.

Each request sent to your skill includes an API access token (apiAccessToken) that encapsulates the permissions granted to your skill. Your skill service needs to retrieve this token for use when you call the API to create a reminder.

The apiAccessToken is nested in the System object, which is nested in the context object. To see the full body of the request, refer to Request Format.

{
  "context": {
    "System": {
      "apiAccessToken": "AxThk...",
      "apiEndpoint": "https://api.amazonalexa.com",
      "device": {
        "deviceId": "string-identifying-the-device",
        "supportedInterfaces": {}
      },
      "application": {
        "applicationId": "string"
      },
      "user": {}
    }
  }
}

The access token in an Authorization header in the format: Bearer ACCESS_TOKEN, where ACCESS_TOKEN is the value of the apiAccessToken field from the Alexa request message. Here is an example:

Authorization: Bearer AxThk...6fnLok

Thus, for Node.js:

accessToken = this.event.context.System.apiAccessToken

See also: Handling Requests Sent by Alexa