<!-- Source: https://docs.vinsi.ai/telephony/batchCall -->
# Batch Call

Run outbound call campaigns that reach a large contact list automatically using AI-powered phone agents.

[Ready to launch a batch call campaign?Click here to see how to set up a batch call — step by step.](https://docs.vinsi.ai/step-guides/batch-call)

Created: June 3, 2025

Updated: September 16, 2026

## Overview

A batch call dials a list of recipients with one of your outbound AI agents. You can send the calls right away, schedule them for specific days and times, or spread them out over time with progressive pacing and automatic retries.

Batch Call Form

![/images/batch-call-form.png](https://docs.vinsi.ai/images/batch-call-form.png)

## Getting Started

Prerequisites:

- An AI agent with outbound configured. See [Outbound Calls](https://docs.vinsi.ai/telephony/outboundCalls).
- A phone number assigned to that agent that can call out. See [Phone Numbers](https://docs.vinsi.ai/telephony/phoneNumbers).

To open Batch Calls:

1. Open the **AI Phone Agent** product.
2. In the top navigation, select **Batch Calls** (`/batch-calls`).
3. Click **New Batch Call** to open the **Create Batch Call** form.

## Batch Calls List

The **Batch Calls** page ("Manage outbound call campaigns") lists every campaign in your organization. Use the **Search by name, agent or phone...** box to find a batch.

| Column                | Description                                              |
| --------------------- | -------------------------------------------------------- |
| **ID**                | Batch identifier, e.g. B-123.                            |
| **Name**              | The batch call name.                                     |
| **Phone Number**      | The caller ID used for the calls.                        |
| **Agent**             | The outbound AI agent placing the calls.                 |
| **Start At / End At** | The scheduled date range.                                |
| **Time / End Time**   | The daily start and end times.                           |
| **Scheduled Days**    | The weekdays the batch runs on.                          |
| **Status**            | Scheduled, Running, Completed, or Canceled.              |
| **Progress**          | How far the batch has progressed through its recipients. |
| **Actions**           | Row actions (see below).                                 |

Row actions:

- **Edit Batch Call** — you can also click the row.
- **View Contacts** — see each recipient and its send status.
- **View call tracking** — available for batches that use progressive pacing only.
- **Delete Batch Call**

Editing or deleting a batch call requires an organization admin or the `batch_calls` write permission.

## Create Batch Call Form

The form fields appear in this order:

1. **Batch Call Name** (required).
2. **Outbound Agent** (required, "Select an Agent"). Each option is a phone number shown as _Agent Name - (xxx) xxx-xxxx_. Picking one sets both the agent and the caller ID. Only numbers with an assigned agent and outbound capability appear.
3. **Enable Voicemail Detection** (off by default). When checked, a **Voicemail Message** text box appears.
4. **Add Recipients** — Upload CSV (default), HubSpot, Salesforce, GoHighLevel, VinsiSaaS CRM, or External Source. See [Recipients](https://docs.vinsi.ai/telephony/batchCall#batchCall-recipients).
5. **When to send the calls** — **Send Now** (default) or **Schedule**. See [Scheduling](https://docs.vinsi.ai/telephony/batchCall#batchCall-schedule).
6. **Spread calls over time (progressive pacing)** — available for one-time batches only (no weekdays selected). See [Progressive Pacing](https://docs.vinsi.ai/telephony/batchCall#batchCall-pacing).
7. **Reserved Concurrency for Other Calls** — stepper, default 1, minimum 1, maximum 5.

Form footer buttons:

- **Warm up agent** (optional) — pre-loads the agent so it is ready in about 5–10 seconds.
- **Save Batch Call**

## Recipients

Choose a source under **Add Recipients**:

- Upload CSV (default)
- HubSpot
- Salesforce
- GoHighLevel
- VinsiSaaS CRM
- External Source

### Upload CSV

1. Click **Download the template** to get `template.csv`. Its headers are exactly `name,phoneNumber`.
2. Click **Choose a csv file** and select a `.csv` file (up to 50mb).
3. Review the file in the editable grid. Use **Add column** and **Add row** to add data, and right-click to delete a row or column. The `name` and `phoneNumber` columns can't be deleted.
4. Click **Save CSV changes**. Saving is blocked while any header or cell is empty.
5. Confirm the **Recipients Loaded: N** count matches your list.

Extra columns become per-recipient variables for the agent. Avoid commas inside values.

### HubSpot

1. Select **HubSpot** under Add Recipients.
2. If HubSpot isn't connected yet, click **Connect to HubSpot** (Settings → HubSpot).  
Batch Call Form  
![/images/batch-call-hubspot-connect.png](https://docs.vinsi.ai/images/batch-call-hubspot-connect.png)
3. Once connected, choose a **Pipeline** and **Stage** (both required).
4. Click **Fetch Contacts**. The form shows **Contacts imported: N**.

### Salesforce

1. Select **Salesforce** under Add Recipients and click **Connect to Salesforce** if needed.
2. Choose the **Object Filter**.
3. Click **Add Filter** to add filter rows. Each row has **Field**, **Operator**, **Parameter**, and **Remove**. Operators: Equals, Not Equals to, Greater Than, Less or equals, Greater or equals, Includes.
4. With two or more filters, enter **Filter Logic** (for example `1 and 2`) and click **Apply**.
5. Set **Include Do Not Call Clients** to Yes or No (default No).
6. Click **Get Contacts from {object}** to load contacts. Use **Save Filter** to keep the filter.

### GoHighLevel

1. Select **GoHighLevel** under Add Recipients and click **Connect to GoHighLevel API** if needed.
2. Click **Get Contacts** and select the contacts to call.
3. The form shows **Contacts selected: N**.

GoHighLevel requires the agent's **GoHighLevel Sub-Account ID** to be set in the agent's Integration section.

### VinsiSaaS CRM

1. Select **VinsiSaaS CRM** under Add Recipients and click **Connect to Vinsi CRM API** if needed.
2. Click **Add Contacts** to open **Contacts from CRM** (Contact, Title, Phone, Email).
3. Tick the contacts you want and click **Add Contacts**.

### External Source

1. Select **External Source** under Add Recipients.
2. Fill in the request settings: server URL (required), method, headers, parameters, and timeout.
3. Click **Execute request**.

Warning: Dialing phone numbers automatically without prior consent violates FCC regulations and may result in penalties.

## Scheduling

Under **When to send the calls**, **Send Now** is the default. Choose **Schedule** to set:

- **Start Date** (required, today or later)
- **Has End Date** — reveals **End Date**
- **Start Time** and **End Time** (required)
- **Select Time Zone** (required)
- **Select the days** — Mon through Sun, within the date range

## Progressive Pacing

Check **Spread calls over time (progressive pacing)** to dial in waves instead of all at once. Pacing is available for one-time batches only (no weekdays selected).

| Setting                                      | Default     | Description                                                                                  |
| -------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------- |
| **Contacts per wave**                        | 50          | How many contacts are dispatched in each wave.                                               |
| **Every (minutes)**                          | 60          | Time between waves.                                                                          |
| **Only dispatch within a daily time window** | 09:00–18:00 | Uses the batch time zone. Contacts outside the window wait; they are not skipped.            |
| **Distribute by day of week**                | Optional    | Click **Add day** and set a weekday and quota.                                               |
| **Retry if disposition is**                  | Empty       | Comma-separated dispositions, e.g. _No Answer, Voicemail, Busy_. Leave empty for no retries. |
| **Retry after (hours)**                      | 2           | Delay before a retry.                                                                        |
| **Max attempts per contact**                 | 2           | Upper limit on attempts for each contact.                                                    |

When using day-of-week rules, choose what happens when a contact was already attempted on an earlier rule day:

- **Distribute** — each contact is called once.
- **Repeat** — on repeat days, choose **Only retry contacts who didn't answer (recommended)** or **Call everyone again**.

## Monitoring

While a batch is running, the form shows "The batch call is executing..." with a progress bar and a **Cancel Execution** button. **Save Batch Call** is disabled while the batch runs.

Batches can't be paused — only canceled.

**View Contacts** shows each recipient with a status of **Sent**, **DNC Skipped**, or **Error**.

**View call tracking** (pacing batches only) shows each contact's progress. Filter by status: Pending, Queued, Dispatched, Answered, No Answer, Retry Scheduled, DNC, Max Attempts, Error.

| Column           |
| ---------------- |
| Name             |
| Phone Number     |
| Status           |
| Attempts         |
| Wave             |
| Last Disposition |
| Last Attempt     |
| Next Attempt     |

## Results & Reports

- [Call Logs](https://docs.vinsi.ai/telephony/callLogs) — filter by **Batch** and use **Export**.
- **Dashboard** — filter by batch (`B-###`).
- **Dashboard → Reports** — **Batch Campaign Summary** and **Batch Call Detail**, both with **Export to Excel**.

## Do Not Call

Numbers listed in **CRM Admin → Do Not Call Registry** are skipped and show as **DNC Skipped** in View Contacts.
