In-Product Feedback

Info: Applies to Bloomreach Content 17.2 and later.

Overview

Starting with Bloomreach Content 17.2, the CMS navigation bar includes a "Give feedback" button. This feature allows editors and administrators to submit structured feedback directly to the Bloomreach product team from within the CMS.

Give feedback dialog open in Bloomreach Content

The in-product feedback feature is enabled by default. After upgrading to version 17.2, no additional configuration is required for standard usage. You can disable the feature or configure it to send feedback to a custom endpoint if needed. Both options are described in this document.

When a user selects the feedback button, a dialog appears. The user can select a category, enter a title and description, optionally set a severity, and optionally capture a screenshot. When submitted, the widget sends a structured JSON payload to the configured endpoint (by default, a Bloomreach-managed service).

Sidebar feedback button with expanded Feedback label

Privacy and Data Collection

The feedback widget is designed for transparency and user control.

No Passive Data Collection

The widget does not collect personally identifiable information (PII) automatically. No data is transmitted until the user explicitly selects Submit in the feedback dialog. The widget does not track or send any data in the background.

User Visibility of Submitted Data

Before submission, the dialog displays all data that will be sent. A collapsible Technical info section shows the complete context JSON. All fields included in the payload are visible for user review.

The context object, always included with a submission, contains only non-personal technical metadata:

FieldDescription
urlFull current URL.
pathnamePath portion of the URL.
activeAppUrlURL of the active iframe app, or null.
userAgentBrowser user-agent string.
viewportObject with width and height.
devicePixelRatioDisplay pixel ratio.
languageBrowser UI language.
timezoneBrowser IANA timezone.
timestampISO-8601 timestamp of submission.

Screenshots Are Opt-In

Screenshots are only captured if the user chooses to do so within the dialog. The widget never captures screenshots automatically.

When a user selects the screenshot option, the dialog displays a warning:

Heads up: screenshots may contain personal or sensitive information visible on screen (names, emails, document content, …). Please make sure you’re comfortable sharing whatever is currently visible before capturing.

After capturing, the dialog prompts the user to review the screenshot before submitting. The screenshot is only included in the payload if the user does not remove it before submission.

User Disclaimer

The dialog displays the following disclaimer:

This feedback goes directly to the Bloomreach product team. It will not create a support ticket and you will not receive a reply. For urgent issues blocking your work, please contact support through the usual channel.

Give feedback dialog with screenshot preview and disclaimer

Default Configuration

The feedback widget is enabled and functional by default.

