> 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.

# Cohorts

> Manage cohorts, the contact batches in a Sarvam Voice Agents campaign: validation, using multiple cohorts, adding a CSV, and streaming contacts via API.

A cohort is a batch of contacts within a campaign. Every campaign starts with one cohort (your initial upload), and you can add more at any time from the list row action or the [campaign detail page](/voice-agents/deploy/campaigns/campaign-details).

Each cohort is validated on upload, splitting into **valid records** (contacts that will be dialed) and **invalid records** (rows with bad phone numbers or missing required fields).

## When to use multiple cohorts

#### Phased rollout

Start with 50–100 contacts to validate call quality and connect rates. Add the full list as a second cohort once it looks good.

#### Segmented audiences

Upload different audience segments as separate cohorts — each with its own column structure and variable mappings.

#### Incremental additions

New leads came in? Add them as a new cohort instead of re-uploading the entire list.

## Add a cohort

#### Open the campaign

Go to **Deploy → Campaigns** and open the campaign, then click **Add cohort** — from the **Cohorts** section on a running campaign, or from the **Actions** menu.

#### Upload and name

Upload a new CSV (up to 100 MB) and give the cohort a name. Download the sample if you need the format. Cohorts can have different columns as long as the required variables are mapped.

#### Upload the cohort

Save to validate the file and queue the contacts.

> **Note**
>
> Adding a cohort to an **active** campaign queues the new contacts to dial within the current schedule.

## Stream cohort via API

Use [Stream cohort](/voice-agents/api/campaigns/cohorts/stream) to add contacts programmatically as JSON (up to 1000 users per request) instead of uploading a CSV in the dashboard. This is well suited for:

* **CRM integration** - push leads or customers from Salesforce, HubSpot, Zoho, or your own database into a campaign
* **Webhooks and automation** - trigger outbound calls when a form is submitted, a payment is due, or an internal workflow fires
* **Active campaigns** - add contacts while a campaign is running; they queue to dial within the current schedule
* **Incremental batches** - send multiple smaller API calls over time rather than one large file upload

For CSV-based uploads, continue using the dashboard flow above or [Upload cohort](/voice-agents/api/campaigns/cohorts/upload).

## Where to go next

#### [Campaign details](/voice-agents/deploy/campaigns/campaign-details)

See each cohort's valid and invalid records.

#### [Variables & personalization](/voice-agents/build/variables-personalization)

Map CSV columns to the variables your agent uses on each call.

#### [Stream cohort](/voice-agents/api/campaigns/cohorts/stream)

Add contacts via JSON - ideal for CRM integration and automation.