How to Leverage Presets with Alexa Cooking APIs

Ahmed El Araby May 21, 2019
Tips & Tools Connected Devices Smart Home

Even as Amazon Alexa now appears on over 30,000 Alexa-compatible smart home devices, Alexa is also helping families to do more in the kitchen. With new innovative microwave products, Alexa can control the appliance from anywhere in the house with simple voice commands. This new functionality is available in an expanded Alexa Smart Home Skill API and helps customers prepare meals by replacing cooking controls like defrost, popcorn mode, time and power that would normally require 5 to 10 button presses with a simple voice command. Additionally, the hands-free ability for a consumer to pause and resume cooking in an oven while they take a call or handle another event is exceptionally useful.

In 2018, Amazon released its first voice-controlled microwave, and GE followed suit. Both microwaves utilize the Alexa voice capabilities. These microwaves provide consumers with easy-to-remember voice commands to prepare common food items like popcorn and frozen pizza.

If your business offers a connected microwave, this blog post will help you create an easy-to-consume food preset catalog that you can associate with your microwave Alexa skill.

The Cooking Interface

To understand how to implement commands for cooking, we will share the steps and best practices to add voice support to cooking devices. As developers integrate cooking-centered voice commands into connected microwaves, one of the first challenges for providing a great user experience is that packaged food items have complicated names. Variations on sub-brands, sizes, and flavors all lead to requiring voice commands that might be challenging for the customer and Alexa. To help simplify and standardize this interface for developers, Alexa defines the Alexa.Cooking Interface. This interface is common to all cooking endpoints and describes the available operations for the device.

The basic voice operation of a microwave would be something like “Alexa, two minutes on my microwave.” This command assumes that customer already placed a food item inside the microwave, and that the customer knows the cooking time required. In case the customer didn’t specify the time, Alexa would ask about the time required to cook the item.

What if customers didn’t know the correct mode and the right amount of time to cook and item? In this case, the Alexa preset cooking comes handy. If the microwave manufacturer has created a preset catalog, cusotmers can only ask Alexa to cook by preset name, without the need to know the mode of the time required. In some cases, preset cooking requires either weight, volume or quantity (count) to perfectly cook the food item. This is determined by the preset catalog author. The author can specify that one or more of these food properties are required to fulfill the request. If it is required, Alexa will ask the customer about count, volume or weight if customer didn’t specify them in the request.

For cooking with preset settings, the Alexa.Cooking.PresetController helps developers define custom cooking settings appropriate for a manufacturer's appliance.

Using a Preset Catalog

If a microwave has an often used or common preset, the developer should consider it to be controlled with voice commands. Specifically, Alexa-enabled microwaves can provide customers with the ability to cook with most of the commonly used recipes and packaged food by simply providing the name of the food. (The food name will be resolved to a slot value, or catalog item, and will be sent to you skill within the Alexia directive.) Using voice means fewer buttons for the customer to press and convenient cooking control while their hands are busy or messy. Beyond stopping and starting cooking, adjustments to power levels and duration are also available. For example, a customer can stop cooking and then instruct Alexa to set the microwave at 80% power for three minutes.

To understand how a preset is used for a cooking device, let’s look at an example. To support a preset for "PRIMO Mango Chicken with Coconut Rice,” the flow from configuration to handling a PresetController directive from Alexa looks like the following:

Alexa Blog

  1. The developer provides Amazon with a Preset Catalog of supported, custom cooking settings. This includes an entry for “PRIMO Mango Chicken with Coconut Rice.”
  2. After the catalog is ingested by Amazon, the developer will receive a unique preset catalog ID to be used in the discovery response of a cooking device.
  3. The developer builds an Alexa skill that supports the cooking endpoint.
  4. The discovery response returned by the cooking endpoint skill defines the required presetCatalogId (received from catalog ingestion) and supportedCookingModes.
  5. A customer enables the cooking endpoint skill through account linking.
  6. The customer says, “Alexa, microwave the Primo mango chicken with coconut rice.”
  7. Alexa interprets the food and cooking verb from the customer and sends a CookByPreset directive to the cooking endpoint skill.
  8. Using the preset directive information, the cooking endpoint instructs the endpoint to cook on High for two minutes.

To provide cooking by name of an item, it is necessary for Amazon to train Alexa to understand the items in a provided preset catalog to offer the best customer experience.

Using the Supported Cooking Modes

A required element of a cooking endpoint is the Supported Cooking Modes. These modes describe the configuration settings for a defined mode.

The current CookingMode values are as follows:

  • Defrost - Cooking appliance is automatically configured to defrost mode
  • Off - Switches off the device
  • Preset - Brings it back to its automated cooking
  • Reheat - Sets it to reheating mode
  • TimeCook - Sets the time and power level for cooking

For example, an endpoint with the Defrost cooking mode defined could support the following user utterance: "Alexa, defrost two pounds of chicken.” In this example, the Preset is a chicken, while the Cooking Mode will be set to DEFROST. Alexa has support for food quantities, count or weight when using the preset cooking functionality.

Best Practices for Authoring the Preset Catalog

For most customers, it can be tedious when mentioning the full name of the item they want to cook in the microwave. For instance, having to say, “Alexa, microwave PRIMO Frozen Sandwiches Four Meat and Four Cheese Pizza” and “Alexa, cook ALWAYS-FRESH Frozen Sandwiches Pepperoni and Sausage Pizza.” Those two items have the same cooking instructions, and customers end up omitting the brand name. This omission might lead to preset name failure.

To overcome this problem, avoid repeating the same words in more than one item; this makes detection more difficult. Understanding that only the Preset Name and Cooking Mode are required, it is recommended to group similar items by the mode of cooking and not the item name. For example, the following two items share the same cooking mode and time settings, as well as the general item name, but are from different brands:

Alexa Blog

In this scenarios, group these two items into one preset record: HERB ROASTED CHICKEN.Users can say, “Alexa, cook Herb Roasted Chicken” or “Alexa, Microwave Herb Roasted Chicken.” In this case, there is a preset on this microwave for Herb Roasted Chicken. Alexa sends a Cook By Preset directive with details about the food.


Developers should understand the challenges of voice recognition when undertaking Preset Cooking and should expect that Preset Catalog Item names reflect the most common way people identify or describe the cooked item. This is not necessarily the actual name on the box label. You should research how your customer names or refers to the supported food items that are to be used by your endpoint. Additionally, focus on how an item is cooked using your device and not the preset name.

Additional Resources