A submission form is the interface that contributors use to rate and review products, services, and companies, and to ask and answer questions.

The following figure shows the most basic elements of a Ratings & Reviews submission form. Using the form, contributors select the overall rating they want to give the product or service, type a review, and provide a nickname, location, and email address.

Basic submission form

A well-designed submission form that is simple and easy to complete maximizes the number of contributions on your site and minimizes abandonment. Maximizing the number of contributions is important because consumers have more confidence in a product’s ratings and reviews when the product has multiple reviews.

The Conversations configuration hub has two User Experience pages you can use to configure fields for the submission form. Using these two pages, you can add many more fields to the submission form than those shown in the above figure.

  • Display options—Set basic requirements for the submission form, and enable contributors to supplement their review content with additional media, such as photos and links to videos related to the product or service. You can also choose to use a multi-product submission form to gather ratings and reviews for multiple products in a single submission form. Refer to Ratings & Reviews configuration options for more information about these submission form options.
  • Submission form editorAdd questions to the submission form that enable you to gather additional information about the contributor and the contributor’s sentiment about a product or service. You can also add questions that contextualize the review for consumers to help them make more informed purchasing decisions.

In addition, to streamline the submission process, you can configure data injection and simple submission URLs. You can also respond to events that occur in the Bazaarvoice application.

Configure submission form questions

Submission form questions enable you to collect valuable information from your customers that you can use for business purposes. The questions prompt customers to provide information about themselves and their sentiments about a product or service. For example, authentic user sentiment about your products or services, including words directly from your customers, can be used in or inspire marketing campaigns.

Answers to submission form questions contextualize the review and enable consumers to make informed decisions based on that review. For example, if a contributor wrote a negative review about an article of clothing saying it does not fit well, and the contributor answered the Body Type question on the submission form, someone reading the review might not factor the negative review into her purchasing decision if she has a different body type than the contributor.

Watch this short video about using the submission form editor:

Best practices

  • To maximize the number of contributions on your site and minimize abandonment, keep your submission form simple and easy to complete. Collect the following types of critical information:
    • Information that contextualizes the review and enables consumers to make informed decisions based on that review.
    • Business intelligence information—such as authentic user sentiment about your products or services, as well as words directly from your customers—that departments within your company can use to improve product quality or make merchandizing or marketing decisions.
  • To ensure information security for your customers, do not ask for personally identifiable information (PII) in submission form questions, even if the questions are hidden on the review display. For example, do not request the following:
    • Physical mail addresses
    • Date or place of birth
    • Telephone numbers
    • Drivers license or vehicle identification numbers

Customize a submission form

Watch this short video to see how you can configure submission form questions:

Follow these steps to configure a submission form:

  1. Before beginning, consider the types of questions that are available and how you want to design your form. Refer to Submission form questions reference to read about and determine the category of questions that you want to configure.
  2. Using the Bazaarvoice Workbench, click Settings » Manage Applications.
  3. Edit the implementation for which you want to configure submission forms.
  4. Click Submission Form Editor in the User Experience section of the Conversations configuration hub.

    Note: You must configure some sections outside the submission form editor. Locate this content by hovering over a grayed-out section and opening the link provided in the tooltip.
  5. Click the icon at the top of the editor and then select the product category or subcategory of the submission form you want to modify.

    The editor automatically opens the All Products submission form. If you add, edit, or delete questions in the All Products submission form, the editor applies those changes to all linked forms.

    Note: The path to the selected category displays at the top of the editor beside Editing questions for. If you click the folder icon again, the newly selected category has the word "Selected" beside it.
  6. If applicable, select the locale you want to edit from the drop-down menu.
  7. To add a new question to the form, click New Question beside the category of question you want to add. A list of predefined questions for that category displays.

    To add a predefined question, click Add This Question. You can edit the question name, display label, submission form label, possible answer values, and global question settings before saving. If you operate in multiple locales, you can also edit values for each locale.

    To add a custom question, click Add a Custom Question. Select a question type. Enter a question name, question ID, display label, submission form label, and possible answer values. Set global question settings. The following table shows valid values for Question Type depending on the question category.

    Question Category Valid Question Types
    People questions Dropdown Select, Free Text
    Ratings questions Ratings, Slider
    Product questions Dropdown Select, Tag Groups, Free Text

    Click Save and Add to add the question to the form, or click in the top right corner to return to the editor without saving.

  8. If you need to modify an existing question, click to modify an existing question. If the question appears in multiple categories, any edits will update the question in all categories where it appears.

    Note: Not all fields on a submission form are represented on the published review. You can set certain fields on the submission form to be hidden on the published review.
  9. If you need to delete a question from the form, click to delete a question. If you delete a question from the All Products form, the editor removes the question from all linked forms.
  10. If you need to change the default order of questions on the form, you can click next to a question category and then select Move this section to move an entire section of questions. Click the section you want to move and drag it to the preferred location on the submission form. The first and last section—Base Review Questions and Net Promoter Question—are locked and cannot be moved.

    You can also reorder questions within a question category. Click and select Reorder questions in this section. Click the question you want to move and drag it to the preferred location.

  11. If you added or modified a product question for a subcategory (chosen in step 5), inheritance from the parent category is severed. (Submission forms for product subcategories inherit questions from parent categories.) is displayed at the top of the submission form editor and next to the category in the product categories list. To revert the category to its original state and restore the link to the parent category, click . Any changes made to the parent category while the child category was severed now appear in the child.

  12. To require contributors to enter review text or title to submit their reviews:
    1. Click Display Options in the User Experience section of the configuration hub.
    2. Click the Ratings & Reviews tab.
    3. Under Review Submission, you can configure the following options:
      • Require review text (Single-Product Submission Form)—Enable to require contributors to write review text as part of their review submission when using the default single-product submission form.
      • Require Review Title (Single-Product Submission Form)—Enable to require contributors to enter titles for their reviews when using the default single-product submission form.
      • Require Review Text & Title (Multi-Product Submission Form)—Enable to require contributors to enter review text and title to submit reviews when using a multi-product submission form. Enabling this setting prevents the submission of ratings-only reviews in the multi-product submission form.

Submission form questions reference

This section describes the available question categories and explains the elements you can configure for each question.

Watch this short video to see an overview of the submission form question categories:

Question categories

