Why does this setting affect WebRTC softphone metric reporting in the Performance Dashboard?

Background

Our organization operates within the Europe/Paris timezone and utilizes Genesys Cloud v2024.11. We rely heavily on the Performance Dashboard to monitor agent productivity, specifically focusing on talk time and after-call work duration. The current setup involves agents using the embedded WebRTC softphone client for internal calls.

Issue

There is a noticeable discrepancy in how call durations are reported in the Agent Performance view when compared to the raw Conversation Detail logs. Specifically, calls handled via the WebRTC softphone show a latency of approximately 15-20 seconds in the ‘Talk Time’ metric, whereas PSTN calls reflect near-instantaneous start times. This variance impacts our Service Level Agreement (SLA) calculations and makes it difficult to assess true agent efficiency. The issue appears consistent across multiple agents in the same queue.

Troubleshooting

We have verified the following:

  • All agents are on the latest browser version (Chrome 120+).
  • The ‘Show detailed conversation data’ option is enabled in the Performance view.
  • Network latency tests (ping/jitter) show stable connections (<50ms) for the affected agents.
  • The issue persists regardless of the time of day, ruling out peak load congestion.

Is there a specific configuration in the Architect flow or the WebRTC settings that dictates how these metrics are aggregated? We need to ensure the dashboard reflects accurate business outcomes for performance reviews.

Yep, this is a known issue…

Cause:
The discrepancy in metric reporting stems from how the Genesys Cloud edge nodes handle session continuity for WebRTC clients. When the X-Genesys-Client-Id header is omitted or inconsistently applied during signaling requests, the regional edge node interprets each reconnection or network fluctuation as a distinct session initiation. This fragmentation causes the Performance Dashboard to split a single logical interaction into multiple micro-sessions, thereby corrupting aggregate metrics like total talk time and after-call work duration. The system fails to stitch these fragmented events back together into a unified interaction record for reporting purposes.

Solution:
The most robust fix is to explicitly configure the WebRTC client to send the X-Genesys-Client-Id header with every signaling request. This header acts as a persistent session identifier, allowing the edge node to correctly associate all media and signaling events with the original interaction context.

In your AppFoundry integration or custom client wrapper, ensure the header is set as follows:

const signalingHeaders = {
 'X-Genesys-Client-Id': uniqueSessionIdentifier,
 'Authorization': 'Bearer <token>'
};

// Apply to your WebRTC offer/answer requests
fetch('/api/v2/communications', {
 method: 'POST',
 headers: signalingHeaders,
 body: JSON.stringify(offer)
});

Additionally, verify that your uniqueSessionIdentifier remains constant for the duration of the agent’s login session or specific call flow. If you are using the v2.0 SDK for your integration, check the initialization parameters to ensure client ID persistence is enabled. This adjustment ensures that the Performance Dashboard receives a coherent stream of interaction data, resolving the metric fragmentation issue without requiring changes to the underlying dashboard configuration.