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

# Adding Contacts to a Batch

> How to get contacts into a batch at every stage of its life — staging drafts from source lists, adding calls to a launched batch through the four staging tabs, and reactivating completed batches.

## Overview

There are two routes for getting contacts into a batch, and which one you use depends on where the batch is in its lifecycle:

* **Before launch (draft)** — a draft batch is populated from **source lists** on its Settings tab. The batch queue is built and re-planned from those lists, and you launch once the queue looks right.
* **After launch** — once a batch is Scheduled, In Progress or even Completed, you add individual calls through the **Add Calls to Batch** window, which stages contacts from four tabs and creates new scheduled calls in one action.

This page covers both routes, how duplicates are rejected along the way, and what happens when you add calls to a batch that has already finished.

***

## Adding contacts to a draft batch

A new batch starts as a draft. On the batch's **Settings** tab, you attach one or more lists with the **Add lists** button — these become the batch's source lists, and their contacts populate the **Queue** tab. Until a list is attached you'll see: "No source lists yet. Add one above to start populating the queue." You can also drag and drop a CSV of names and phone numbers straight onto the Settings tab to create a new list from it (the **Create list from CSV** dialog).

Points to note while the batch is a draft:

* **Changes are staged until you Save.** Edits on the Settings tab show an **Unsaved Changes** badge in the header and are only persisted when you press **Save**. Navigating away first prompts you with the Unsaved Changes dialog.
* **You need at least one queued contact to launch.** The **Launch Batch** button is disabled while the Queue is empty, and attempting to launch without contacts shows "Please add at least one source list before launching".
* **Per-list controls live on the source lists.** Priorities, quotas, sampling and script overrides are configured per source list — see [Source Lists, Allocation & A/B Testing](/batches/source-lists).
* **Lists keep feeding the batch after launch.** While a launched batch's scheduler is active, new contacts added to its active source lists are folded into the queue automatically on the next intake pass. Contacts already queued are skipped, and intake stops once the batch completes or is cancelled.

***

## Adding calls to a launched batch

Once a batch has launched you add contacts through the **Add Calls to Batch** window. Open it from either place:

* **Batch Scheduler page** — select a batch, then in the Batch Summary panel open the **Actions** dropdown and choose **Add New Calls**.
* **Batch detail page** — on the **Summary** tab, open the actions dropdown above the calls table and choose **Add New Calls**.

**Add New Calls** is available when the batch's status is Scheduled, In Progress or Completed, and you have edit permission for the batch. It is not offered for cancelled batches.

The window header confirms which batch you're adding to — its Script, List and Current Calls count — with two buttons: **Cancel** and **Add `{n}` Calls**.

***

## The four staging tabs

The **Add Contacts** section of the window offers four tabs. Whichever tab you use, contacts land in the same staging queue at the bottom of the window — nothing is created until you press **Add `{n}` Calls**.

| Tab                 | What it does                                                                                                                                                                                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **From List**       | Pick a list from the **Select List** dropdown (only lists that contain contacts are offered), then tick contacts in the table. **Add to Batch (`{n}`)** stages your selection; **Add All to Batch** stages every eligible contact in the list.                           |
| **From Contacts**   | Search your whole Contacts workspace ("Search contacts by name, phone, or email...") and tick the contacts you want, then **Add to Batch (`{n}`)**.                                                                                                                      |
| **Upload CSV**      | Import contacts from a CSV file. This is the same importer used on the Contacts page — new rows become contact records and are staged for the batch in one step. See [Importing & Exporting Contacts (CSV)](/contacts/import-export) for the header and duplicate rules. |
| **Add New Contact** | Create a single contact by hand and stage them immediately.                                                                                                                                                                                                              |

If you have no lists yet, the **From List** tab shows "You need to create a contact list first" with a **Create List** button that takes you to the Lists page.

### Add New Contact fields