Submission form questions are grouped into the following categories:

  • Ratings—Optional secondary ratings regarding specific attributes of the product or service, such as the cleanliness or food quality at a restaurant. Answers to these questions help other consumers determine if a specific aspect of a product or service meets their needs. You can customize the customer-facing labels for rating dimensions for your specific business.
  • People—Provide additional information about the contributor, such as age and gender. Answers to these questions help consumers identify with the person who wrote the review. People questions should map to consumer segments important to your business. For example, a cosmetics company might want to ask reviewers to identify their skin type.

    You can customize the language of the questions to suit your business, and you can omit any recommended options. However, to benchmark this data accurately against other Bazaarvoice clients, you must use the default answer ranges. These can be powerful tools if you make these questions filterable by other users.

    Note: Conversations supports COPPA. Refer to the COPPA support statement for more information.
  • Products—Enable contributors to provide insight for specific issues about a product (such as clothing fit, durability, or appearance) and how they use the product (level of expertise or usage frequency). Answers to these questions help other consumers learn more about the contributor and provide context for their experience with the product or service. For example, if a person is shopping for a new camera to take family photos, and she sees a few low ratings from reviewers who are professional photographers, she can probably assume their concerns will not impact her satisfaction with the camera.

    Use product questions instead of ratings questions when a specific attribute is best described on a two-option scale instead of a relative, value-based scale of 1-5 or a value-neutral scale. For example, you can collect information about product appearance using a product question (“How does your purchase fit?”) with response values like “Runs narrow” and “Runs wide,” or you can use a rating question (“How would you rate the appearance of the product?”) with response values of 1-5. Product questions provide more context than ratings questions. Answers to ratings questions do not provide consumers as much useful information as answers to product questions, especially if the contributor rates the product without writing a text review that provides context.

    Be aware that submission forms for product subcategories inherit questions from parent categories. That is, changes made to the submission form for a parent category are inherited by child categories. For example, if you define a submission form for apparel, submission forms displayed for product subcategories in apparel (such as dresses or shirts) inherit questions from the main apparel submission form. By default, a change to a subcategory product’s submission form severs the inheritance from its parent category.

Question fields

The following figure shows the window in which you configure a new question or edit an existing question.

Question Type—(all questions) Types of responses a reviewer can make for a given question.

  • Dropdown Select—(people and product questions) Contributors respond with exactly one answer from a list of values you provide.
  • Ratings—(ratings questions) Contributors express sentiment about one aspect of the product or service on a five-point scale.
  • Slider—(ratings questions) Contributors rate a product or service on a continuum instead of by numeric rank. They supplement overall ratings by providing a richer rating level for a product.Sliders can reduce returns by 5 to 15 percent.

    The following image shows a slider similar to what you would find on a submission form or published review.

    Examples of industries that benefit greatly from having sliders include apparel, shoes/footwear, cosmetics, sports and outdoors stores, and department stores. Sliders enable product reviews to have descriptions such as “Runs narrow,” “Fits correctly,” or “Runs wide.”

  • Tag groups—(product questions) Contributors tag a product or service with descriptors you provide, and tag groups enable contributors to add commonly expressed opinions or information to their reviews. Consumers can derive useful information from the tags quickly. For example, if your product is a digital camera, you could add the tag category “Digital Camera Pros” and provide tags like “Long battery life,” “Compact,” and “Included lens.”
  • Free text—(product questions) Reviewers write comments about a product or service.

Question Name—(all questions) Descriptive, unique name for internal use that helps you identify the question in the questions list during configuration.

Question ID —(all questions) The ID of the question for data injection, syndication, and reporting. This ID should not contain any special characters or spaces.

Display Label—(all questions) Text displayed on the published review that prefaces the response value the contributor provided.

Submission Form Label—(all questions) Request for information from the contributor. The Submission Label text displays on the review submission form.

Possible Answer Values—(people, slider, and product questions) Options contributors select when responding to the submission form question. To edit existing values for default questions, click inside the value box to make it editable. To add more values, click Add new value.

Note: For ratings questions, values fields are available for the slider question type but not the ratings question type.

Left Label—(slider questions only) Leftmost label on a slider.

Right Label—(slider questions only) Rightmost label on a slider.

Global question settings

Watch this short video to see an overview of the global question settings:

The following global question settings are available. During onboarding, these settings are configuring according to Bazaarvoice best practices.

  • Required—(all questions) Requires contributors to respond to the question.

    Note: Do not select this option if you use data injection to populate the answer.

  • Hide in display—(all questions) Prevents the answer to this question from displaying on the published review.
  • Filterable—(people and product questions) Enables consumers to filter reviews based on the Values you set.
  • Hide on submission—(people and product questions) Prevents the answer to this question from displaying on the submission form. Answers to these questions are populated using data injection.
  • Auto-populate—(people questions only) Automatically populates fields of the submission form if the contributor previously provided the same information on your site. Deselect Required if you select the Auto-populate option. Contact your Bazaarvoice Implementation Engineer if you want to enable this option.
  • Subject ID required—(people and product questions) Requires the subject ID for a product to be injected into the review submission.

Specify an alternate return page

By default, customers return to the URL where they clicked “Write a review” link to access the review submission form. However, you can choose to specify a different return page.

Note: You must use an absolute URL when redirecting to the alternate page.

Include the following code on the page where the user first clicked the “Write a review” link:

$BV.configure('global', {
    returnUrl : 'http://AlternateReturnPage.com'
});

Simple submission URLs

A simple submission URL (ssURL) quickly takes customers to a submission form, typically for reviews. When customers have to locate a product page, open the submission form, and then log in, many abandon the process. Using ssURLs can remove some barriers, potentially increasing review volume and the effectiveness of a campaign.

From the consumer’s perspective, ssURLs are displayed and behave in the same way as traditional URLs. When customers click the URL, the submission form opens in their browser, as illustrated in the following diagram.

Behind the scenes, the ssURL loads a container page before loading the submission form. Using the parameters from the ssURL, the container page determines the type of submission, the submission location, and user authentication if necessary.

You can use ssURLs in any web media, such as an email, splash page, or banner. You can associate an ssURL with objects like buttons and images, or you can display an ssURL as a text link. An ssURL can open a submission form that displays a product picker page for all products in your product catalog or for all products in a specific category or product family. Finally, if you use a third-party service to drive review volume, ensure every campaign uses ssURLs to include the content in the Bazaarvoice network.

How you construct your ssURL depends on two factors:

  • Are you using a single-product submission form or a multi-product submission form?
  • Are you using hosted or site authentication?

Consider which type of submission form you would like to link to when creating ssURLs:

  • Single-product submission form—The default Ratings & Reviews submission form. Using the form, contributors rate and review a single product or service. Learn how to create a single-product ssURL here.
  • Multi-product submission form—Allows contributors to rate and review multiple products in one place by following a simple, progressive submission flow. Learn how to create a multi-product ssURL here.

If Bazaarvoice can authenticate a consumer’s submissions, the consumer can click an ssURL and successfully submit content without logging in. The authentication process varies between hosted and site authentication methods. Determine your authentication method and consider the following when creating ssURLs:

  • Site authentication—The ssURL can pre-authenticate users when it includes a special parameter and a user token.
  • Hosted authentication—Bazaarvoice authenticates users through email after submission, so you do not need to include an authentication parameter in the ssURL.

