Commerce Services

Response structures specific to Commerce

Commerce Context

Query responses for commerce services contain a set of information to support intent-specific actions by clients. The general structure of a Commerce Context is

{
  "keywords": [
    "array",
    "of",
    "strings"
  ],
  "attributes": {
    "category": "sneakers",
    "color": [
      "red",
      "yellow"
    ],
    "someAttribute": "someValue"
  },
  "price": {
    "type": "exact | lessThan | greaterThan | range | approx",
    "value": 100,
    "from": 10,
    "to": 100
  },
  "sortBy": "new | popular | priceLowToHigh | priceHighToLow | rating | sale"
}
  • keywords is a list of words uttered by your User. These should typically be used to populate a free-form text search field.
  • attributes are a set of key/value pairs identified in the query your User uttered. Each entry is the name of a service-specific attribute and its corresponding value(s). Clients must support attribute values being either single-valued or an array of values. The attributes that are supported in this section are specific to your integration with Voysis.
  • price is an optional object that indicates a price restriction uttered by your User. Clients should support both a missing "price", or an empty price object being returned.
    • Where type is exact, lessThan, greaterThan or approx, an integer "value" will be present indicating the price that the User requested. An example phrase might be "I'm looking for sneakers for less than 100 dollars."
    • Where type is range, both the from and to properties will be present, representing the integer values of the requested range. An example phrase might be "I'm looking for sneakers between 70 and 150 dollars."
  • sortBy is an enumerated value indicating how the User would like results to be sorted.
    • new indicates that newest products should be sorted to the top of the results.
    • popular indicates most popular products should be sorted to the top of the results.
    • priceLowToHigh indicates the results should be sorted with the lowest priced products at the top, in increasting order of cost.
    • priceHighToLow indicates the results should be sorted with the highest prices products at the top, in decreasing order of cost.
    • rating indicates the results should be sorted with the highest rates products at the top.
    • sale indicates that products that are on sale should be sorted to the top of the results.

Commerce Entities

Usually the information about the products the user requested are specified in the context field. The exception is when the user intent is addToCart. This is because the user can utter this request from any context and will expect to get back to this context after the items requested are added to their cart. For example, a user may ask for oranges and apples to be added to their cart from the shoes section of your app/website. The context has to be returned to shoes after the oranges and apples are added to the cart so the user may continue shopping for shoes if they still want to.

{
  "products": [
    {
      "keywords": [
        "oranges"
      ],
      "attributes": {},
      "price": {},
      "sortBy": ""
    },
    {
      "keywords": [
        "apples"
      ],
      "attributes": {},
      "price": {},
      "sortBy": ""
    }
  ]
}

Supported Intents

This section lists out the intents supported for Commerce services, and the values that clients can expect in the responses to user queries.

New Search

Intent ValueMeaningUser query (example)
newSearchThe user is initiating a search request by specifying a particular product or giving a general description of what they are looking for.I am looking for orange juice

The response to a new search will contain a new Commerce Context indicating the details of the search the User has requested. An example response:

{
  "id": "86f4b80f-bffb-4953-bda8-5a9ac6b5a178",
  "locale": "en-US",
  "conversationId": "f14314d9-8982-4337-a2f5-bc0fef5cba1d",
  "queryType": "audio",
  "textQuery": {
    "text": "i'm looking for orange juice"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {
    "keywords": [
      "orange",
      "juice"
    ],
    "attributes": {},
    "price": {},
    "sortBy": ""
  },
  "intent": "newSearch",
  "reply": {
    "text": "Here's what I found"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/86f4b80f-bffb-4953-bda8-5a9ac6b5a178"
    },
    "audio": {
      "href": "/queries/86f4b80f-bffb-4953-bda8-5a9ac6b5a178/audio"
    }
  }
}

Refinement and Contradiction

Intent ValueMeaningUser query (example)
refinementThe user is sorting, narrowing down or expanding their search by adding more product details. Refinement only happens after the user has already requested a particular product.Previous query: "Show me handbags".

Refinement query: "Show me red ones".

Contradiction query: "Actually, show me black ones".

Refinement works by using the Commerce Context that was submitted along with the refinement audio query and generating a new context for use by the client. As such, it is important for client implementations to copy the context from the previous query into the submitted query's context property. An example refinement response:

{
  "id": "796ffaa0-ade5-4fe2-9180-9b749ae291ac",
  "locale": "en-US",
  "conversationId": "dc8bc6ce-c1b6-4c6e-b848-1d61bbfd37cb",
  "queryType": "audio",
  "textQuery": {
    "text": "show me red ones"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {
    "keywords": [
      "handbags"
    ],
    "attributes": {
      "color": "red"
    },
    "price": {},
    "sortBy": ""
  },
  "intent": "refinement",
  "reply": {
    "text": "Here's what I found"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/796ffaa0-ade5-4fe2-9180-9b749ae291ac"
    },
    "audio": {
      "href": "/queries/796ffaa0-ade5-4fe2-9180-9b749ae291ac/audio"
    }
  }
}

Add to Cart

Intent ValueMeaningUser query (example)
addToCartThe user wants to put one or more products in their shopping cart.
The user can also add an item that he/she is currently looking at (needs to be on the item's page)
Add oranges and pizza to my cart.

Add this to my cart.
{
  "id": "937a4901-d964-4ece-b8b8-055b15444529",
  "locale": "en-US",
  "conversationId": "b3f1659b-58e6-4291-864a-34aa0558e067",
  "queryType": "audio",
  "textQuery": {
    "text": "add this to my cart"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "addToCart",
  "reply": {
    "text": "Adding to your cart"
  },
  "entities": {
    "products": [
      {
        "keywords": [
          "oranges"
        ],
        "attributes": {},
        "price": {},
        "sortBy": ""
      },
      {
        "keywords": [
          "pizza"
        ],
        "attributes": {},
        "price": {},
        "sortBy": ""
      }
    ]
  },
  "_links": {
    "self": {
      "href": "/queries/937a4901-d964-4ece-b8b8-055b15444529"
    },
    "audio": {
      "href": "/queries/937a4901-d964-4ece-b8b8-055b15444529/audio"
    }
  }
}

Go to Cart

Intent ValueMeaningUser query (example)
goToCartThe user wants to view the products they have selected for buying.What's in my cart?
{
  "id": "889cac8b-ba7a-4cf9-9450-558ed8434fb0",
  "locale": "en-US",
  "conversationId": "356e3b54-4747-4ec6-adfa-e47d36e31619",
  "queryType": "audio",
  "textQuery": {
    "text": "what's in my cart"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "goToCart",
  "reply": {
    "text": "Here's what's in your cart"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/889cac8b-ba7a-4cf9-9450-558ed8434fb0"
    },
    "audio": {
      "href": "/queries/889cac8b-ba7a-4cf9-9450-558ed8434fb0/audio"
    }
  }
}

Checkout

Intent ValueMeaningUser query (example)
checkoutGeneral intent meaning everything related to completing an order.I want to checkout.
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "i want to checkout"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "checkout",
  "reply": {
    "text": "Taking you to checkout"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Order Status

Intent ValueMeaningUser query (example)
orderStatusThe user asks about more information on their purchase and delivery.Has my order been shipped yet?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "has my order been shipped yet"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "orderStatus",
  "reply": {
    "text": "Checking your order"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Go to Home

Intent ValueMeaningUser query (example)
goToHomeScreenThe user wants the system to display its home screen.Take me home
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "take me home"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "goToHomeScreen",
  "reply": {
    "text": "Taking you home"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Help

Intent ValueMeaningUser query (example)
helpThe user asks the system about its capabilities and example commands.What can you do?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "what can you do"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "help",
  "reply": {
    "text": "Here are some example things you can ask: Product Search: 'Show me some ...', 'I am looking for ...' Sorting: 'I want the cheapest ...', 'What are the most popular ... ' Add to cart: 'Add this to my cart' Order Status: 'What is the status of my order', 'Where's the stuff I ordered' Transact: 'I want to pay now', 'What's in my cart', 'Take me to checkout'"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Reset

Intent ValueMeaningUser query (example)
resetThe user asks the system to forget everything they have said so far and remove any items they have added to their shopping cart.
Mark that this is client implementation.
Cancel everything
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "cancel everything"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "reset",
  "reply": {
    "text": "Resetting"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Start Conversation

Intent ValueMeaningUser query (example)
startConversationThe user and/or the system intentionally makes their presence known to each other or to show attention. People usually take this action to start their conversations with each other.Hello
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "hello"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "startConversation",
  "reply": {
    "text": "Hi"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Agent Request

Intent ValueMeaningUser query (example)
agentRequestThe user wants to be connected to a live representative immediately.I need to speak to someone now
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "i need to speak to someone now"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "agentRequest",
  "reply": {
    "text": "Connecting you to a representative"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Order History

Intent ValueMeaningUser Query (example)
orderHistoryUser request to view previous ordersShow me my order history
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "show me my order history"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "orderHistory",
  "reply": {
    "text": "Here's your previous orders"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Account Help

Intent ValueMeaningUser Query (example)
accountHelpUser needs assistance creating or retrieving an accountI can't remember my password
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "i can't remember my password"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "accountHelp",
  "reply": {
    "text": "Okay, getting you help with your account"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Discount Help

Intent ValueMeaningUser Query (example)
discountHelpUser needs assistance applying coupons or discountsHow do I apply my twenty percent off coupon code?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "how do i apply my twenty percent off coupon code"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "discountHelp",
  "reply": {
    "text": "Okay, getting you help with your discount"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Stock Query

Intent ValueMeaningUser Query (example)
stockQueryRequests to be notified when an item is back in stock; inquiries about out-of-stock itemsWhen will this be back in stock?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "when will this be back in stock"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "stockQuery",
  "reply": {
    "text": "Getting you the status of this item"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Unhappy Feedback

Intent ValueMeaningUser Query (example)
unhappyFeedbackUser expressing frustration or dissatisfactionWhy aren't you working?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "why aren't you working"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "unhappyFeedback",
  "reply": {
    "text": "We're sorry, let's see what we can do to help"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Product Questions

Intent ValueMeaningUser Query (example)
productQuestionsQuestions about specific productsIs your colour 'midnight' the same as black?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "is your colour midnight the same as black"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "productQuestions",
  "reply": {
    "text": "Pulling up a colours chart for you"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Customer Feedback

Intent ValueMeaningUser Query (example)
customerFeedbackUser giving general feedback about productsI wish you had more sizes in this colour
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "i wish you had more sizes in this colour"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "customerFeedback",
  "reply": {
    "text": "Thank you for your valuable feedback"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

FAQ Returns

Intent ValueMeaningUser Query (example)
faqReturnsInquiries about return policyWhat is your return policy?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "i wish you had more sizes in this colour"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {
  	"faq": {
  		"topic": "Returns"
  		}
  },
  "intent": "faq",
  "reply": {
    "text": "Here's some useful information"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

FAQ Shipping

Intent ValueMeaningUser Query (example)
faqShippingInquiries about shippingHow much is shipping to Seattle?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "how much is shipping to seattle"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {
  	"faq": {
  		"topic": "Shipping"
  		}
  },
  "intent": "faq",
  "reply": {
    "text": "Here's some useful information"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

FAQ Locations

Intent ValueMeaningUser Query (example)
faqLocationsInquiries about store location informationDo you have a store in Portland, Oregon?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "do you have a store in portland oregon"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {
  	"faq": {
  		"topic": "Locations"
  		}
  },
  "intent": "faq",
  "reply": {
    "text": "Here's some useful information"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

FAQ Contact

Intent ValueMeaningUser Query (example)
faqContactInquires about contacting the companyWhat is your email address?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "what is your email address"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {
  	"faq": {
  		"topic": "Contact"
  		}
  },
  "intent": "faq",
  "reply": {
    "text": "Here's some useful information"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

End Conversation

Intent ValueMeaningUser query (example)
endConversationThe user and/or the system leaves the conversation/shopping task.Good bye
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "goodbye"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "endConversation",
  "reply": {
    "text": "See you soon"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}

Unknown

Intent ValueMeaningUser query (example)
unknownAny user or system intent that is not in the list of intents described here.
This is something that is meaningful but our system doesn't handle it yet.
Can you tell me why this product isn't on sale?
{
  "id": "afd65453-8995-4773-b9aa-6830d06af6ab",
  "locale": "en-US",
  "conversationId": "6ecd6bb8-28b5-4771-879d-979cda880a44",
  "queryType": "audio",
  "textQuery": {
    "text": "can you tell me why this product isn't on sale"
  },
  "audioQuery": {
    "mimeType": "audio/wav"
  },
  "context": {},
  "intent": "unknown",
  "reply": {
    "text": "Sorry, I don't know how to do this yet"
  },
  "entities": {},
  "_links": {
    "self": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab"
    },
    "audio": {
      "href": "/queries/afd65453-8995-4773-b9aa-6830d06af6ab/audio"
    }
  }
}