SettingDefault
EnabledfeedbackEnabled: true
Endpointhttps://brxm-feedback.bloomreach.works/feedback (Bloomreach-managed)
Outbound headerX-Api-Key: brxm-feedback-{version}
  • The feature is enabled by default (feedbackEnabled: true).
  • Feedback is sent to the Bloomreach-managed endpoint (https://brxm-feedback.bloomreach.works/feedback) unless you configure a custom endpoint.
  • The default outbound header is X-Api-Key: brxm-feedback-{version}. The {version} placeholder is replaced at runtime with the actual Bloomreach Content version (for example, brxm-feedback-17.2.0).

No configuration is required for this default behavior.

Disabling the Feature

You can disable the feedback button through the JCR CMS console.

The configuration node is:

/hippo:configuration/hippo:frontend/navapp/navapp-services/navAppSettingsService

Steps to Disable

  1. Open the CMS console at <cms-url>/cms/console.
  2. Navigate to the node above.
  3. Add a String property named feedbackEnabled with the value false.
  4. Save and reload the CMS.

To Re-Enable

Set feedbackEnabled to true, or remove the property. The default value is true, so deleting the property restores the enabled state.

Note: The change takes effect on the next CMS page load. The setting is read from the plugin configuration on each navapp settings request, so reloading the CMS is sufficient. A server restart is not required.

Configuring a Custom Feedback Endpoint

You can configure the widget to send feedback to a custom endpoint and set custom outbound HTTP headers.

Both properties are set on the same node as feedbackEnabled:

/hippo:configuration/hippo:frontend/navapp/navapp-services/navAppSettingsService

JCR Property: feedbackEndpointUrl

  • Type: String
  • Effect: All feedback POST requests are sent to this URL instead of the Bloomreach endpoint.
  • Payload: The JSON structure is unchanged regardless of the endpoint.

JCR Property: feedbackHeaders

  • Type: Multi-value String
  • Format: Each entry is a raw HTTP header in Name: Value format (for example, Authorization: Bearer mytoken).
  • When set: The configured headers replace the default X-Api-Key header. Only the headers you configure are sent.
  • When absent or empty: The default X-Api-Key: brxm-feedback-{version} header is used.

Steps: Configure a Custom Endpoint with Custom Auth Headers

  1. Open the CMS console at <cms-url>/cms/console.
  2. Navigate to /hippo:configuration/hippo:frontend/navapp/navapp-services/navAppSettingsService.
  3. Ensure the feature is enabled: set feedbackEnabled to true, or leave the property absent (default is true).
  4. Add a String property feedbackEndpointUrl with your endpoint URL (for example, https://feedback.example.com/intake).
  5. Add a Multi-value String property feedbackHeaders. Add one entry per header, for example:
    • Authorization: Bearer mytoken
    • (add additional headers as needed, one per entry)
  6. Save and reload the CMS.
  7. Submit feedback and confirm that the request reaches your endpoint with the configured headers.

Note: If you configure a custom endpoint, your server must accept CORS preflight requests from the CMS origin and handle a request body with Content-Type: application/json. The browser sends a CORS preflight (OPTIONS) request before the feedback POST. If your server does not allow the CMS origin, the browser blocks the feedback request.

Feedback Payload Reference

The widget sends a JSON body to the configured endpoint with Content-Type: application/json. The payload structure is:

{ "category": "bug | feature_request | usability | documentation", "title": "string (max 80 chars)", "description": "string (max 1000 chars)", "severity": "low | medium | high (optional, omitted if not selected)", "screenshotBase64": "data:image/jpeg;base64,... (optional, only when screenshot captured and not removed)", "context": { "url": "string", "pathname": "string", "activeAppUrl": "string | null", "userAgent": "string", "viewport": { "width": number, "height": number }, "devicePixelRatio": number, "language": "string", "timezone": "string", "timestamp": "ISO-8601 string" } }

Field Presence

FieldPresenceNotes
categoryAlwaysOne of bug, feature_request, usability, documentation. Required in the dialog.
titleAlwaysMax 80 characters. Required in the dialog.
descriptionAlwaysMax 1000 characters. Required in the dialog.
severityOptionalOne of low, medium, high. Omitted if not selected.
screenshotBase64OptionalData URI (data:image/jpeg;base64,...). Present only if a screenshot was captured and not removed.
contextAlwaysNon-personal technical metadata.
context.urlAlwaysFull current URL.
context.pathnameAlwaysPath portion of the URL.
context.activeAppUrlAlwaysURL of the active iframe app, or null.
context.userAgentAlwaysBrowser user-agent string.
context.viewportAlwaysObject with numeric width and height.
context.devicePixelRatioAlwaysNumeric display pixel ratio.
context.languageAlwaysBrowser UI language.
context.timezoneAlwaysBrowser IANA timezone.
context.timestampAlwaysISO-8601 timestamp of submission.

Configuration Reference Table

All feedback-related properties are configured on the navAppSettingsService node:

/hippo:configuration/hippo:frontend/navapp/navapp-services/navAppSettingsService
PropertyTypeDefaultDescription
feedbackEnabledBoolean/StringtrueShow or hide the feedback button.
feedbackEndpointUrlStringhttps://brxm-feedback.bloomreach.works/feedbackThe URL that receives feedback POST requests.
feedbackHeadersMulti-value StringX-Api-Key: brxm-feedback-{version}HTTP headers sent with each feedback POST. When set, replaces the default X-Api-Key header.

Note: Changes to these properties take effect on the next CMS page load; a server restart is not required. The {version} placeholder in the default header is replaced at runtime with your actual Bloomreach Content version (for example, brxm-feedback-17.2.0).

Share Feedback
Page: /build/editor-interface/in-product-feedback
Section: Build
Category *