Examples of single-product ssURLs

For example, the following URL provides the format for a pre-authenticated submission link for email reviews:

https://display.ugc.bazaarvoice.com/static/<client_name>/<site_ID>/<locale>/container.htm?bvaction=rr_submit_review&bvproductId=<ProductID>&bvcampaignId=<CampaignID>&bvuserToken=<UASToken>

You can create pre-authenticated ssURLs for

  • Email submissions

  • Question submissions on a product page
  • Answer submission on a product page

  • Same-page submission links

The following example shows you how to assemble ssURLs for several scenarios.

ssURL in a Review Request post-interaction email message

Lynn works at a company named Apples, and she manages campaigns to increase the volume of consumer-generated content for the Granny Smith apple. To request reviews, she wants to include an ssURL that is linked to “writing a review” in campaign media, such as the following Review Request post-interaction email (PIE) message:

Hello Connor,

Thank you for your recent purchase of the Granny Smith apple! Please let us know what you think by <a href="...">writing a review</a>!

Thanks,

Apples

To create the ssURL, Lynn will complete the following steps.

  1. Assemble the ssURL base.

    Lynn starts with the following base URL:

    https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/container.htm?

    She replaces <client_name> with the ID provided by Bazaarvoice, <site_ID> with the name of the deployment zone she wants to use, and __ with the locale of the implementation. When she's ready for production, Lynn removes /bvstaging.

    She now has the following URL:

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?
  2. Add submission parameters.

    Lynn adds bvaction=rr_submit_review and bvproductId=GS-1234 to the URL to open the review submission form for the Granny Smith apple. Lynn also wants to track this campaign’s success, so she adds the bvcampaignId= parameter.

    She now has the following URL.

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_review&bvproductId=GS-1234&bvcampaignId=GranniesReview

When consumers click the ssURL, the following submission form opens for the Granny Smith Apple:

My review

ssURL using data injection for an incentivized review

Building on the first example, Lynn wants to collect reviews from a sampling program. She wants to send the following email to request reviews from consumers who recently sampled the Granny Smith apple. She wants to link “writing a review” to an ssURL that injects the incentivized review Question ID into the form that is displayed.

Hello Morgan,

Great seeing you at the farmers' market! What did you think of the Granny Smith? We'd love it if you could share your thoughts by <a href="...">writing a review</a> on our site!

Thanks,

Apples

Lynn needs to identify incentivized reviews, so she creates a new ssURL for this email using these steps:

  1. Start with the ssURL that she previously created:.

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_review&bvproductId=GS-1234&bvcampaignId=GranniesReview
  2. Configure data injection. Lynn wants the “Did you receive a free sample” submission form question to have the answer “Yes” selected when the consumer opens the submission form from this ssURL. She can modify the ssURL to inject this data.

    First, Lynn finds the QuestionID and AnswerID in the Submission Form Editor in theConversationsconfiguration hub, formats the values as {“QuestionID”: “AnswerID”}, and encodes this string. Lynn used an online URL encoding tool, such as the one available at urlencode.org .

    Her original string, {“FreeSamp”:”True”} encodes to %7b%22FreeSamp%22%3a%22True%22%7d. She adds the bvinjecteddata= parameter and the encoded string to complete her ssURL:

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_review&bvproductId=GS-1234&bvcampaignId=GranniesReview&bvinjecteddata=%7b%22FreeSamp%22%3a%22True%22%7d
  3. Use the following ssURL in her campaign media:

    https://display.ugc.bazaarvoice.com/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_review&bvproductId=GS-1234&bvcampaignId=GranniesReview&bvinjecteddata=%7b%22FreeSamp%22%3a%22True%22%7d

When consumers click the URL, the following submission form opens for the Granny Smith apple:

My review

ssURL in a generic review submission email message

Building on the first example, Lynn wants to drive review volume for all products at her company using generic review submission. For the campaign, Lynn wants to ask consumers to pick and review products they’ve purchased using a banner displayed on the company’s site and by sending the following email:

Hey Joe,

Thank you for subscribing to Apples' newsletter! Have you purchased from us before? If so, how about sharing your thoughts by writing a review? Just find your favorite Apples product <a href="..."here and review it</a>! We're excited to receive your feedback.

Thanks,

Apples

To create the ssURL, Lynn completes these steps:

  1. Start with the base ssURL and add the bvaction= and the bvcampaignId= parameters:

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_generic&bvcampaignId=NotJustGrannies

    This ssURL lets consumers view all of Apples’ products and select one to review.

  2. To limit the products displayed to a specific category, Lynn adds the bvcategoryId= parameter and uses a category’s ExternalId value established in her company’s product catalog.

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_generic&bvcategoryId=SourApples&bvcampaignId=NotJustGrannies
  3. To limit the products displayed to a specific product family, Lynn adds the bvfamilyProductId= parameter and a BV_FE_Family value established in her company’s product catalog.

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=rr_submit_generic&bvfamilyProductId=GreenApples&bvcampaignId=NotJustGrannies

ssURL in an Answers Request email message

Building on the first example, Lynn wants to increase the number of consumer answers to questions about the Granny Smith apple. For the campaign, Lynn wants to ask customers to answer existing questions about the product using a banner displayed on the company’s site and by sending the following email:

Hi Jette!

We hope you've enjoyed the Granny Smith apple! If you have time, how about answering a few questions posted by shoppers? Your answers can help others decide if the Granny Smith is the right choice for them. Click any of the following questions to answer.

*   <a href="...">How many Grannies are included?</a>
*   <a href="...">Are Granny Smith apples okay for horses?</a>
*   <a href="...">Can I substitute Granny Smith apples in my pie recipe?</a>

Thanks,

Apples

To create ssURLs for each question, Lynn completes these steps.

  1. Start with the base ssURL she previously created:

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?

  2. Add the following components.

    • bvaction=qa_submit_answer
    • bvquestionId
    • bvcampaignId

    She then has the following staging ssURLs:

    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=qa_submit_answer&bvquestionId=GS-Question-1&bvcampaignId=AnswerGranny
    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=qa_submit_answer&bvquestionId=GS-Question-2&bvcampaignId=AnswerGranny
    https://display.ugc.bazaarvoice.com/bvstaging/static/Apples/ApplesCRM/en_US/container.htm?bvaction=qa_submit_answer&bvquestionId=GS-Question-2&bvcampaignId=AnswerGranny

When consumers click the ssURL for the question Can I substitute Granny Smith apples in my pie recipe?, the following submission form is displayed:

My Answer

Can I substitute Granny Smith apples in my pie recipe?

These apples look really great, but I'm not sure if I can use them in my favorite pie recipe. Can I use them instead of Honeycrisp apples? I know the flavor will change, but will textures and bake-time be similar?

-Joan, 7 days ago

Create a single-product ssURL