| Field              | Required | Description                                                             |
| ------------------ | -------- | ----------------------------------------------------------------------- |
| First Name         | Yes      | The contact's first name.                                               |
| Last Name          | No       | The contact's last name.                                                |
| Phone Number       | Yes      | Must be in international format starting with `+`, e.g. `+61400123456`. |
| Email (Optional)   | No       | Must be a valid email address if provided.                              |
| Address (Optional) | No       | Free-text address.                                                      |

Pressing Enter in any field, or clicking **Add to Batch**, creates the contact and stages them. Note that this creates a real contact record in your Contacts workspace immediately — it is not discarded if you later cancel the window. If a contact with that phone number already exists, the creation is rejected.

***

## The staging queue

Staged contacts appear in the **Contacts to Add (`{n}`)** table with columns for Name, Phone Number, DNCR, Calls and an action to remove the row. Until you stage someone it reads: "No contacts queued yet. Add contacts from the options above."

* **Scheduled Time** — a date-time picker above the table sets when the new calls should be made: "All new calls will be scheduled for this time". Actual dial times still respect your batch's pacing and business-hours rules — see [Batch Scheduling & Pacing](/batches/scheduling).
* **Wash Numbers** — checks every staged phone number against the Do Not Call Register and shows the result in the DNCR column. See [DNCR Washing](/contacts/dncr-washing).
* **Nothing is committed yet.** The staging queue is a local draft: pressing **Cancel** or closing the window discards it (except contacts created on the Add New Contact tab, which persist as contact records).

Pressing **Add `{n}` Calls** commits the queue. Voxworks first checks that your account has enough minute credits or wallet balance to cover the estimated cost of the new calls; if not, the addition is rejected with a message showing what you have and what you'd need. On success each staged contact becomes a new outbound call with a Scheduled status, using the batch's script, and the contacts are also added to the batch's list if it has one. A toast confirms: "Added `{n}` calls to batch".

***

## Duplicate rejection

Duplicates are rejected at three layers, so the same person is never queued twice in one batch:

1. **While selecting** — contacts whose phone number is already staged appear greyed out and cannot be ticked, marked "(duplicate phone)" or "(already queued)". If every contact you try to add is a duplicate, you'll see "No contacts can be added - all are duplicates". On the Add New Contact tab, a phone number already staged in this session is rejected with "A contact with this phone number is already in the queue"; if the number belongs to an existing contact anywhere in your account, the creation is rejected with "A contact with this phone number already exists".
2. **When committing** — the server compares your staged contacts against every call already in the batch and silently drops any that are already there, adding only the genuinely new ones. If none remain, the whole action fails with "All selected contacts are already in this batch".
3. **On the source-list intake side** — when lists are feeding a launched batch's queue automatically, the intake process enforces uniqueness per contact, so repeated or overlapping intake passes can't double-queue the same contact from its source lists.

Deduplication is by phone number in the selection step and by contact record at commit, so two different contact records sharing one phone number are caught before they're staged.

***

## Reactivating completed batches

A batch that has finished all its calls moves to Completed — but it isn't closed forever. Adding calls to a Completed batch automatically reactivates it:

* The new calls are created as Scheduled, and the batch's status returns to **Scheduled**.
* The confirmation toast reads "Added `{n}` calls and reactivated batch".
* The batch's totals and completion percentage update to include the new calls, and it completes again once they have all run.

This makes it easy to top up a finished campaign wave — for example, calling a handful of late additions — without building a new batch. If you're adding a whole new tranche with different pacing or rules, a fresh batch is usually the cleaner choice; see [Batches: Overview & Lifecycle](/batches/overview).

***

## Next Steps

* [Source Lists, Allocation & A/B Testing](/batches/source-lists) — per-list priorities, quotas and live intake for draft and active batches.
* [Batch Queue Management](/batches/queue) — queue statuses and per-item actions once contacts are in the batch.
* [Batch Scheduling & Pacing](/batches/scheduling) — how scheduled times interact with business hours, caps and ramp profiles.
* [Importing & Exporting Contacts (CSV)](/contacts/import-export) — the CSV format and duplicate handling used by the Upload CSV tab.
