User Feedback for Salesforce Experience Cloud (Configure)

⚙️ Configure User Feedback for Salesforce Experience Cloud

The GermainUX User Feedback Popup allows authenticated and guest users to provide feedback directly from a Salesforce Experience Cloud site.

Each response can be correlated with the user’s current experience, including:

Item

Site and environment

Page and URL

Authenticated or guest session

Recent navigation and clicks

Errors and validation messages

Performance and network activity

Business-process or journey step

Session Replay, when enabled

This helps teams understand both what the user reported and what occurred before the feedback was submitted.

Component: GermainUX RUM JS
Feature availability: GermainUX 2017.2 or later

📋 Prerequisites

Before enabling feedback:

Requirement

Details

Deploy RUM JS

Deploy RUM JS on the Experience Cloud site.

Verify sessions

Verify that user sessions reach GermainUX.

Configure UX Monitoring Profile

Configure the Experience Cloud UX Monitoring Profile.

Identity handling

Configure authenticated and guest identity handling.

Session Replay

Enable Session Replay when required and permitted.

Privacy controls

Apply privacy, masking, and retention controls.

Ownership

Define who owns and responds to feedback.

Pilot population

Select a controlled pilot population.

CSP

Confirm that the site’s CSP allows the GermainUX integration.

See Deploy Monitoring for Salesforce Experience Cloud.

🎯 Define the feedback objective

Use feedback to answer a specific question.

Objective

Example prompt

General experience

How was your experience on this site?

Self-service success

Did you find what you needed?

Workflow efficiency

Was this process easy to complete?

Problem reporting

Did you encounter a problem?

Content quality

Was this information helpful?

Case submission

Was it easy to submit your request?

Adoption

What prevented you from using this feature?

NPS

How likely are you to recommend this product or service?

Keep questions short, neutral, and actionable.

📥 Available feedback formats

Depending on the configured feedback mechanism, GermainUX can capture:

Format

Thumbs up or thumbs down

Positive or negative feedback

Written comments

Ratings and scores

Survey responses

NPS responses

Site, page, user, and session context

A thumbs-up or thumbs-down response is not an NPS score.

Standard NPS requires the likelihood-to-recommend question and a 0–10 scale:

Score

Category

0–6

Detractor

7–8

Passive

9–10

Promoter

NPS = Percentage of Promoters - Percentage of Detractors

🚀 Enable the Feedback Popup

The popup is disabled by default and must be enabled for the applicable Experience Cloud UX Monitoring Profile.

Go to:

Workspace > Analytics > UX Monitoring Profiles

Depending on the GermainUX version:

Workspace > Settings > Analytics > UX Monitoring Profiles

Select the profile for the Experience Cloud site and open its initialization script.

Enable the popup:

JavaScript
const settings = germainApm.getDefaultSettings(loaderArgs, agentConfig);

settings.plugins.feedback.enabled = true;

germainApm.start(settings);

Add the feedback setting to the existing initialization script. Do not create a second germainApm.start() call.

Save and publish the profile, then open a new Experience Cloud browser session.

⛔ Disable the popup

The default value is false. To disable it explicitly:

JavaScript
const settings = germainApm.getDefaultSettings(loaderArgs, agentConfig);

settings.plugins.feedback.enabled = false;

germainApm.start(settings);

Disabling the Feedback Popup does not disable Real User Monitoring or Session Replay.

🔧 Customize the popup

The buttons, labels, colors, comment form, and position can be customized.

JavaScript
const settings = germainApm.getDefaultSettings(loaderArgs, agentConfig);

settings.plugins.feedback = {
    enabled: true,
    positive: {
        icon: 'data:image/jpeg;base64,...',
        label: 'This page was helpful',
        backgroundColor: 'green'
    },
    negative: {
        icon: 'data:image/jpeg;base64,...',
        label: 'I encountered a problem',
        backgroundColor: 'red'
    },
    position: 'bottom-right',
    comment: {
        position: 'right',
        commentHint: 'Tell us more',
        emailHint: 'Email address (optional)',
        sendHint: 'Send feedback'
    }
};

germainApm.start(settings);

Retain the default GermainUX icons or replace the sample data with approved image data.

📖 Configuration reference

