Click here to see your recently viewed pages and most viewed pages.
Hide
Email markup

Review Action

Use to declare a review action. Gmail may show a review button next to the email, which will prompt the user for a numeric review value and / or a user comment.

Review Action in Gmail
Review action button in the inbox

Numeric Rating

Embed the following markup in your email to instruct Gmail to render a rate and review button for a restaurant:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "action": {
    "@type": "ReviewAction",
    "review": {
      "@type": "Review",
      "itemReviewed": {
        "@type": "FoodEstablishment",
        "name": "Joe's Diner"
      },
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "worstRating": "1"
      }
    },
    "handler": {
      "@type": "HttpActionHandler",
      "url": "http://reviews.com/review?id=123",
      "requiredProperty": {
        "@type": "Property",
        "name": "review.reviewRating.ratingValue"
      },
      "method": "http://schema.org/HttpRequestMethod/POST"
    }
  },
  "description": "We hope you enjoyed your meal at Joe's Diner. Please rate your experience."
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="action" itemscope itemtype="http://schema.org/ReviewAction">
    <div itemprop="review" itemscope itemtype="http://schema.org/Review">
      <div itemprop="itemReviewed" itemscope itemtype="http://schema.org/FoodEstablishment">
        <meta itemprop="name" content="Joe's Diner"/>
      </div>
      <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
        <meta itemprop="bestRating" content="5"/>
        <meta itemprop="worstRating" content="1"/>
      </div>
    </div>
    <div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
      <link itemprop="url" href="http://reviews.com/review?id=123"/>
      <div itemprop="requiredProperty" itemscope itemtype="http://schema.org/Property">
        <meta itemprop="name" content="review.reviewRating.ratingValue"/>
      </div>
      <link itemprop="method" href="http://schema.org/HttpRequestMethod/POST"/>
    </div>
  </div>
  <meta itemprop="description" content="We hope you enjoyed your meal at Joe's Diner. Please rate your experience."/>
</div>

Review Text

In addition to a rating, users may also provide a textual comment, up to 10000 characters long. To achieve that, declare review.reviewBody as optionalProperty or requiredProperty:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "action": {
    "@type": "ReviewAction",
    "review": {
      "@type": "Review",
      "itemReviewed": {
        "@type": "FoodEstablishment",
        "name": "Joe's Diner"
      },
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "worstRating": "1"
      }
    },
    "handler": {
      "@type": "HttpActionHandler",
      "url": "http://reviews.com/review?id=123",
      "requiredProperty": {
        "@type": "Property",
        "name": "review.reviewRating.ratingValue"
      },
      "optionalProperty": {
        "@type": "Property",
        "name": "review.reviewBody"
      },
      "method": "http://schema.org/HttpRequestMethod/POST"
    }
  },
  "description": "We hope you enjoyed your meal at Joe's Diner. Please tell us about it."
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="action" itemscope itemtype="http://schema.org/ReviewAction">
    <div itemprop="review" itemscope itemtype="http://schema.org/Review">
      <div itemprop="itemReviewed" itemscope itemtype="http://schema.org/FoodEstablishment">
        <meta itemprop="name" content="Joe's Diner"/>
      </div>
      <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
        <meta itemprop="bestRating" content="5"/>
        <meta itemprop="worstRating" content="1"/>
      </div>
    </div>
    <div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
      <link itemprop="url" href="http://reviews.com/review?id=123"/>
      <div itemprop="requiredProperty" itemscope itemtype="http://schema.org/Property">
        <meta itemprop="name" content="review.reviewRating.ratingValue"/>
      </div>
      <div itemprop="optionalProperty" itemscope itemtype="http://schema.org/Property">
        <meta itemprop="name" content="review.reviewBody"/>
      </div>
      <link itemprop="method" href="http://schema.org/HttpRequestMethod/POST"/>
    </div>
  </div>
  <meta itemprop="description" content="We hope you enjoyed your meal at Joe's Diner. Please tell us about it."/>
</div>

Restaurants, Products, Movies, etc.

Gmail supports reviews for entities of the following types:

  • Movies
  • Restaurants
  • Products (including commodity services)

For example, use the following markup to review a Movie:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "action": {
    "@type": "ReviewAction",
    "review": {
      "@type": "Review",
      "itemReviewed": {
        "@type": "Movie",
        "name": "Oblivion"
      },
      "reviewRating": {
        "@type": "Rating",
        "bestRating": "5",
        "worstRating": "1"
      }
    },
    "handler": {
      "@type": "HttpActionHandler",
      "url": "http://reviews.com/review?id=123",
      "requiredProperty": {
        "@type": "Property",
        "name": "review.reviewRating.ratingValue"
      },
      "method": "http://schema.org/HttpRequestMethod/POST"
    }
  },
  "description": "We hope you enjoyed your meal at Joe's Diner. Please tell us about it."
}
</script>

Microdata

<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="action" itemscope itemtype="http://schema.org/ReviewAction">
    <div itemprop="review" itemscope itemtype="http://schema.org/Review">
      <div itemprop="itemReviewed" itemscope itemtype="http://schema.org/Movie">
        <meta itemprop="name" content="Oblivion"/>
      </div>
      <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
        <meta itemprop="bestRating" content="5"/>
        <meta itemprop="worstRating" content="1"/>
      </div>
    </div>
    <div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
      <link itemprop="url" href="http://reviews.com/review?id=123"/>
      <div itemprop="requiredProperty" itemscope itemtype="http://schema.org/Property">
        <meta itemprop="name" content="review.reviewRating.ratingValue"/>
      </div>
      <link itemprop="method" href="http://schema.org/HttpRequestMethod/POST"/>
    </div>
  </div>
  <meta itemprop="description" content="We hope you enjoyed your meal at Joe's Diner. Please tell us about it."/>
</div>

Specification

The following table lists all available properties for this type:

Property Type Description
review Review (required) The review.
review.reviewRating Rating The rating given in this review.
review.reviewRating.bestRating Number or Text The highest possible rating value. The default is 5. The maximum value Gmail supports is 5.
review.reviewRating.worstRating Number or Text The lowest possible rating value. The default is 1. The only value Gmail supports is 1.
review.itemReviewed Thing (required) The item being reviewed: A movie, a restaurant, a product, etc.
review.itemReviewed.name Text Name of the Thing.
handler HttpActionHandler (required) Handlers supported by this action.
handler.method HttpRequestMethod Whether to use HTTP GET or POST. GET is the default.
handler.url URL (required) Target url to fetch in order to complete the action.
handler.requiredProperty Property (required) Property that must be provided on the action for it to be handled by the handler. Also accepts an array of objects.
handler.requiredProperty.name Text (required) Name of the Property.
handler.optionalProperty Property Property that can be specified on the Action that the handler supports. Also accepts an array of objects.
handler.optionalProperty.name Text Name of the Property.