In most cases, creating an ssURL requires minimal technical knowledge. Complete the following steps to create an ssURL that takes the consumer to a single-product submission form.

Step 1: Determine if your site uses hosted or site authentication

The type of authentication your site uses will impact how the ssURL works and can influence your parameter choices.

To determine your authentication configuration, complete these steps:

  1. Log in to the Workbench and then click Settings » Manage Applications. The Site Manager page of the configuration hub is displayed.
  2. Edit the implementation for which you want to determine the method of authentication.
  3. Click User Authentication on the left side of the page under Settings.
  4. If the page has a Site Authentication Integration tab at the top, click the tab.

If Require site authentication is enabled, your implementation uses site authentication. If the page has no tabs or Require site authentication is disabled, your implementation uses hosted authentication.

You may also be able to determine your authentication configuration from a product display page (PDP). View a PDP on your site and try to write a review. If you are asked to log in, your site probably uses site authentication. If the submission form loads without prompting you to log in, your site likely uses hosted authentication.

Several settings determine how the submission form is displayed when the consumer clicks the ssURL.

  • To display the submission form in a lightbox on the product display page (PDP):

    Set the Use product pages option to Enabled in the Post-Interaction Email (PIE) section of the Settings » Email Configuration page of the configuration hub.

  • To display the submission form on its own page:

    Set the Use product pages option to Disabled in the Post-Interaction Email (PIE) section of the Settings » Email Configuration page of the configuration hub.

    Note: If a container URL is configured on the Technical Setup » Site Profile page but no page exists at that URL or the code is incorrect, the submission flow from the ssURL will be broken.
  • To ensure that up-to-date product information is displayed on the submission form:

    Upload an updated product catalog whenever changes are made to your product catalog as reflected by your website. Ensure that the essential elements are updated, such as the product name, product page URL, and image URL. Bazaarvoice recommends that you update your catalog in the staging environment first, test it, and then update the catalog in production.

Step 3: Assemble the ssURL base

Here is the format of the ssURL base:

<protocol>://display.ugc.bazaarvoice.com/<environment>/<client_name>/<site_ID>/<locale>/container.htm?

Replace the following components in the base ssURL:

Component Values Details
<protocol>

http or https

Specify the appropriate protocol for your implementation.
<environment>

bvstaging/static or static

Use bvstaging/static for the staging environment. Use static for the production environment.
<client_name> Client ID assigned by Bazaarvoice Use the client ID that Bazaarvoice assigns to your company, which is also used throughout your feeds. Special characters must be URL-encoded .
<site_ID> Deployment zone ID Specify the ID of the deployment zone you want to use. If using the Main Site deployment zone, you can omit it from the ssURL. Special characters must be URL-encoded .
<locale>

Locale code

Specify the locale used in your implementation and for which the review will be displayed.

You can also use the Submission Link Generator to create the ssURL base.

Here are examples:

  • In the Main Site deployment zone, in the staging environment: https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?
  • In the Secondary Site deployment zone, in the production environment: https://display.ugc.bazaarvoice.com/static/endurancecycles/Secondary%20Site/en_US/container.htm?

Step 4: Add additional parameters to customize the ssURL behavior

Append parameters to the ssURL base to customize its behavior. Refer to the following table for a list of parameters, descriptions, and possible values:

Parameter Description Required
bvaction

Determines if the ssURL opens a form.

Value: One of the following based on the form:

  • Review submission form—Use rr_submit_review
  • Question submission form—Use qa_submit_question
  • Answer submission form—Use qa_submit_answer
  • Generic review submission form (product picker) for all products or a specific category—Use rr_submit_generic
Yes
bvproductId

Use when collecting CGC for a specific product. The parameter's value must match the product's ExternalId used in your product catalog.

Value: The product's ExternalId established in the product catalog

Required for specific product reviews or questions (bvaction=rr_submit_review or bvaction=qa_submit_question)
bvcategoryId

If you don't want to request CGC for a specific product, your ssURL can link to a generic review submission (product picker) page that displays all products in a specific category, as established in your product catalog.

Either this parameter or bvfamilyProductId is required if you want to display the generic review submission form. If you omit the bvcategoryId and bvfamilyProductId parameters, all active products are displayed on the generic review submission form.

Value: The category's ExternalId established in the product catalog

Required to open the generic review submission form (product picker) based on category

bvaction=rr_submit_generic is required if you specify this parameter.

bvfamilyProductId

If you don't want to request CGC for a specific product, your ssURL can link to a generic review submission (product picker) page that displays all products in a specific product family, as established in your product catalog.

Either this parameter or bvcategoryId is required if you want to display the generic review submission form. If you omit the bvcategoryId and bvfamilyProductId parameters, all active products are displayed on the generic review submission form.

Value: The product family established in the product catalog

Required to open the generic review submission form (product picker) based on product family

bvaction=rr_submit_generic is required if you specify this parameter.

bvquestionId

Value: The question ID associated with a question submitted by a consumer

Required for question answers (bvaction=qa_submit_answer)
bvcampaignId

Recorded with submissions that use this URL. The campaign ID is used to help segment data in reports to a specific campaign or campaigns. Bazaarvoice recommends you include this parameter; refer to the list of campaign IDs that are provided with Conversations.

Value: String of up to 255 characters created to identify the campaign

Recommended
bvuserToken

Used when the contributor is known but not necessarily logged in to the site, for example, during email campaigns. A maxage value typically is defined for the UAS.

Used to pre-authenticate a contributor in the ssURL. If you specify this parameter, Bazaarvoice strongly recommends you also include maxage=30 to ensure that the token valid for 30 days after the creation date. (Default maxage is one day.) If used with hosted authentication, this will prevent the contributor from receiving a verification email.

Value: A URL encoded user authentication string (UAS)

Required for site authentication
bvinjecteddata

Injects data into the submission form, such as answers to a submission form question. Locate the question and answer IDs in the Submission Form Editor in the Conversations configuration hub. Format is {"QuestionId": "AnswerId"}. For multiple question-answer pairs, separate each pair with a comma (no spaces are allowed outside of the quotes). Click here for examples.

You must encode the ssURL if you include this parameter. To encode the string, you can use a URL encoding tool, such as the one available on urlencode.org .

Value: URL encoded IDs, such as QuestionId and AnswerId

No

You can also use the Submission Link Generator to add parameters to the ssURL base.

Examples:

https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/container.htm?bvaction=rr_submit_review&bvproductId=ProductID&bvcampaignId=CampaignID
https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22userlocation%22%3A%22Austin%2C%20TX%2C%20United%20States%22%7D
https://display.ugc.bazaarvoice.com/static/<client_name>/<site_ID>/<locale>/container.htm?bvaction=rr_submit_review&bvproductId=ProductID&bvcampaignId=CampaignID&bvuserToken=UASToken
https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22hostedauthentication_authenticationemail%22%3A%22samiam%40bazaarvoice.com%22%2C%22userlocation%22%3A%22Austin%2C%20TX%2C%20United%20States%22%2C%22usernickname%22%3A%22samiam123%22%7D