TypeScript
type FeedbackSettings = {
    enabled?: boolean;
    positive?: FeedbackButton;
    negative?: FeedbackButton;

    position?:
 'top-left'
 'top-right'
 'bottom-left'
 'bottom-right';

    comment?: {
        position?: 'left' | 'right';
        commentHint?: string;
        emailHint?: string;
        sendHint?: string;

        styles?: Record<
            'container' | 'email' | 'comment' | 'send' | 'close',
            Record<string, string>
        >;
    };
};

type FeedbackButton = {
    icon?: string;
    label?: string;
    backgroundColor?: string;
    parentSelector?: string;
    styles?: Record<string, string>;
};

🧭 Choose the position

Available positions are:

Position

Code

Top left

top-left

Top right

top-right

Bottom left

bottom-left

Bottom right

bottom-right

Select a position that does not cover:

Avoid covering

Experience Cloud navigation

Chat or support controls

Form buttons

Cookie or consent banners

Salesforce notifications

Mobile navigation

Accessibility controls

Test the popup across desktop, tablet, and mobile layouts.

Use parentSelector when the controls must be attached to a specific stable site element rather than document.body.

🏷️ Use clear labels

Recommended labels include:

Control

Example

Positive

This page was helpful

Negative

I encountered a problem

Comment

Tell us what happened

Email

Email address (optional)

Submit

Send feedback

Avoid using “This page contains an error” as the only negative option. Users may be dissatisfied because of content, workflow, usability, performance, or support—not necessarily a technical failure.

👥 Target guest and authenticated users

Define which Experience Cloud audiences should receive feedback controls.

Possible scopes include:

Scope

Guest users

Authenticated customers

Partners

Employees

Specific user groups

Selected site pages

Specific workflows

Pilot users

Specific environments

Targeting can be controlled through the UX Monitoring Profile, URL scope, user attributes, or supported initialization logic.

Test each user type separately because page structure, permissions, and identity context can differ.

⏱️ Control feedback frequency

Avoid survey fatigue.

For automatically triggered questions:

Guideline

Do not prompt on every page

Avoid interrupting a transaction

Prompt after meaningful outcome

Do not immediately repeat

Limit repeated requests

Suppress synthetic users

Avoid overlapping surveys

Persistent positive and negative controls can remain available without automatically opening a survey.

🔗 Correlate feedback with session context

Confirm that feedback retains available context such as:

Context

Experience Cloud site

Environment

Page

URL

Authenticated or guest status

Approved user identifier

Session ID

Submission time

Feedback type

Comment

Related error

Related business process

Related performance activity

This reduces the need for users to describe technical details manually.

🎞️ Connect feedback with Session Replay

When replay is enabled, authorized analysts can review the activity leading to a feedback submission.

Replay can reveal:

What replay can reveal

What the user was trying to accomplish

Which pages were visited

Whether the user repeated actions

Whether a control did not respond

Whether an error appeared

Whether the workflow was confusing

Whether performance contributed

What happened immediately before submission

Protect sensitive information before connecting feedback with replay.

Feedback comments can contain personal, customer, health, financial, or confidential information.

Before production rollout:

Action

Details

Tell users

Tell users not to enter passwords or confidential information.

Contact details optional

Make contact details optional unless necessary.

Mask sensitive values

Mask or exclude sensitive values.

Restrict access

Restrict access to comments and replay.

Define retention

Define a retention period.

Review consent

Review consent and privacy-notice requirements.

Protect reports

Protect exported reports.

Follow-up process

Define an approved follow-up process.

Guest comment policy

Determine whether guest comments may contain identifying information.

A suitable placeholder is:

Tell us what happened. Do not include passwords or confidential information.

✅ Validate the configuration

Test with both guest and authenticated sessions when both populations are monitored.

Validation steps:

  1. Open the Experience Cloud site.

  2. Confirm that the feedback controls appear.

  3. Verify that they do not obstruct the page.

  4. Submit positive feedback.

  5. Submit negative feedback with a comment.

  6. Confirm that both events reach GermainUX.

  7. Verify site, page, user, and session context.

  8. Confirm that Session Replay is linked when enabled.

  9. Verify privacy masking.

  10. Confirm that only authorized users can access the response.

Also test:

Area

Details

Layouts

Desktop and mobile layouts

Browsers

Supported browsers

Components

Custom Lightning Web Components

Transitions

Login and logout transitions

Guest-auth transitions

Guest-to-authenticated transitions

Accessibility

Accessible labels and keyboard navigation

📊 KPIs

See KPIs of Real User Feedback Popup.

Useful measures include:

KPI

Details

Feedback count

Feedback count

Positive count

Positive count

Negative count

Negative count

Positive-response percentage

Positive-response percentage

Negative-response percentage

Negative-response percentage

Comment count

Comment count

Unique users

Unique users

Unique sessions

Unique sessions

NPS

NPS, when properly configured

Feedback with errors

Feedback associated with errors

Feedback with drop-offs

Feedback associated with process drop-offs

🔍 Analyze feedback

Segment responses by:

Segment

Site

Page

User type

Guest versus authenticated

Customer or partner group

Region

Browser or device

Feedback type

Error category

Business process

Journey step

Application version

Time period

Use the new Analysis Dashboard for quick segmentation:

image-20260828-202057.png
Segmentation for Feedback - GermainUX


Compare feedback with:

Compare with

Page and click performance

User-facing application errors

User validations

Journey abandonment

Business-process overrun

Repeated activity

Recent releases

Session Replay

Use aggregate trends to identify broad patterns and individual comments to understand specific experiences.

🖥️ Dashboards

Go to:

Workspace > Dashboards > All

Search for:

Search

Salesforce Experience Cloud dashboards

Portlets containing Feedback

User Experience dashboards

Marketing or journey dashboards

The exact dashboards available depend on the installed GermainUX version and configuration.

🔔 Configure alerts and ownership

Create alerts for feedback requiring timely action, such as:

Example

Strongly negative feedback

A severe problem reported in a comment

Feedback correlated with a critical error

Repeated negative feedback for one page or workflow

A sudden decline in positive responses

Feedback from a high-impact process

Route feedback according to its likely owner:

Feedback type

Possible owner

Technical failure

Application support or engineering

Slow performance

Performance or platform team

Workflow difficulty

Product or process owner

Confusing validation

UX, content, or training team

Data problem

Salesforce data owner

General suggestion

Product management

Support request

Customer-support team

Do not generate a separate critical incident for every negative response. Consider severity, comment content, technical evidence, affected-user volume, and business impact.

🚑 Troubleshooting

🔎 The popup does not appear

Verify that:

Check

Details

RUM JS loaded

RUM JS is loaded.

Correct profile

The correct UX Monitoring Profile matches the site URL.

Setting enabled

settings.plugins.feedback.enabled is true.

Setting timing

The setting is applied before germainApm.start(settings).

Profile published

The profile is saved and published.

New session

The user opened a new session.

CSP

CSP does not block the required resources.

Parent selector

parentSelector identifies an existing element.

Site styles

Site styles do not hide the popup.

📤 Feedback submits but does not appear

Check:

Check area

Details

Network requests

Browser network requests

CSP and proxies

CSP, proxy, and firewall rules

Assignment

Application and environment assignment

KPI config

Feedback KPI configuration

Dashboard filters

Dashboard time range and filters

Bot exclusions

Bot and synthetic-user exclusions

Processing errors

GermainUX processing errors

❓ Feedback has no user or session context

Verify that:

Check

Details

RUM active

Real User Monitoring is active.

User identification

User and session identification succeeded.

Same RUM instance

The feedback control uses the same RUM instance.

Not initialized twice

RUM JS is not initialized twice.

Transition handling

Guest-to-authenticated transitions are handled correctly.

Submission timing

The response is submitted before session termination.

Document

Link / Note

Deploy the User Feedback Popup

Deploy the User Feedback Popup

User Feedback

User Feedback

KPIs

KPIs of Real User Feedback Popup

User Monitoring for Salesforce Experience Cloud

User Monitoring for Salesforce Experience Cloud

Configure Monitoring for Salesforce Experience Cloud

Configure Monitoring for Salesforce Experience Cloud

ℹ️ Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Salesforce Experience Cloud environment.

Contact GermainUX Support.

Component: Engine, Mobile App, RUM JS

Feature Availability: 2018.1 or later