---
title: "Batch & Campaign Calling - Auto-Respond Docs"
description: "Run outbound campaigns to a list of recipients with per-recipient personalization, sequential or parallel."
source: https://auto-respond.com/docs/voice-agent/batch-campaign-calling/
last_updated: 2026-10-04
---

![Batch & Campaign Calling documentation guide](https://auto-respond.com/assets/docs/voice-agent-batch-campaign-calling.svg "Batch & Campaign Calling Documentation")

A visual guide to the Batch & Campaign Calling documentation, covering the setup, configuration, and workflow details explained on this page. Documentation illustration for Batch & Campaign Calling.

# Batch & Campaign Calling

Batch calling lets you run an outbound campaign to a list of recipients. Each recipient gets a personalized call based on the dynamic variables you supply (name, service, main goal, etc.), and you can run the batch sequentially (one at a time) or in parallel.

## Getting here

In Auto-Respond, go to **Voice Agent** → **Batch Calls**.

You’ll need a **Batch Calling Agent** configured first. See [Agent Configuration](https://auto-respond.com/docs/voice-agent/agent-configuration/).

## Creating a batch

### Click New Batch

In Batch Calls, click **New Batch**.

### Pick the agent and origin number

- **Agent** - select the Batch Calling Agent that will handle all calls in this batch.
- **Origin phone number** - a phone number assigned to the agent with **Use for outbound** enabled. The country code of this number must match the country code of every recipient in the batch.

### Name the batch

Any descriptive label (e.g., _“Q2 Maintenance Reminders - California”_). Shown in the Batch Calls list.

### Add recipients

Each recipient is one row with:

- **to\_number** - the phone number to call, in E.164 format (e.g., `+19095551234`).
- **main\_goal** (dynamic variable) - the personalized goal for this specific call. Replaces the agent’s default main goal for this recipient.
- **Any custom variables** - add your own keys/values to personalize further. For example, `service_title`, `last_visit_date`, `discount_code`. Reference them in the Main Goal using `{{your_key}}` placeholders.

**Example recipient:**

```
to_number:        +19095551234
main_goal:        Confirm the customer still has the water heater we installed in 2023 and offer a maintenance visit.
service_title:    Water Heater Maintenance
last_visit_date:  2023-08-14
```

### (Optional) Set agent override per task

You can override the agent for individual tasks inside the batch if you need a different voice or a tweaked prompt for a subset of recipients.

### Calling Mode

Pick one of two sending modes:

- **Standard** (default) - calls are dispatched in parallel instead of one at a time. Use Standard when you want to burn through a list quickly and there’s no coordination needed between calls.
- **Sequential** - one call at a time. Each call only starts after the previous one ends. Use Sequential when the call outcome often produces a scheduling or bridging action your team needs to handle before the next call.

When **Sequential** is selected, an extra field appears:

- **Hold after human transfer (minutes)** - how long to pause before calling the next recipient **if** the previous call was transferred to a human. Default **10** minutes. Minimum **0**. This only applies after transfers - when a call ends normally, the next one starts immediately.

### Review and launch

Click **Start** to launch the batch. The status changes to **ongoing**.

## Statuses

- **planned** - the batch is saved but hasn’t started yet.
- **ongoing** - the batch is currently dialing.
- **sent** - the batch completed all recipients.
- **stopped** - the batch was paused or cancelled before all recipients were called.

## Managing a running batch

From the Batch Calls list you can:

- **Pause** an ongoing batch - calls stop, recipients not yet called are held.
- **Resume** a paused batch - calls continue from where they left off.
- **Cancel** a batch - no more calls are made. Recipients already called are still recorded.
- **Delete** a completed or cancelled batch - removes it from the list (the underlying call logs are preserved).

⚠️

Stopping a sequential batch leaves partial progress - some recipients will have been called, others won’t. Review the individual call logs before deciding whether to resume or start a fresh batch.

## Dynamic variables in prompts

Every recipient row can include any number of custom variables. Reference them anywhere in the agent’s Main Goal, Closing Sentences, or Custom Rules using `{{key_name}}` syntax.

**Example Main Goal (per recipient):** `Remind {{customer_name}} that their annual tune-up is due, reference the service done on {{last_visit_date}}, and offer a slot in the next 10 days.`

**Example recipient row:**

```
to_number:       +19095551234
customer_name:   John
last_visit_date: August 2024
```

The agent says _“Hi John, we did your annual tune-up back in August 2024…”_.

## Call hours

Sequential batches respect the agent’s **Timing** (call hours). If the transfer hold pushes the next call outside call hours, it waits until call hours resume.

Standard (parallel) batches also respect call hours - calls won’t be placed outside configured windows.

## Reviewing results

Every call in the batch appears in **Call Logs**, filterable by the batch name. For each call you get:

- **Transcript** and **recording**.
- **AI summary** including the “Callback: Yes/No” flag.
- **Extracted data** - customer name, phone, email, address.
- **Appointment booked** (if the agent completed a booking).
- **Disconnection reason** and **duration**.

See [Call Logs & Analytics](https://auto-respond.com/docs/voice-agent/call-logs-analytics/) for filters, marking, and export.

## Best practices

- **Match country codes.** The origin phone number’s country code must match every recipient’s country code. Mixed-country batches should be split into separate batches.
- **Start small.** Run a 10–20 recipient test batch with the same prompt and voice you plan to use at scale. Review the transcripts before going big.
- **Use Sequential when transfers trigger manual work.** If a transferred call kicks off a human task (dispatching a technician, preparing a quote), Sequential with a 10–15 minute transfer hold gives your team space before the next call lands.
- **Use Standard for awareness campaigns.** If the batch is announcing a promotion or leaving voicemails, Standard is faster and fine.
- **Complete Trust Hub first.** For US campaigns, campaigns without a configured Trust Hub profile get flagged as spam at much higher rates. See [Caller ID & Trust Hub](https://auto-respond.com/docs/voice-agent/caller-id-and-trust-hub/).

## Troubleshooting

**The batch won’t start.**

- Confirm the origin phone number has **Use for outbound** enabled and is assigned to the chosen agent.
- Confirm every recipient phone is in E.164 format.
- Confirm no recipient has a country code that differs from the origin number’s country code.

**The batch is paused automatically.** The batch pauses if it hits the configured time outside call hours and resumes when call hours begin again.

**Some recipients were skipped.** Check the Call Logs for that batch - the skipped recipients will have a status (failed, busy, no-answer, invalid-number) explaining what happened.

**Personalization isn’t showing up.** The placeholder keys in the Main Goal must match the variable keys in the recipient rows exactly (case-sensitive). `{{customer_name}}` in the goal requires `customer_name` in the recipient, not `name` or `CustomerName`.

***

Questions? Email <support@auto-respond.com>.

Last updated: October 4, 2026
