A Campaign is a scheduled group of outbound calls. Ringg AI uses one assistant, one or more caller numbers, and a contact list to call many people without manual dialing.
What a Campaign Needs
| Item | Why It Matters |
|---|
| Assistant | Controls what the call says and how it behaves |
| Caller number | Shows as the number calling the contact |
| Calling list | Contains phone numbers and optional custom variables |
| Schedule | Sets when calls start and stop |
| Timezone | Makes the schedule clear for your audience |
| Credits | Pays for call time |
Campaign Settings
When creating a campaign, you fill in two main sections.
Campaign Settings
| Field | Meaning |
|---|
| Campaign Name | Business-friendly label for the campaign |
| Assistant | Voice agent that will make the calls |
| Numbers | Caller IDs used for dialing |
| Campaign Start Date/Time | When Ringg AI can start calling |
| Campaign End Date/Time | When Ringg AI must stop calling |
| Timezone | Timezone for the schedule |
| Email Notifications | People who receive campaign updates |
Calling List
The calling list is usually a CSV file. It should include:
- A phone number column.
- Any custom variables used in the assistant prompt.
- Clean headers with no extra spaces.
Example: if the assistant says @{{callee_name}}, the CSV needs a callee_name column.
Campaign Status
| Status | Meaning |
|---|
Scheduled | The campaign is waiting for its start time |
Ongoing | Calls are currently being made |
Paused | Calling has been paused |
Completed | The campaign finished or reached its end time |
Failed | The campaign hit an error that needs attention |
Campaign Concurrency
Concurrency controls how many calls can happen at the same time.
Use Manage Concurrency when:
- Multiple campaigns are running at once.
- API-triggered calls and dashboard campaigns share the same workspace capacity.
- You want to control how call slots are split across campaigns.
If campaign concurrency is not set manually, Ringg AI distributes available campaign call slots across running campaigns.
Developer Handoff
Developers need campaign IDs to start, monitor, and reconcile calls outside the dashboard.
| Item | Why Developers Need It |
|---|
agent_id | Assistant that should handle the calls |
Caller number or from_number_id | Caller ID for the campaign |
| CSV column names | Must match assistant custom variables |
bulk_list_id or list ID | Identifies the uploaded contact list |
| Campaign ID | Identifies the saved campaign |
| Webhook events | Sends results to another system automatically |
For the standard API flow, developers should use POST /campaign/save and then POST /campaign/start.
For 5,000 or more rows, developers should use the beta large-campaign flow:
POST /campaign/upload-csv
GET /campaign/upload-status/{bulk_list_id}
POST /campaign/make-call-async
POST /campaign/check-balance/{bulk_list_id}