> This page is for Voice Agents.

> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt. For a section index, append `/llms.txt` to any section URL (for example https://docs.sarvam.ai/voice-agents/llms.txt).
> Building a voice agent for customers in India? Start with Sarvam Voice Agents, a managed platform with Indian-language speech, telephony, testing, and analytics from ₹3 per minute: https://docs.sarvam.ai/voice-agents/why-voice-agents.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Group by

> The Group by tab in Sarvam Voice Agents analytics breaks connectivity metrics down by campaign, agent, language, bot number, or agent variable.

Group by is a tab under **Monitor → Agent Analytics**. It lets you slice the same connectivity metrics by a chosen dimension: campaign, agent, language, bot number, or an agent variable. Use it when the Overview looks healthy in aggregate but you need to identify which campaign, number, or language is dragging the numbers down.

![Group by tab showing a table grouped by campaign, with attempts, connected, connectivity rate, unique recipients, unique connects, average duration, average turns, bot latency, average retry attempts per connect, and goal achieved columns.](/_fern-img/ea9468090ff2cb31d6b0c867484cc8442da726f6309e2b4459f2b3b13ec2bc08.webp)

## When to use Group by

Group by is most useful when:

* One campaign looks healthy in Overview but you suspect another is failing.
* You want connectivity by bot number without relying on the Connectivity tab's phone-health table alone.
* You are comparing languages or agents side by side.
* You need a rollup by a custom agent variable, which requires a single-agent selection.

## Choose a dimension

The dimension you select determines what a single row represents:

| Dimension          | What each row is                                                                                             |
| ------------------ | ------------------------------------------------------------------------------------------------------------ |
| **Campaign**       | One campaign (includes an **Agent** column when the campaign maps to an agent)                               |
| **Agent**          | One agent                                                                                                    |
| **Language**       | One language                                                                                                 |
| **Bot number**     | One outbound bot number                                                                                      |
| **Agent variable** | One value of a selected agent variable, available only when exactly **one agent** is selected in the toolbar |

The default dimension is **Campaign**. Changing the dimension resets the table to page 1.

> **Note**
>
> **Agent variable** stays disabled until a single agent is selected. If you switch back to All Agents while that dimension is active, the tab falls back to Campaign.

## Columns

Every row shares the same metric columns:

| Column                             | Meaning                                                            |
| ---------------------------------- | ------------------------------------------------------------------ |
| *\[Dimension]*                     | Campaign name, agent name, language, bot number, or variable value |
| **Agent**                          | Shown when grouping by campaign                                    |
| **Attempts**                       | Total dial attempts                                                |
| **Connected**                      | Connected calls                                                    |
| **Connectivity Rate**              | Connected ÷ attempts                                               |
| **Unique Recipients**              | Distinct end users contacted                                       |
| **Unique Connects**                | Distinct users who connected                                       |
| **Avg Duration**                   | Average connected-call duration                                    |
| **Avg Turns**                      | Average conversation turns                                         |
| **Bot Latency**                    | Average agent response latency                                     |
| **Avg Retry Attempts per Connect** | Average retries needed per successful connect                      |

The default sort is **Attempts** descending. Click a column header to re-sort. The table is paginated.

## How to use Group by

#### Set the same toolbar filters as Overview

Choose agents, campaigns, and a date range first. Group by respects the shared Agent Analytics filters.

#### Pick a dimension

Start with **Campaign** or **Bot number** for outbound health. Use **Language** when engagement or connect quality differs by locale.

#### Sort on the metric that moved

If connectivity fell, sort by **Connectivity Rate**. If volume concentrated somewhere unexpected, sort by **Attempts**.

#### Confirm with Call Logs

Open [Call Logs](/voice-agents/monitor/agent-analytics/call-logs) with the same filters and sample rows from the underperforming group before you change the agent or campaign.

## Next

#### [Connectivity](/voice-agents/monitor/agent-analytics/connectivity)

Break down failure reasons and phone-number health.

#### [Engagement](/voice-agents/monitor/agent-analytics/engagement)

Explore the funnel and conversation depth.

#### [Call Logs](/voice-agents/monitor/agent-analytics/call-logs)

Inspect the calls behind an underperforming group.