Make it Easier for Customers to Pick Up Where They Left Off with Skill Resumption
Joyce Cho Jul 22, 2020
Share:
Alexa Live On the Go
Blog_Header_Post_Img

We are excited to introduce skill resumption (preview) in the Alexa Skills Kit. Skill resumption allows customers to easily return to a skill after a short break or even after using Alexa to complete a separate task. With skill resumption, customers can enable your skill to resume automatically when your Alexa skill has new information to provide - such as the arrival of their Uber or time elapsed in a workout - or customers can simply ask for an update, like “Alexa, Where's my ride?” Alexa will remember that the customer was using your skill, eliminating the need to invoke the skill by name or starting over. Skill resumption allows customers to more conveniently engage with your skill for longer periods of time — especially useful for scenarios involving pausing skills for longer periods of time, or temporarily switching to a different skill.

For example, a customer using a fitness tracking skill could track their workout progress while also listening to music or their favorite podcast. In this hypothetical scenario, skill resumption could be initiated by the customer asking Alexa a question like “How much time left in my workout”. With the customer’s permission, the skill itself could also initiate skill resumption when there is new information to provide to the customer, such as Alexa encouraging customer engagement by stating “Time to pick up the pace!” 

How Skill Resumption Works

There are two core concepts behind Skill Resumption. Backgrounding allows a skill to remain active in the background for a limited time, so a customer can easily pick up where they left off at their own convenience. Backgrounded skills can be resumed by the customer, or, if the customer has granted their permission, by the skill when it has new information to share with the customer. A skill comes to the foreground when it is resumed. Foregrounding can be customer-initiated, or initiated by your skill to relay important information. Here is an example from Uber, an early adopter of skill resumption:

 

Customer: “Alexa, get me a ride home.”

Alexa: “Ok, an UberX from your current location at Sixth Avenue and Blanchard Street, to home, right?”

Customer: “Yes”

Alexa: “Looking for a driver. I’ll let you know when I have a match.”  

 

The Uber skill uses the Location API to get the customer’s real-time location. After confirming the current location and destination, the Uber skill moves to the background while matching the customer with a driver and processing the ride request. To protect the privacy of customers, location information is not updated in the background state. Later, the Uber skill resumes to share confirmed ride details with the customer. 

 

Alexa: “Your driver, Sven, will arrive in seven minutes. Look for a black Prius with license plate ending in 9794.”

 

The Uber skill then returns to the background, readily available until the experience ends or is resumed by the customer. In the meantime, the customer can seamlessly interact with other Alexa skills.

 

Customer: “Alexa, what’s the weather right now?”

Alexa: “It’s currently 60 degrees with showers in Seattle.”

 

or

 

Customer: “Alexa, what’s my flash briefing?”

Alexa: <plays customer’s flash briefing> 

 

The customer is able to easily resume the Uber skill at any time — without having to start over. 

 

5 minutes later.

Customer: Alexa, where is my ride?

Alexa: Sven is 2 minutes away.

 

When the customer wants to interact with a backgrounded skill, they can do so without using the skill’s invocation name. The interaction model of the backgrounded skill remains active and customer requests can be matched to it for skill resumption. The customer can ask for anything they normally would when using the Uber skill, such as “Alexa, what is the license plate number?” or “Alexa, what color is the car?”

As demonstrated by this example, backgrounding and foregrounding allow customers to easily interact with skills for a longer period of time, while conveniently using more than one skill.

Here are some additional example use-cases that skill resumption can help enable:

  • A food delivery skill can remain in the background while processing an order and resumes to announce an ETA to the customer.
  • A fitness skill can remain in the background while the customer is working out and resumes to motivate the customer throughout the workout, based on duration or fitness metrics.
  • A game skill can remain in the background while players solve a complex riddle or form a team, then resumes to continue the game, provide clues, and more.
  • A lab skill can remain in the background while the customer works on a science experiment, and the customer can resume the skill to ask about next steps.

How Backgrounding Works

If your skill is not expecting a response from the customer immediately, but the overall experience or transaction has not ended, you can set your session state to a new state called “BACKGROUNDED.” This new state is a closed-mic state in which your skills is not expecting immediate input from the customer, but expects to interact with them again at some point. For example, when the Uber skill from the previous example is working in the background to connect the customer to a driver. By changing the session state from “active” to “BACKGROUNDED,” you now have the ability to maintain progress of your skill while giving customers more time to respond or take an action that may take longer than today’s eight-second timeout. With the customer’s permission, your skill can automatically resume when there’s an update for the customer (such as “Your driver is here” in the Uber skill) using the new skill resumption API. Customers can also follow up with your skill while in the backgrounded state and continue the interaction without having to invoke it. In the Uber example, the customer can simply say, “Alexa, where is my ride?” without losing progression and the Uber skill will respond. If there has been no activity with your skill for a significant period of time, Alexa will expire your backgrounded skill to avoid surprising customers with a skill experience they weren’t expecting or had forgotten about.

To set your session state to “backgrounded,” you can specify the skill’s state in the ASK Custom API JSON response object:

Copied to clipboard
{
    "version": "1.0",
    "sessionAttributes": {
    },
    "response": {
        "outputSpeech": {
            "type": "PlainText",
            "text": "Looking for a driver. I’ll let you know when I have a match."
        },
        "sessionBehavior": {
            "type": "SetSessionState",
            "state": "BACKGROUNDED"
        }
    } 
}

With skill resumption, you have the ability to set your skill so that customers can send it to the background, pausing the skill based on the custom pause intents defined in your interaction model. For a customer-initiated backgrounding request, simply set the session behavior to BACKGROUNDED and Alexa will read the output speech you provide and move the skill to the background. For example, you have a workout skill and a customer asks to pause their workout, you may respond with:

Copied to clipboard
{
    "version": "1.0",
    "sessionAttributes": {
    },
    "response": {
        "outputSpeech": {
            "type": "PlainText",
            "text": "Ok, pausing your workout. Let me know when you’re ready."
        },
        "sessionBehavior": {
            "type": "SetSessionState",
            "state": "BACKGROUNDED"
        }
    } 
}
How Foregrounding Works

Your skill can resurface from a backgrounded state into the foreground and resume interaction with your customer. To take your customer to the next action in your skill after an event (e.g. duration of time has elapsed, driver has arrived), you can use the new Resume Session API to trigger a resumption that sends a SessionResumedRequest to the skill, regaining the customer’s attention. For example: 

Copied to clipboard
{ 
"type": "SessionResumedRequest", 
"requestId": "string", 
"timestamp": "string", 
"locale": "string", 
"cause": { 
    "type": "SkillRequested", 
    } 
}

Here, the customer must provide your skill with permission to resume, much like they provide permission for reminders and alarms.

To allow customers to resume your skill throughout the experience, you can define custom intents in your skill interaction model so that you will receive customer resume or re-interaction intents (e.g. “Alexa, resume my run,” “Alexa, where is my ride?”) while your skill is backgrounded. The skill will be foregrounded when there is an utterance match that is defined in the skill interaction model. 

Apply for the Skill Resumption Preview Today

Skill resumption is available in developer preview for developers in en_US. Visit our website to sign up for the preview. 

Related Articles

31 New Features to Unlock More Natural and Immersive Alexa Experiences
Introducing Alexa Conversations (beta), a New AI-Driven Approach to Providing Conversational Experiences That Feel More Natural
Reach More Customers with Quick Links for Alexa (Beta) and New In-Skill Purchasing Options

Subscribe