> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agentforce Monitoring for Salesforce

> GermainUX monitors how employees use Agentforce in Salesforce Lightning: every question, answer, response time, error and rating, in the context of the user's session.

Components
[`RUM Extension`](https://docs.germainux.com/deploy/germain-ux-rum-extension)
[`RUM JS`](https://docs.germainux.com/deploy/germain-ux-rum-js)

Service
`Analytics`

> [card] [What You Get](#what-you-get)
>
> Questions answered and use cases

> [card] [What GermainUX Captures](#what-germainux-captures)
>
> Turns, errors and panel use

> [card] [Turn It On](#turn-on-agentforce-monitoring)
>
> Profile and conversation analysis

> [card] [Troubleshooting](#troubleshooting)
>
> Missing data and timings

## Overview

Agentforce is the Salesforce AI assistant that employees open from the Lightning header to ask questions and act on records. GermainUX monitors every Agentforce conversation from the employee's browser. It records what was asked, what Agentforce answered, how long it took, and whether the answer helped.

This shows you **how Agentforce performs for your employees**: how long they wait for answers, how often it fails, and which answers they reject. Because the data comes from the same session as the rest of the Salesforce activity, you can replay any conversation in the Agentforce panel, next to the clicks, pages and errors around it.

## What You Get

Salesforce tells you how many Agentforce requests ran. GermainUX tells you what those requests were like for the employee: how long they waited, whether they got an answer, and what they did next.

Agentforce monitoring helps you answer questions such as:

* Which agents and questions are slowest to answer?
* How often does Agentforce fail, and is it Salesforce, throttling or the agent itself?
* Which answers do employees dislike, and what did they ask?
* Do employees type their own questions or rely on suggestions?
* Which employees use Agentforce regularly, and which try it once and stop?
* What was the employee doing in Salesforce right before and after the conversation?

A typical investigation goes from:

Slow or Failed Turns
Agent and Error Type
Affected Employees
Conversation
Session Replay

![Chart of Agentforce Bot Response Time over time, split by agent](https://mintcdn.com/germain-ux/DcZ3XZoBBiNDz5aR/images/main/salesforce-agentforce-monitoring/agentforce-bot-response-time.png?fit=max\&auto=format\&n=DcZ3XZoBBiNDz5aR\&q=85\&s=8cfa05295ae7cdbe1e0fcf31741290c0)

Agentforce Bot Response Time by Agent - GermainUX

### Use Cases

| Team | Use Agentforce monitoring to |
| - | - |
| **Salesforce and CRM owners** | Measure adoption, and find the agents and questions that need better instructions or data |
| **IT operations** | Detect Agentforce outages, session expiry and rate limiting before employees report them, and set SLAs on response time |
| **Service and sales leaders** | See how employees use Agentforce in their case and deal work, from the questions they ask and the activity around each conversation |
| **AI and automation teams** | Find the questions Agentforce can't answer, the steps that fail, and the answers employees reject |

![Chart of Agentforce errors over time, split by error type](https://mintcdn.com/germain-ux/DcZ3XZoBBiNDz5aR/images/main/salesforce-agentforce-monitoring/agentforce-errors-by-type.png?fit=max\&auto=format\&n=DcZ3XZoBBiNDz5aR\&q=85\&s=a37235354c7c84283c90923910b0b25a)

Agentforce Errors by Type - GermainUX

## What GermainUX Captures

GermainUX turns each question and answer into a **turn**, and groups turns into a **conversation** by the Agentforce session ID, which it stores as the **Conversation ID**. Every record carries the agent's name as the **Responder**, so you can compare agents side by side.

### Each Question and Answer

For every turn, GermainUX creates a `Bot Response Time` transaction. Its duration is the time from sending the question to receiving the full answer. On orgs that use the Agent API, GermainUX also creates a `Bot First Response Time` transaction: the time until the first part of the answer arrived. Orgs where the panel uses Aura actions record `Bot Response Time` only.

Each turn records the following in the **Details** of its `Bot Response Time` transaction:

* The employee's question and Agentforce's answer
* How the question was asked: typed, a welcome suggestion, or a follow-up suggestion
* The turn number within the conversation
* The agent steps shown while answering, such as "Getting record details"
* Lightning components that Agentforce rendered in the answer
* The number of cited references
* Whether Salesforce flagged the content as unsafe
* The types of the messages in the answer
* On a failed turn, the error Salesforce returned

A question counts as a suggestion when the employee selected that suggestion in the panel within the 10 seconds before sending it. Otherwise it's recorded as typed. When the employee confirms an action instead of typing a question, GermainUX records the turn but not the values the employee confirmed.

The turn also carries the **Conversation ID**, **Plan ID** and **Feedback ID** as fields, so you can look up the conversation in Salesforce. See [KPIs for Agentforce](#kpis-for-agentforce).

### Conversation, Error and Feedback Events

| Event | When GermainUX records it |
| - | - |
| **Agentforce Conversation Started** | A new Agentforce session begins |
| **Agentforce Conversation Ended** | The employee clears the conversation, on orgs that use the Agent API |
| **Agentforce Step** | Once per step Agentforce shows while it works on an answer, in order |
| **Agentforce Error** | A turn fails. The **Event Type** shows the reason, see the table below. |
| **Agentforce Unsafe Content** | Salesforce marks an answer as not content-safe |
| **Agentforce Feedback** | The employee likes or dislikes an answer, with any comment |
| **Agentforce** + message type | Agentforce returns another message type, such as `Agentforce Escalate` or `Agentforce EndSession` |

GermainUX also records each Agentforce like or dislike as **User Feedback**, so Agentforce ratings appear next to the rest of your Salesforce feedback. To compare ratings by agent, use the **Agentforce Feedback** event, which carries the agent as its **Responder**. See [User Feedback for Salesforce](https://docs.germainux.com/integrations/salesforce-monitoring/user-feedback-for-salesforce-configure.md).

GermainUX classifies every failed turn, so you can tell a Salesforce outage from an agent that has no answer:

| Error type | What it means |
| - | - |
| **Service Error** | Salesforce returned a server error (HTTP 5xx), or the Aura action failed |
| **Request Error** | Salesforce rejected the request (other HTTP 4xx) |
| **Connection Lost** | The request didn't complete, for example because the employee left the page mid-answer |
| **Session Expired** | The Agentforce session no longer exists (HTTP 404 or 410) |
| **Session Busy** | The previous message was still being processed (HTTP 423) |
| **Rate Limited** | Salesforce throttled the request (HTTP 429) |
| **Agent Failure** | Agentforce answered with a failure message |
| **Empty Answer** | The request succeeded, but Agentforce returned no answer |

Every **Agentforce Error** also counts as a **User-Facing Error**. Agentforce failures therefore appear in the User-Facing Error KPI and in the session's error count, next to the other errors your Salesforce users see.

### Agentforce Panel Load and Actions

GermainUX times the Aura calls the panel makes around a conversation, as transactions named **Agentforce** followed by the action. **Agentforce Panel Load** is the call the panel makes to look up its agent (`getBotId`). It times that request, not how long the panel takes to appear on screen. The other actions are named after the Salesforce action, such as **Agentforce Get Agents**, **Agentforce Get Welcome Utterances**, **Agentforce Get Recommended Utterances** and **Agentforce Get Plan**. For **Agentforce Get Plan**, the plan itself is stored in **Details**.

When Salesforce sends several of these actions in one request, each transaction shows the duration of that whole request.

### Panel Interactions

GermainUX records how employees use the panel itself:

* **Agentforce Panel Opened** and **Agentforce Panel Closed**
* **Agentforce Panel Pinned** and **Agentforce Panel Unpinned**
* **Agentforce Suggestion Selected**, with the suggestion text
* **Agentforce Answer Copied**
* **Agentforce Agent Switched**, with the previous and new agent

In Session Replay and [Story Beat](https://docs.germainux.com/analytics/story-beat.md), this activity appears as the process **Chatting with Agentforce**, with actions such as **Writing Agentforce message**, **Choosing Agentforce suggestion** and **Disliking Agentforce answer**.

## AI Analysis of Agentforce Conversations

GermainUX ships a chat processor and an AI prompt for Agentforce conversations. In GermainUX settings, both are named **Agentforce**, after the conversations they analyze.

When the processor is on, GermainUX groups the turns of each conversation into one **Chat Conversation** record, with its transcript, message counts and response times. It creates this record once the conversation has ended.

GermainUX then sends the transcript, with the prompt, to the AI model configured in GermainUX. The prompt returns two results:

* **Frictions**: anything that kept the employee from finishing the task quickly. GermainUX records each friction as an **AI Chat Friction** event, named after the friction category, and adds the number of frictions to the conversation.
* **A summary**: two to three sentences on what the employee asked and how the conversation ended. GermainUX records it as one **AI Chat Summary** event named `Conversation Summary`, with the summary text in **Details**. A conversation gets a summary even when the AI finds no frictions.

Typical friction categories include:

* Agentforce didn't understand the request
* Agentforce couldn't find or act on the record
* The answer was wrong, generic or incomplete
* An action failed, or needed confirmation repeatedly
* The employee had to rephrase or repeat the request

When you open a conversation's transcript, the **AI insights** box above it shows the summary, followed by the frictions. Read the summary to understand a conversation without going through every turn.

![Agentforce conversation transcript with the AI insights box showing the conversation summary and the friction categories detected by AI](https://mintcdn.com/germain-ux/O8t4IalzI6QfayQL/images/main/salesforce-agentforce-monitoring/agentforce-conversation-ai-insights.png?fit=max\&auto=format\&n=O8t4IalzI6QfayQL\&q=85\&s=916ac28afbba48f7e24db844d25de1b6)

Agentforce Conversation with AI Summary and Frictions - GermainUX

Count AI Chat Friction events by name to rank the most common frictions across all conversations, then open the conversations behind one. For the full set of chat analysis features, see [Chat Analysis](https://docs.germainux.com/analytics/conversation-analysis.md).

![List of AI Chat Friction events for Agentforce conversations, each named after the friction category the AI detected](https://mintcdn.com/germain-ux/O8t4IalzI6QfayQL/images/main/salesforce-agentforce-monitoring/agentforce-conversation-frictions.png?fit=max\&auto=format\&n=O8t4IalzI6QfayQL\&q=85\&s=25342556680d798e5b61d0ffbb34f581)

AI Chat Friction Events for Agentforce Conversations - GermainUX

## Turn On Agentforce Monitoring

Agentforce monitoring is part of the GermainUX **Salesforce** UX Monitoring Profile. Once the profile monitors your Lightning users, GermainUX captures Agentforce turns, errors, feedback and panel use with no extra setup.

Before you start, make sure that:

* Salesforce RUM monitoring is deployed, see [Salesforce Monitoring Deployment](https://docs.germainux.com/integrations/salesforce-monitoring/salesforce-monitoring-deployment.md)
* Your Salesforce users are monitored by the **Salesforce** UX Monitoring Profile
* Agentforce is enabled in your Salesforce org and available to those users

To check the profile, in the left menu, go to **Settings > Analytics > UX Monitoring Profiles** and open the **Salesforce** profile. For more on this profile, see [User Monitoring and Session Replay for Salesforce Cloud](https://docs.germainux.com/integrations/salesforce-monitoring/salesforce-user-monitoring-and-replay.md).

### Turn On AI Conversation Analysis

AI analysis of Agentforce conversations is off by default. To turn it on:

**1. Confirm AI features are on**

In the left menu, go to **Settings > System > AI > Settings** and check that **AI Features** is enabled.

**2. Check the prompt for Agentforce conversations**

In the left menu, go to **Settings > System > AI > Prompts** and confirm that the prompt named **Agentforce** is enabled.

**3. Enable the chat processor for Agentforce conversations**

In the left menu, go to **Settings > System > AI > Settings**. In the **Chat Analysis** section, open **Processors**, enable the processor named **Agentforce**, and save.

From then on, GermainUX analyzes each completed Agentforce conversation and records its summary and frictions.

## Troubleshooting

> [accordion] No Agentforce data at all
>
> GermainUX reads Agentforce turns from the requests the Agentforce panel sends. Check that:
>
> * The employee is monitored by the **Salesforce** UX Monitoring Profile.
> * **Network Requests Monitoring** is on in that profile. In the left menu, go to **Settings > Analytics > UX Monitoring Profiles**, open the **Salesforce** profile, and check the setting.
> * The employee uses Agentforce from the Lightning panel, in a browser that GermainUX monitors.

> [accordion] No Bot First Response Time
>
> `Bot First Response Time` is only recorded on orgs that use the Agent API. On those orgs, it also needs the browser's timing data for the Agent API request. If Salesforce doesn't allow cross-origin timing for that request, GermainUX records `Bot Response Time` only.

> [accordion] No Chat Conversation, AI Chat Friction or AI Chat Summary records
>
> Chat Conversation records need the chat processor named **Agentforce**. AI Chat Friction and AI Chat Summary events also need AI features and the prompt named **Agentforce**. All three are covered in [Turn On AI Conversation Analysis](#turn-on-ai-conversation-analysis).
>
> These records only appear once a conversation has ended and GermainUX has closed it. A conversation without frictions gets a Chat Conversation record and an AI Chat Summary event, but no AI Chat Friction events.
>
> If you customized the prompt named **Agentforce**, it produces a summary only when its text asks for one. Keep the instruction to summarize the conversation in your version of the prompt.

## KPIs for Agentforce

GermainUX stores Agentforce data in its standard chat and feedback KPIs. To see Agentforce only, filter on **Chat** = `Agentforce`, or on the event names above.

| KPI | What it holds for Agentforce |
| - | - |
| **Chat Transaction** | `Bot Response Time`, `Bot First Response Time` and the panel load and action timings |
| **Chat Event** | Conversation start and end, steps, errors, unsafe content, feedback, panel interactions and transcript messages |
| **Chat Conversation** | One record per completed conversation, with its transcript, when the chat processor for Agentforce conversations is on |
| **AI Chat Friction** | One event per friction the AI finds in a conversation, when AI conversation analysis is on |
| **AI Chat Summary** | One event per conversation with the AI summary in **Details**, when AI conversation analysis is on |
| **User Feedback** | Agentforce likes and dislikes, with comments |

On Chat Transaction and Chat Event records, Agentforce fills these fields:

| Field | What it holds for Agentforce |
| - | - |
| **Chat** | `Agentforce` |
| **Responder** | The agent's name |
| **Conversation ID** | The Agentforce session ID, shared by every record of one conversation |
| **Intent / Outcome** | On turns: the error type, or the answer's message type when the turn succeeded |
| **Plan ID** | The plan Agentforce ran for the answer |
| **Feedback ID** | The Salesforce ID used for feedback on the answer |
| **Event Type** | On Chat Event records: the step, error type or feedback verdict |
| **Sender** | On transcript messages: who sent the message |

Split charts by **Responder** to compare agents, or filter on one **Conversation ID** to see every record of a conversation.

See [Agentforce KPIs](https://docs.germainux.com/integrations/salesforce-monitoring/salesforce-monitoring-kpis.md#agentforce-kpis) in the Salesforce KPI list, alongside the other Salesforce KPIs.

## Additional Resources

> [card] [Chat Analysis](https://docs.germainux.com/analytics/conversation-analysis.md)
>
> AI analysis of chat and chatbot conversations

> [card] [User Monitoring and Session Replay](https://docs.germainux.com/integrations/salesforce-monitoring/salesforce-user-monitoring-and-replay.md)
>
> Salesforce RUM and replays

> [card] [Analytics](https://docs.germainux.com/analytics.md)
>
> More Analytics Features

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/getting-started/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't Find What You Need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.