Skip to main content
Looking for advanced outbound calling? The new Campaigns feature provides a full-featured dialer with prospect management, timezone-aware scheduling, DNC compliance, and intelligent dialing controls. Batch Calling remains available for simpler, one-off call lists.

Overview

Batch calling lets you upload a spreadsheet of phone numbers and dynamic variables, then dispatch calls at scale. The system handles concurrency, capacity limits, scheduling, and per-item status tracking.

CSV Format

Your CSV file should include a phone_number column and any dynamic variable columns:
phone_number,customer_name,appointment_date,account_id
+14155551234,John Smith,2026-02-15,ACC-001
+14155555678,Jane Doe,2026-02-16,ACC-002
+14155559012,Bob Wilson,2026-02-17,ACC-003
  • First column must be phone_number
  • Additional columns become dynamic variables (injected into the agent’s system prompt)
  • Phone format: E.164 recommended (+1XXXXXXXXXX)

Creating a Batch Job

1

Upload CSV

Go to Batch CallingUpload and select your CSV file.
2

Configure the Batch

SettingDescription
NameDisplay name for this batch (e.g., “Feb Appointment Reminders”)
AgentSelect the agent that will make the calls
Agent NumberPhone number to call from
ScheduleChoose “Send Now” or pick a future date/time
TimezoneYour local timezone for scheduling
3

Review and Launch

  • Review the parsed phone numbers and variables
  • Click Send Now to start immediately, or Schedule for later
  • The batch is sent to the Celery task queue for processing

How Dispatch Works

Concurrency control: The dispatcher checks Redis livekit:active_calls before each call. If at capacity (MAX_AGENT_SESSIONS), it waits and retries automatically.

Batch Statuses

Batch StatusMeaning
draftSaved but not submitted
scheduledScheduled for a future time
runningCurrently dispatching calls
completedAll calls processed
Item StatusMeaning
pendingWaiting to be called
callingCurrently in a call
completedCall finished successfully
failedCall failed (error recorded)

Monitoring Batch Progress

View real-time progress on the batch details page:
  • Total items vs. completed/failed/pending
  • Per-item status with call IDs
  • Error messages for failed items
  • Link to individual call logs for completed calls
You cannot delete a batch that is currently running. Wait for it to complete or manually stop the Celery worker.
For large batches (1000+ numbers), consider scheduling during off-peak hours. The concurrency limit ensures you don’t overwhelm the system, but processing will take longer.