- Action ID
actions.intent.CREATE_REVIEW
- Description
- Create a review or leave a rating on products, locations, content, or other things. Determine
which item to review by name and brand using the
review.itemReviewed.name
andreview.itemReviewed.brand.name
intent parameters. Populate the review content and rating with thereview.reviewRating.ratingValue
andreview.reviewBody
parameters. If a single item to review cannot be identified using those parameters, ask the user to determine the item to review.
Locale support
Functionality | Locales |
---|---|
Preview creation using App Actions test tool | en-US |
User invocation from Google Assistant | en-US |
Example queries
Recommended fields
The following fields represent essential information that users often provide in queries that trigger this built-in intent:
review.itemReviewed.brand.name
review.itemReviewed.description
review.reviewBody
review.reviewRating.ratingValue
Other supported fields
The following fields represent information that users often provide to disambiguate their needs or otherwise improve their results:
review.@type
review.itemReviewed.@type
review.itemReviewed.brand.@type
review.itemReviewed.name
review.reviewAspect
review.reviewRating.@type
Supported text values by field
Inventory availability by field
Sample XML files
For information about the shortcuts.xml
schema, see Create shortcuts.xml.
Handle BII parameters
shortcuts.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- This is a sample shortcuts.xml -->
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.CREATE_REVIEW">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="YOUR_UNIQUE_APPLICATION_ID"
android:targetClass="YOUR_TARGET_CLASS">
<!-- Eg. reviewBody = "example review body" -->
<parameter
android:name="review.reviewBody"
android:key="reviewBody"/>
<!-- Eg. name = "Grinder" -->
<parameter
android:name="review.itemReviewed.name"
android:key="name"/>
<!-- Eg. ratingValue = "3" -->
<parameter
android:name="review.reviewRating.ratingValue"
android:key="ratingValue"/>
</intent>
</capability>
</shortcuts>
actions.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- This is a sample actions.xml -->
<actions>
<action intentName="actions.intent.CREATE_REVIEW">
<fulfillment urlTemplate="myapp://custom-deeplink{?reviewBody,name,ratingValue}">
<!-- e.g. reviewBody = "example review body" -->
<!-- (Optional) Require a field eg.reviewBody for fulfillment with required="true" -->
<parameter-mapping urlParameter="reviewBody" intentParameter="review.reviewBody" required="true" />
<!-- e.g. name = "Grinder" -->
<parameter-mapping urlParameter="name" intentParameter="review.itemReviewed.name" />
<!-- e.g. ratingValue = "3" -->
<parameter-mapping urlParameter="ratingValue" intentParameter="review.reviewRating.ratingValue" />
</fulfillment>
<!-- Provide a fallback fulfillment with no required parameters. For example, to your app search or router deeplink -->
<fulfillment urlTemplate="myapp://deeplink" />
</action>
</actions>
JSON-LD sample
The following JSON-LD sample provides some example values that you can use in the App Actions test tool:
{ "@context": "http://schema.org", "@type": "Review", "itemReviewed": { "@type": "Thing", "name": "Grinder" }, "reviewBody": "example review body", "reviewRating": { "@type": "Rating", "ratingValue": "3" } } { "@context": "http://schema.org", "@type": "Review", "itemReviewed": { "@type": "Product", "brand": { "@type": "Brand", "name": "Brand name" }, "description": "Review of the item" } } { "@context": "http://schema.org", "@type": "Review", "itemReviewed": { "@type": "Place", "name": "example place name" }, "reviewAspect": "meal", "reviewRating": { "@type": "Rating", "ratingValue": "3" } }