Bazaarvoice recommends that you test submission links in the staging environment as follows:

  1. Construct the ssURL to specify the staging environment. Here is an example:

    https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=apple1234&bvcampaignId=campaign1

  2. Edit the implementation (in staging) and then set the Use product pages option to Disabled in the Post-Interaction Email (PIE) section of the Settings » Email Configuration page of the configuration hub. This ensures that the submission form is displayed in the Bazaarvoice-hosted standalone container.
  3. Load the ssURL in a browser and verify that the form is displayed.

You can add same-page submission links to

  • Pages where you are hosting Bazaarvoice content
  • Pages where there is no Bazaarvoice content, such as a user’s account page.

To add submission links to a page where Bazaarvoice content is hosted, add the appropriate submission link code. Insert the following JavaScript code on any page where you want to trigger the review submission form:

// Invoke review submission
$BV.ui('rr', 'submit_review',{productId : 'PRODUCTID'});

To add links to a page where Bazaarvoice content is not hosted, add the appropriate submission link code and the following JavaScript code on the page, replacing <client_name>, <site_ID>, and __ with your values.

  • Use the following code for the staging environment (the staging environment is for testing and development and is typically only visible internally. Ensure each Bazaarvoice URL referenced in the code contains “/bvstaging” in the domain).
    <script type="text/javascript" src="https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/bvapi.js"></script>
  • Use the following code for the production environment (the production environment is visible externally. Content in the production environment is visible on your live website).
    <script type="text/javascript" src="https://display.ugc.bazaarvoice.com/static/<client_name>/<site_ID>/<locale>/bvapi.js"></script>

Create a multi-product ssURL

Complete the following steps to create an ssURL that takes the consumer to a multi-product submission form, which allows customers to rate and review their unreviewed purchases from a transaction in one place.

Step 1: Determine if your site uses hosted or site authentication

The type of authentication your site uses will impact how the ssURL works and can influence your parameter choices.

To determine your authentication configuration, complete these steps:

  1. Log in to the Workbench and then click Settings » Manage Applications. The Site Manager page of the configuration hub is displayed.
  2. Edit the implementation for which you want to determine the method of authentication.
  3. Click User Authentication on the left side of the page under Settings.
  4. If the page has a Site Authentication Integration tab at the top, click the tab.

If Require site authentication is enabled, your implementation uses site authentication. If the page has no tabs or Require site authentication is disabled, your implementation uses hosted authentication.

You may also be able to determine your authentication configuration from a product display page (PDP). View a PDP on your site and try to write a review. If you are asked to log in, your site probably uses site authentication. If the submission form loads without prompting you to log in, your site likely uses hosted authentication.

Step 2: Assemble ssURL base

Here is the format of the ssURL base: <protocol>://apps.bazaarvoice.com/deployments/<client_name>/<site_ID>/<environment>/<locale>/multi-ratings.html? Replace the following components in the base ssURL:

Component Values Details
<protocol>

http or https

Specify the appropriate protocol for your implementation.
<client_name> Client ID assigned by Bazaarvoice Use the client ID that Bazaarvoice assigns to your company, which is also used throughout your feeds. Special characters must be URL-encoded .
<site_ID> Deployment zone ID Specify the ID of the deployment zone you want to use. If using the Main Site deployment zone, you can omit it from the ssURL. Special characters must be URL-encoded .
<environment>

staging or production

Use staging for the staging environment. Use production for the production environment.
<locale>

Locale code

Specify the locale used in your implementation and for which the review will be displayed.

Here are examples:

  • In the Main Site deployment zone, in the staging environment: https://apps.bazaarvoice.com/deployments/endurancecycles/staging/en_US/multi-ratings.html?
  • In the Secondary Site deployment zone, in the production environment: https://apps.bazaarvoice.com/deployments/endurancecycles/Secondary%20Site/production/en_US/multi-ratings.html?

Step 3: Add additional parameters to customize the ssURL behavior

Append parameters to the ssURL base to customize its behavior. Refer to the following table for a list of parameters, descriptions, and possible values:

Parameter Description Required
product

Specifies which product will be shown at the top of the list in the submission form. The parameter's value must match the product's ExternalId used in your product catalog. If this parameter points to an ID that doesn't exist in products, it is ignored.

Value: The product's ExternalId established in the product catalog

Optional
user

User token used when the contributor is known but not necessarily logged in to the site, for example, during email campaigns. A maxage value typically is defined for the UAS.

Used to pre-authenticate a contributor in the ssURL. If you specify this parameter, Bazaarvoice strongly recommends you also include maxage=30 to ensure that the token valid for 30 days after the creation date. (Default maxage is one day.) If used with hosted authentication, this will prevent the contributor from receiving a verification email.

Value: A URL encoded user authentication string (UAS)

Caution: See this section for instructions on how to create a UAS for a multi-product ssURL. Even if you use hosted authentication, follow those steps to inject consumer data into a multi-product submission form. For hosted authentication, you will need to add one additional parameter to your UAS: &hosted=VERIFIED.
Required
products

List of products to be shown in the submission form. The parameter's value must match the products' ExternalIds used in your product catalog.

Value: List of products' ExternalIds established in the product catalog, delineated by a slash (/). Limit list to 100 products.

Required
campaignId

Recorded with submissions that use this URL. The campaign ID is used to help segment data in reports to a specific campaign or campaigns. Bazaarvoice recommends you include this parameter. If you want to segment data based on submissions from a multi-product ssURL, use a campaign ID like BV_MPS_SSURL. Refer to the list of other campaign IDs that are provided with Conversations.

Value: String of up to 255 characters created to identify the campaign

Recommended

Bazaarvoice recommends that you test submission links in the staging environment as follows:

  • Construct the ssURL to specify the staging environment. Here is an example:
    https://apps.bazaarvoice.com/deployments/endurancecycles/staging/en_US/multi-ratings.html?product=product01&products=product02/product03/product04/product05/product06/product07/product08/product09/product10&user=1415aea678aa99aef4df84d7218aa801a1efa9468f5dc198b1e2095f458efe8a26656d61696c616464726573733d6c6f63616c2d31353336333438333835353431406d61696c746573742e6e657875732e62617a616172766f6963652e636f6d267573657269643d6c6f63616c2d3135333633343833383535343526686f737465643d5645524946494544267375626a6563746964733d70726f6475637430312f70726f6475637430322f70726f6475637430332f70726f6475637430342f70726f6475637430352f70726f6475637430362f70726f6475637430372f70726f6475637430382f70726f6475637430392f70726f6475637431302676657269666965647075726368617365723d5472756526646174653d3230313830393238266d61786167653d3330&campaignId=MPS_SSURL
  • Edit the implementation (in staging) and then set the Use product pages option to Disabled in the Post-Interaction Email (PIE) section of the Settings » Email Configuration page of the configuration hub. This ensures that the submission form is displayed in the Bazaarvoice-hosted standalone container.
  • Load the ssURL in a browser and verify that the form is displayed.

