Collecting and Publishing User Feedback
Solace Agent Mesh can collect end-user ratings on agent responses, store them, and publish them to the event mesh for analytics and agent evaluation. Feedback collection is available on the Agent Mesh UI, Slack, and Teams entrypoints, and every entrypoint writes to one shared feedback store. This page covers the operator configuration. For the end-user experience of rating a response in the UI, see Giving Feedback.
The WhatsApp entrypoint (Early Access) also collects feedback: an end user rates a response by reacting to it with a thumbs-up or thumbs-down. The entrypoint accepts the same feedback_enabled and feedback_publishing settings under spec.values as the Slack and Teams entrypoints. For the entrypoint setup, see WhatsApp Entrypoints (Early Access).
Feedback moves through the following stages:
-
Collection stores each rating and its optional comment in the entrypoint database. On the Agent Mesh UI, Slack, and Teams, nothing reaches the database until the end user submits the dialog, so a dialog closed without submitting leaves no record. On WhatsApp, the reaction is the rating, so the entrypoint records it as soon as it arrives. Enable collection per entrypoint.
-
Publishing forwards feedback to the event mesh so an external consumer can act on it. Enable it per entrypoint.
-
Retention removes stored feedback after a retention period so the database does not grow without bound.
Before You Start
You need a running Agent Mesh deployment and the sam CLI. You configure feedback with declarative configuration: the Agent Mesh UI settings belong in the configuration manifest, and the Slack and Teams settings belong in each entrypoint's resource file. You apply both with sam config apply. For the sam config workflow, see Managing Configuration as Code (Early Access).
Feedback collection also requires a persistent session store, because the entrypoint saves each rating to its database. Configure the session service to use SQL persistence before you enable feedback. For how to configure session storage, see Session Storage.
All feedback collection requires the SQL session store. Without it, the Agent Mesh UI hides the rating buttons, and the entrypoint logs a warning when the UI requests its configuration. The Teams entrypoint also leaves the thumbs icons off its responses. The Slack entrypoint still shows its buttons but discards submitted feedback. In every case, the end user sees no error.
Enable Feedback Collection
Each entrypoint type has its own collection setting, and enabling collection on one entrypoint has no effect on the others.
Agent Mesh UI
Set collectFeedback to true in the manifest's platform.webuiSettings block to show the Like and Dislike buttons on each agent response:
# manifest.yaml
platform:
webuiSettings:
collectFeedback: true
The setting takes effect without restarting the entrypoint, and end users see the buttons after they refresh the Agent Mesh UI. For more information about the other fields in this block and how sam config apply sets and clears them, see Web UI Settings in The Manifest.
Slack
In the Slack entrypoint resource, set feedback_enabled to true under spec.values to add thumbs-up and thumbs-down buttons after each response:
# entrypoints/slack-entrypoint.yaml
kind: entrypoint
name: slack-entrypoint
description: Slack entrypoint with user feedback enabled.
spec:
type: slack
values:
slack_bot_token: ${SLACK_BOT_TOKEN}
slack_app_token: ${SLACK_APP_TOKEN}
feedback_enabled: true
For the complete Slack entrypoint setup, see Slack Entrypoints.
Teams
In the Teams entrypoint resource, set feedback_enabled to true under spec.values to add thumbs-up and thumbs-down icons to each response:
# entrypoints/teams-entrypoint.yaml
kind: entrypoint
name: teams-entrypoint
description: Teams entrypoint with user feedback enabled.
spec:
type: teams
values:
feedback_enabled: true
Teams renders the icons in the response's own footer rather than as a separate message. When an end user selects one, a dialog opens that takes an optional comment of up to 2000 characters and shows the data-use notice. After an end user submits a rating, the entrypoint removes the icons from that response, so each end user can see which responses they have already rated.
Consider the following details when you enable feedback on the Teams entrypoint:
-
A response accepts a rating for 24 hours. The icons remain on the response after that, but selecting one reports that feedback is not available for that response. This window is fixed. It applies whether or not
data_retentionis enabled, andfeedback_retention_daysdoes not extend it. -
The icons appear as the response streams, but a response accepts a rating only after it is complete. Before then, selecting an icon reports the same message as an expired response.
-
Responses that fail or are canceled accept a rating, provided the agent produced some text to rate.
-
The icons can remain on a response that was already rated. The entrypoint stores the rating either way. This happens if the update that removes the icons fails, or if a deployment that runs several replicas handles the rating on a replica other than the one that sent the response.
-
A comment longer than 2000 characters is truncated to that length and stored. The entrypoint logs a warning and the end user sees no error.
When the entrypoint cannot store a submission, or rejects one that would change a rating that is already stored, it posts a plain message into the conversation. In a channel or a group chat, every participant sees that message. Teams also shows its own confirmation before the entrypoint stores the rating, so an end user can see a confirmation followed by Your feedback could not be recorded.
For the complete Microsoft Teams entrypoint setup, see Microsoft Teams Entrypoints.
Feedback Records
Each stored feedback record holds the rating (up or down) and an optional comment. Role-based access control (RBAC) alone governs who can read a feedback comment and the conversation behind it. For more information about the RBAC scopes, see Flat Platform Features in RBAC Reference.
Every entrypoint shows the end user the same notice when they rate a response: "This conversation may be viewed to help improve responses". The Agent Mesh UI, Slack, and Teams show the notice in the dialog before the end user submits the rating. The WhatsApp entrypoint records the rating from the reaction itself, so it shows the notice in the reply that follows and tells the end user how to withdraw the rating.
Agent Mesh stores feedback comments for the full retention period and includes them in published feedback events. Comments and the conversation content behind them can contain personal or sensitive data, so weigh this risk before you enable collection or publishing.
Publish Feedback to the Event Mesh
Publishing is available on the Agent Mesh UI, Slack, Teams, and WhatsApp entrypoints, and it is off by default. Each entrypoint publishes only the feedback it collects, so feedback collection must also be on for that entrypoint. Enabling publishing on one entrypoint has no effect on the others. To publish feedback from every entrypoint, enable publishing on each one.
Agent Mesh UI
Set publishFeedback to true in the manifest's platform.webuiSettings block, alongside collectFeedback:
# manifest.yaml
platform:
webuiSettings:
collectFeedback: true
publishFeedback: true
Like collectFeedback, this setting takes effect without restarting the entrypoint.
Slack and Teams
In each entrypoint resource, set feedback_publishing.enabled to true under spec.values, alongside feedback_enabled:
# entrypoints/slack-entrypoint.yaml
kind: entrypoint
name: slack-entrypoint
description: Slack entrypoint with user feedback enabled and published.
spec:
type: slack
values:
slack_bot_token: ${SLACK_BOT_TOKEN}
slack_app_token: ${SLACK_APP_TOKEN}
feedback_enabled: true
feedback_publishing:
enabled: true
The Teams entrypoint resource uses the same structure under its own spec.values. The following table describes the enabled field of the feedback_publishing block:
| Field | Description |
|---|---|
enabled
|
When true, the entrypoint publishes a feedback event each time it stores a new or updated rating. Defaults to false. |
The Feedback Event
Every entrypoint with publishing enabled publishes to the same topic, where {namespace} is the namespace it shares with the rest of the deployment:
{namespace}/sam/v1/feedback
Earlier releases accepted a feedback_publishing.topic setting. Agent Mesh now ignores this setting, so after an upgrade a subscriber on a custom topic stops receiving feedback events. Move any such subscriber to the fixed topic.
The topic is fixed and shared: with publishing enabled on more than one entrypoint, ratings from the Agent Mesh UI, Slack, Teams, and WhatsApp all arrive on this topic, and entrypoint_type in the payload tells a consumer which entrypoint captured it. To route feedback into your own topic taxonomy, republish from this topic with a bridge on the event broker.
{
"feedback": {
"event": "created",
"task_id": "3b1e5c7a-9d21-4f0a-bd11-6a2e4c8f9012",
"session_id": "9c2a1f6e-4b83-47d2-a0c5-1e7d9b3f5a24",
"feedback_type": "down",
"feedback_text": "The summary missed the breaking changes.",
"user_id": "user-42",
"entrypoint_type": "webui",
"subject_id": "OrchestratorAgent",
"subject_type": "agent",
"created_at": "2026-09-09T14:22:31.004000+00:00",
"updated_at": "2026-09-09T14:22:31.004000+00:00"
}
}
The event field is created the first time a user rates a response and updated if that user later adds a comment to the rating. An end user cannot change submitted feedback on the Agent Mesh UI, Slack, or Teams: the entrypoint rejects a different rating or comment for the same response, and resending identical feedback publishes nothing. On these three entrypoints, each rating therefore produces at most one created event and one updated event. Both carry the same task_id and user_id, so a consumer that counts ratings must treat the pair as one rating. On the WhatsApp entrypoint, an end user can withdraw a rating by removing their reaction. The withdrawal deletes the stored feedback and publishes nothing, so a consumer keeps a created event for a rating that no longer exists. A rating given again after a withdrawal produces a second created event for the same task_id and user_id. While an upgrade is in progress, an entrypoint that still runs an earlier release can publish additional updated events for the same rating, including events with a different feedback_type or feedback_text.
The published event always carries feedback_text and user_id. RBAC governs what an administrator can view in Agent Mesh, but it does not limit the published event: the event broker delivers the event to every subscriber it allows on this topic. Before you enable publishing, review who can subscribe within the namespace, and grant subscribe access only to the audience you trust with feedback content.
Agent Mesh does not consume this event itself. Subscribe to the topic from your own service to route feedback into a data warehouse, an alerting system, or an evaluation pipeline. To confirm that events arrive, subscribe to the topic with a test client, then submit a rating in the Agent Mesh UI.
Feedback Retention
Agent Mesh keeps stored feedback for 90 days, no matter which entrypoint collected it, and the automatic data-retention sweep runs every 24 hours. Each sweep deletes older feedback along with expired tasks and event history. For more information about the sweep and the other data it prunes, see Automatic Data-Retention Sweep in Managing Backups and Data Retention.
Troubleshooting
Rating Controls Do Not Appear, or Submitting Records Nothing
Feedback collection is enabled, but the buttons or icons are missing, or submitting feedback stores nothing. The most likely cause is that the setting never reached the deployment, that the Agent Mesh UI page loaded before the change, or that the entrypoint has no SQL session store.
To resolve this issue:
-
Confirm the entrypoint's session service uses
type: sqland thatsession_service.database_urlis set, then restart the entrypoint. Without a SQL store, the Agent Mesh UI hides the buttons and the Teams entrypoint leaves the icons off its responses, while the Slack entrypoint shows its buttons but discards the feedback. -
For the Agent Mesh UI, confirm that
collectFeedbackistruein the manifest'splatform.webuiSettingsblock and that you applied the manifest. To see the settings the deployment currently holds, runsam config pulland inspectplatform.webuiSettingsin the pulled manifest. For more information aboutsam config pull, see Export Running State with Pull in Exporting and Migrating. -
For the Agent Mesh UI, refresh the browser page. The Agent Mesh UI reads its configuration when the page loads, so a page that was already open does not show the buttons until you refresh it.
-
For the Agent Mesh UI, check the entrypoint logs for the message
feedback configured but persistence not enabled; disabling for frontend, which is emitted when the UI requests its configuration. -
For Slack and Teams, confirm that
feedback_enabledistrueunderspec.valuesin the entrypoint resource and that you applied the resource.
Feedback Events Do Not Reach Your Consumer
Publishing is enabled, but your subscribing service receives no feedback events.
To resolve this issue, check the following items:
-
Confirm publishing is on for the entrypoint whose feedback is missing:
publishFeedbackinplatform.webuiSettingsfor the Agent Mesh UI, orfeedback_publishing.enabledunderspec.valuesfor Slack and Teams. -
Confirm feedback collection is on for that entrypoint:
collectFeedbackfor the Agent Mesh UI, orfeedback_enabledfor Slack and Teams. With collection off, the entrypoint does not show its rating controls, so no rating is submitted and nothing is published. -
Confirm your subscription matches
{namespace}/sam/v1/feedbackfor the namespace the entrypoints share. A{namespace}/sam/v1/feedback/>subscription does not match this topic, because>matches one or more further levels. -
Confirm the event broker ACL profile for the Agent Mesh client username allows publishing on that topic.
-
Confirm the entrypoint is connected to the event broker. When the connection is live, the entrypoint's readiness probe (
/ready) reportsbrokerasconnected. For more information, see Event Broker Connectivity Failures in Troubleshooting a Running Deployment.
What Next?
You have feedback collection and publishing configured. Most readers next want to read what end users have submitted, or to see where feedback fits alongside the other operational signals Agent Mesh produces.
-
To read the ratings end users submit and judge how your agents and workflows are performing, see Reviewing Feedback.
-
To monitor logs, metrics, and traces for a running deployment, see Monitoring Your Agent Mesh.
-
To learn what else the retention sweep prunes, see Managing Backups and Data Retention.