Data injection

Data injection provides a way to send submission form data in a URL. You can pre-populate (“inject”) data for some fields on submission forms. Data injection uses a shared key plus hashing to validate the population of data, such as email addresses.

You might want to pre-populate data for the following reasons:

  • Help customers complete submissions more quickly. You can provide information you know about your customers—such as name, gender, age, or location—to make form completion faster and easier. By eliminating the need for users to enter repetitive details, you encourage a higher rate of reviews.
  • Provide data for reporting and analytics. You can tie reviews to specific data that exists in your CRM, such as an order ID. This information is not visible to your customers.

  • Tag a review with the verified purchaser badge to indicate that the contributor has experience with the product or service being reviewed, thereby increasing trust in the content of the review.
  • Tag a review with the incentivized review badge to disclose that the contributor received a free product in exchange for writing a review. This disclosure increases consumer trust in reviews on your site. Refer to Incentivized reviews for instructions.

Data injection is available for implementations that use either site or hosted authentication.

Note: Contact Bazaarvoice Client Care to enable data injection for your implementation if you have not already done so.
Caution: Multi-product ssURLs do not currently support data injection.

Inject data using hosted authentication

To inject data into a review submission form, you can link your product detail page or post-interaction email message to the submission form using the URL parameter bvinjecteddata; this will pre-populate the answer to the submission form question. When the contributor clicks a “Write a review” link, the link loads the submission form and the answer is pre-populated. You can also use a special URL to load a submission form directly with pre-populated answers.

Before beginning, be aware that review contributors can change the value being injected into the submission form by altering the URL. As a precaution, you cannot inject values into the following fields via a URL:

  • any rating field
  • review title
  • review text
  • whether the contributor recommends the product or service
  • whether the contributor agreed to the terms and conditions
  • net promoter score
  • comment text
  • question summary
  • answer text
Note: Contact Bazaarvoice Client Care to enable data injection for your implementation if you have not already done so.

Complete the following steps to inject data using hosted authentication:

  1. Use the configuration hub to add a question to the review submission form; the question must have at least one answer. This is the question into which you want to inject data.
  2. Find the question and answer IDs associated with the question field:
    1. Go to User Experience » Submission Form Editor.

    2. Click next to the question into which you want to inject an answer value. A Question Details window opens listing the question ID and IDs for all associated answer values, including those for custom-created questions.

    Note: Questions without multiple-choice answers, such as Order Number, have question keys but no integration IDs.
  3. Append the question ID and integration ID to one of the following types of URLs to test whether data is being injected properly:
  • A link to any product page that hosts your Bazaarvoice integration code
  • Any Bazaarvoice simple submission link that redirects to the page hosting the submission form

All URL parameters to your pages must be URL-encoded . Manually encode your URLs using an online encoding application or encode them dynamically with the programming language used to create your site.

Note: Test in private mode or a Google Chrome incognito window to ensure that the data has been injected, not merely repopulated by form memory.

The following example URLs request a web page that loads a review submission form. The examples show how to use the bvinjecteddata parameter to pre-populate fields on that form. The injected values are shown in italic. Refer to Submission form questions reference for information about injecting data without displaying it.

Inject user location

This example shows how to inject the contributor’s location on a submission form. Here is the data that will be injected:

{"userlocation":"Austin, TX, United States"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22userlocation%22%3A%22Austin%2C%20TX%2C%20United%20States%22%7D

Inject user nickname

This example shows how to inject the contributor’s nickname on a submission form that is loaded from a PIE message. Here is the data that will be injected:

{"usernickname":"samiam123"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22usernickname%22%3A%22samiam123%22%7D

Here is a URL that will inject the encoded nickname into a submission form that is loaded from the product page:

https://endurancecycles.com/path/to/your/productpage.htm?bvinjecteddata=%7B%22usernickname%22%3A%22samiam123%22%7D

Inject user email address

This example shows how to inject the contributor’s email address on a submission form. Here is the data that will be injected:

{"hostedauthentication\_authenticationemail":"samiam@bazaarvoice.com"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22hostedauthentication_authenticationemail%22%3A%22samiam%40bazaarvoice.com%22%7D
Note: Both the @ symbol and its encoding %40 are valid in the URL.

Inject order number

This example shows how to inject the order number of the contributor’s purchase on a submission form. Here is the data that will be injected:

{"OrderNumber":"120945"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22OrderNumber%22%3A%22120945%22%7D

Inject multiple fields

This example shows how to inject all of the above pre-populated fields on a submission form at once. Here is the data that will be injected:

{"hostedauthentication\_authenticationemail":"samiam@bazaarvoice.com","userlocation":"Austin, TX, United States","usernickname":"samiam123"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22hostedauthentication_authenticationemail%22%3A%22samiam%40bazaarvoice.com%22%2C%22userlocation%22%3A%22Austin%2C%20TX%2C%20United%20States%22%2C%22usernickname%22%3A%22samiam123%22%7D

Here is a URL to inject the encoded fields into a submission form that is loaded from the product page:

https://endurancecycles.com/path/to/your/productpage.htm?bvinjecteddata=%7B%22hostedauthentication_authenticationemail%22%3A%22samiam%40bazaarvoice.com%22%2C%22userlocation%22%3A%22Austin%2C%20TX%2C%20United%20States%22%2C%22usernickname%22%3A%22samiam123%22%7D
Note: Both the @ symbol and its encoding %40 are valid in the URL.

Inject people questions

This example shows how to inject people questions, such as gender and industry. Here is the data that will be injected:

{"Gender":"Female","BusinessIndustry":"MusicAndEnterta"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22Gender%22%3A%22Female%22%7D%2C%7B%22BusinessIndustry%22%3A%22MusicAndEnterta%22%7D

Inject people questions and basic user information

This example shows how to inject people questions and basic user information. Here is the data that will be injected:

{"BusinessIndustry":"MusicAndEnterta","Gender":"Female","usernickname":"janedoe123","hostedauthentication\_authenticationemail":"jane.doe@bazaarvoice.com"}

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvinjecteddata=%7B%22BusinessIndustry%22%3A%22MusicAndEnterta%22%2C%22Gender%22%3A%22Female%22%2C%22usernickname%22%3A%22janedoe123%22%2C%22hostedauthentication_authenticationemail%22%3A%22jane.doe%40bazaarvoice.com%22%7D
Note: Both the @ symbol and its encoding %40 are valid in the URL.

Inject incentivized review badge and campaign ID

This example shows how to inject the incentivized review badge. Here is the data that will be injected using the bvinjecteddata attribute:

{"IncentivizedReview":"True"}

The incentive campaign ID will also be injected using the bvcampaignId attribute.

Here is the URL, which includes the encoded data:

https://display.ugc.bazaarvoice.com/bvstaging/static/endurancecycles/en_US/container.htm?bvaction=rr_submit_review&bvproductId=B75&bvcampaignId=MyCampaignName&bvinjecteddata=%7B%22IncentivizedReview%22%3A%22True%22%7D

Inject data using site authentication

Note: Contact Bazaarvoice Client Care to enable data injection for your implementation if you have not already done so.

Complete these steps to inject data into a review submission form if your implementation uses site authentication:

  1. Find the question key and integration IDs (answer value) for the fields you want to pre-populate.
    1. Go to User Experience » Submission Form Editor.
    2. Click next to the question into which you want to inject an answer value. A Question Details window opens listing the question ID and IDs for all associated answer values, including those for custom-created questions.
    3. Note: Questions without multiple-choice answers, such as Order Number, have question keys but no integration IDs.

    These values will be used in the user authentication string (UAS), which consists of key-value pairs that are hashed and encoded (but not encrypted). This string enables Bazaarvoice to verify that it comes from a trusted source, thereby preventing third parties from fabricating or impersonating users.

  2. Determine the key-value pairs to include in the UAS, which must be delimited in the string by ampersands (&). Here are the supported keys:
    Key Description Required
    date Today's date, in the format YYYYMMDD or YYYY-MM-DD. Yes
    userid

    Consumer's user ID. Do not use an email address for this value.

    Yes
    maxage Number of days before the UAS expires. The default number of days is 1. Increasing this value is useful in pre-authenticated URLs, such as those used in email campaigns. No
    verifiedpurchaser Whether the user is verified to have purchased one or more products (True). Omit this parameter or set it to False if the user is not a verified purchaser. No
    subjectids A list of product external IDs that the user is verified to have purchased, thereby ensuring that the verifiedpurchaser key cannot be applied to other products. If you specify multiple IDs, separate them using a slash (/). No
    Age Age range without spaces. For example: 35to44 or 65orOver. No
    Gender The user's gender (Male or Female). No
    emailaddress Contributor's email address. This value must be URL-encoded. No
    IncentivizedReview Whether the contributor received a free product or service to review (True). Omit this parameter or set it to False if the user did not receive a free product or service. No
    OrderNumber Order ID of the contributor's purchase. No
    username Contributor's user name. No
    affiliation Automatically adds the default Staff affiliation badge () to submissions that use this URL. This badge indicates that the person writing the review is employed by your company. (Learn more about badges here.) Set this parameter to staff. No
  3. If a key-value pair includes a reserved character, you must URL-encode the character.

    For example, the string Jacob'sLadder must be encoded to Jacob%27sLadder.

  4. Hash and encode the UAS and your Bazaarvoice shared encoding key to create a UAS token:
    1. To find your shared encoding key, click Technical Setup » Site Profile in the configuration hub. Under Basic Information, copy the value from the Shared Encoding Key field.
    2. Create a URL-encoded query string that includes required and optional parameters, as in this example:

      date=20161225&userid=shopper123&maxage=30&verifiedpurchaser=True
    3. Create a signature by hashing the URL-encoded parameter string with the encoding key.
    4. Hex-encode the URL-encoded parameter string.
    5. Combine the signature and parameter strings.

    The following is a server-side, pseudo-code example:

    function makeUserToken(encodingKey, parameters) {
      // encode the signature using HMAC SHA-256
      signature = hash_hmac('sha256' , parameters, encodingKey)
    
      // concatenate the signature and hex-encoded string of parameters
      uas = signature + hex(parameters)
    
      // return the user authentication string 
      return uas
    }
    
    ENCODING_KEY = 'abcd1234'   // BV shared key from config hub
    requiredParameters = 'date=20161225&userid=valuedCustomer'
    extraParameters = 'maxage=90&verifiedpurchaser=True'
    allParameters = requiredParameters + '&' + extraParameters
    
    userAuthString = makeUserTokenHmac(ENCODING_KEY, allParameters)
    import javax.crypto.Mac;
    import javax.crypto.spec.SecretKeySpec;
    import org.apache.commons.codec.binary.Hex;
    import java.nio.charset.StandardCharsets;
    
    public String makeUserTokenHmac(String encodingKey, String parameters)
    {
      Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
      SecretKeySpec secret_key = new SecretKeySpec(encodingKey.getBytes(), "HmacSHA256");
      sha256_HMAC.init(secret_key);
    
      String hash = Hex.encodeHexString(sha256_HMAC.doFinal(parameters.getBytes()));
      String hexParameters = Hex.encodeHexString(parameters.getBytes(StandardCharsets.UTF_8));
    
      return hash + hexParameters;
    }
    var crypto = require('crypto');
    
    function makeUserTokenHmac(encodingKey, parameters) {
      let hmac  = crypto.createHmac('sha256', encodingKey).update(parameters);
      let signature = hmac.digest('hex');
    
      let hexParameters = parameters.split('')
                                    .map(c => c.charCodeAt(0).toString(16))
                                    .join('');
    
      return signature + hexParameters;
    }
    require 'openssl'
    
    def makeUserTokenHmac(encodingKey, parameters)
      hash = OpenSSL::HMAC.digest('sha256', encodingKey, parameters)
      signature = hash.unpack('H*').first
    
      hexParameters = parameters.unpack('H*').first
    
      return "#{signature}#{hexParameters}"
    end
    <?php
    function makeUserTokenHmac($encodingKey, $parameters) {
      // encode the signature using HMAC SHA-256
      $signature = hash_hmac('sha256' , $parameters, $encodingKey);
    
      // concatenate the signature and hex-encoded string of parameters
      $uas = $signature . bin2hex($parameters);
    
      // return the user authentication string
      return $uas;
    }
    ?>
    using System;
    using System.IO;
    using System.Text;
    using System.Security.Cryptography;
    
    namespace uasC {
        class Program {
            static void Main(string[] args) {
                const string SharedKey = "SHAREDKEYGOESHERE";
                string userId = "date=20190708&userid=9100040964&maxage=30";
                using(HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(SharedKey))) {
                    string userIdSignature = BytesToHexString(hmac.ComputeHash(Encoding.UTF8.GetBytes(userId)));
                    string hexUserId = BytesToHexString(Encoding.UTF8.GetBytes(userId));
                    Console.WriteLine(userIdSignature + hexUserId);
                }
                string BytesToHexString(byte[] input) {
                    StringBuilder sb = new StringBuilder(64);
                    for (int i = 0; i < input.Length; i++) {
                        sb.Append($ "{input[i] :X2}");
                    }
                    return sb.ToString();
                }
            }
        }
    }
  5. Append the UAS to the URL as in this example, replacing <client_name>, <site_ID>, and <locale> with your values:
    https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/container.htm?bvaction=rr_submit_review&bvproductId=ProductID&bvcampaignId=CampaignID&bvuserToken=4b531db80651a6224d27ee0ca3eb7829646174653d323031352d30352d3331267573657269643d746573747573657231323326696e63656e746976697a65647265766965773d54727565

    Or, add it to the integration code on the product display page, as in this example if you're using bv.js:

    <head>
    ...
    <meta name="bv:userToken" content="4b531db80651a6224d27e" >
    ...
    </head>
    Note: If your existing implementation uses the scout file (bvapi.js), set up integration code to include the generated UAS token in the $BV.configure() function call instead.

    For example:

    $BV.configure('global', {
    productId: 'test1',
    userToken: '4b531db80651a6224d27ee0ca3eb7829646174653d323031352d30352d3331267573657269643d746573747573657231323326696e63656e746976697a65647265766965773d54727565'
    });

  6. You can enable nickname data injection to ensure that a contributor's submissions are associated with a particular nickname. When nickname injection is enabled, the contributor does not have the option to enter a nickname. Instead, you inject the nickname for them. This is optional and not required to enable data injection using site authentication.

    To enable nickname data injection:

    1. Under the Settings section of the configuration hub, select User Authentication.
    2. In the Site Authentication Integration tab, enable the Inject nickname data feature attribute.
    3. Note: When you enable this attribute, duplicate nicknames are allowed.
    4. To inject the nickname, pass the date, user ID, and nickname (user name) in the user authentication string (UAS), as shown below. Otherwise, the contributor will not be logged in.
    5. date=Date&userid=ID&username=Name

      Note: Format Date as YYYYMMDD or YYYY-MM-DD.

The following examples show how to inject certain types of data into a submission form using site authentication. The injected variables are shown in italics. Refer to Submission form questions reference for information about injecting data without displaying it.

Note: The user authentication string (UAS) must be encoded. Refer to Generate a user authentication string for information about encoding a UAS.

Inject age and gender

To inject the contributor’s age range and gender on a submission form, append the following values to the UAS:

  • Question key: Age
    Integration ID (answer value): 35to44
  • Question key: Gender
    Integration ID: Female

Append those values to the UAS as follows:

userid=ID&date=YYYYMMDD&Age=35to44&Gender=Female

Inject email address

To pre-populate the submission form with the contributor’s URL-encoded email address, append the following values to the UAS:

date=YYYY-MM-DD&userid=ID&emailaddress=URLEncodedEmailAddress

Inject order number

To inject the order ID of the contributor’s purchase on a submission form, append the following values to the UAS:

date=YYYY-MM-DD&userid=ID&OrderNumber=IntegerValue

Inject verified purchaser credentials

To indicate that the contributor who wrote the review actually purchased the product from your site, append the following values to the UAS:

date=YYYY-MM-DD&userid=ID&verifiedpurchaser=True&subjectids=ProductID1/ProductID2/ProductID3
Note: The True value is case sensitive. The other values are not case sensitive.

Inject incentivized review credentials

To indicate that the contributor received a free product or service to review, append the following values to the UAS:

date=YYYY-MM-DD&userid=ID&IncentivizedReview=True&bvcampaignId=MyCampaignName
Note: The True value is case sensitive. The other values are not case sensitive.

Multi-product submission forms

Multi-product submission forms enable you to collect more reviews from each post-interaction email (PIE) by allowing customers to rate and review their unreviewed purchases from a transaction in one place. Designed with mobile users in mind, multi-product submission forms encourage customers to leave multiple reviews by following a simple, progressive submission flow.

The multi-product submission form displays a list of recently purchased products. The customer can tap on a product to rate, review, and submit the form. Then they are returned to the form’s first page to complete the same actions with the rest of the products if they choose to.

Note: Contact your Bazaarvoice implementation team to enable the multi-product submission form feature.

Multi-product submission form collection

Multi-product submission forms enable you to collect the following information:

  • Star rating
  • Review title
  • Review text
  • Answers to additional questions
  • Photos
  • Video links

You can enable contributors to supplement their review content with additional media, such as photos and links to videos related to the product or service.

Enable multi-product submission forms for Bazaarvoice-hosted PIE

Complete the following steps to enable and configure multi-product submission forms for Bazaarvoice-hosted PIE:

  1. Using the Bazaarvoice Workbench, click Settings » Manage Applications.
  2. Edit the implementation for which you want to configure submission forms.
  3. Click Display Options in the User Experience section of the Conversations configuration hub.
  4. Click on the Ratings & Reviews tab.
  5. Scroll to the Multi-Product Submission configuration option. Click the toggle to enable multi-product submission forms.

    Note: This toggle only enables multi-product submission forms for standard and custom PIE template types. In-mail template types always use a multi-product submission form.
  6. Select when you want your PIE to link to a multi-product submission form instead of the default single-product submission form. Choose from the following options:

    • For all transactions—All PIE messages will direct your customers to the multi-product submission for, whether they purchased one or multiple products.

    • Only for transactions with multiple products—If the customer purchases more than one product, they will receive a PIE link to a multi-product submission form. Purchases of a single product will trigger your default single-product submission form.

    • Never, only use single-product submission form—PIEs for all transactions will link to your default single-product submission form configured with the submission form editor.

  7. (Optional) To require contributors to enter review text or title to submit their reviews, scroll to Review Submission. Here you can configure the following option:

    • Require Review Text & Title (Multi-Product Submission Form)—Enable to require contributors to enter review text and title to submit reviews when using a multi-product submission form. Enabling this setting prevents the submission of ratings-only reviews in the multi-product submission form.
Tip: If sending your own PIE, see Create a multi-product ssURL for information about creating your own submission form link that leads to a multi-product submission form.

Multi-product submission form styling

The multi-product submission form inherits styling from your Ratings & Reviews display. Use the Style Editor in the configuration hub to customize multi-product submission form display settings like star color, button styling, and accent colors.

Tip: Refer to the Content Display Style Guide for information on how to style features using the Style Editor. This guide maps the Style Editor menu options to display components using a key and tooltips.

Multi-product submission form questions

When you configure submission form questions for multi-product submission forms, keep the following in mind:

  • Consumers will move through submission form questions linearly. For example, they must first answer and submit question 1, then move on to question 2, and so on until all questions have been answered.
  • Answer submission is progressive. After completing each question, the consumer will submit an answer and the response will be captured, even if they do not finish answering all questions in the form.
  • Questions configured as “required” will be asked in the first step in the multi-product submission form UI. The consumer will need to submit answers to all required questions before moving on to the next step with other questions.
    Tip: For the best user experience, minimize the number of required questions in your submission form.