What Is a Campaign?
In Neuron, a campaign is a batch of outbound calls that shares a single voice agent configuration, schedule, and contact list. Every call in the campaign runs the same script and disposition logic, and all outcomes roll up into a single campaign-level report. Campaigns are stateful — you can pause, resume, or stop them mid-run, and Neuron tracks which contacts have been reached, which need a retry, and which are complete.Creating a Campaign via the Dashboard
Name Your Campaign
Give the campaign a clear, identifiable name. Use a naming convention that includes the use case, language, and date — for example:
Q4 Cross-Sell — Personal Loans — hi-IN — Jan 2024.Select Script and Language
Choose the script from the dropdown (scripts you’ve created under Neuron → Scripts) and set the target language. The language set here overrides the agent’s default language for this campaign run.
Set Your Calling Schedule
Define the calling window: start date/time, end date/time, and timezone. Neuron will only place calls within this window and will automatically stop when the end time is reached.
Upload Your Contact List
Upload a CSV file or paste contact data directly. Required fields:
phone. Optional fields: name, and any custom variables your script references (e.g., loan_amount, due_date). Maximum 10,000 contacts per campaign.Configure Retry Logic
Set
max_attempts (how many times to retry unreached contacts) and the retry interval (minimum time between attempts for the same contact).Creating a Campaign via the API
For programmatic campaign creation — useful for automated workflows, CRM-triggered campaigns, or bulk scheduling — use thePOST /v1/campaigns endpoint:
campaign_id from the response — you’ll use it to monitor status, fetch results, and control the campaign.
Campaign Request Parameters
A human-readable name for the campaign. Appears in the dashboard and in all API responses.
The ID of the script to use for this campaign. Must be an existing script from Neuron → Scripts.
BCP-47 language code for this campaign. Overrides the agent’s default language. See the Languages page for supported codes.
Calling window configuration. Contains
start_time, end_time (ISO 8601 with timezone offset), and timezone (IANA timezone string, e.g., "Asia/Kolkata").Array of contact objects. Each object requires
phone (E.164 format). Add any custom fields your script uses as additional keys on each contact object.Maximum number of call attempts per contact. Defaults to
1. Set to 2 or 3 to retry unreached contacts. Retries are spaced by the configured retry interval (default: 60 minutes).Monitoring a Running Campaign
Fetch real-time campaign status and disposition breakdown withGET /v1/campaigns/{campaign_id}:
status values:
| Status | Meaning |
|---|---|
scheduled | Campaign created, waiting for start time |
running | Actively placing calls |
paused | Manually paused; can be resumed |
completed | All contacts processed or end time reached |
stopped | Manually stopped; cannot be resumed |
Pausing, Resuming, and Stopping
- Pause
- Resume
- Stop
Retry Logic
When a contact doesn’t connect on the first attempt, Neuron’s retry logic handles follow-up automatically based on your configuration:max_attempts— the total number of times Neuron will try each contact (including the initial call). Setmax_attempts: 3to try each number up to 3 times.- Retry interval — the minimum time Neuron waits before reattempting a contact who didn’t connect. Configurable in the dashboard under campaign settings (default: 60 minutes).
- Smart retry exclusion — contacts with a terminal disposition (interested, not interested, DNC, paid) are never retried, regardless of
max_attempts.
Retries only apply to
not_reachable dispositions. Contacts who connected and received a terminal disposition are not re-dialed, even if max_attempts has not been exhausted.Contact List Requirements
CSV Upload Format
CSV Upload Format
Upload contacts as a CSV file with the following structure:
phoneis the only required column, in E.164 format (+91XXXXXXXXXX)- Add any custom columns your script uses as additional headers
- Maximum file size: 5 MB; maximum 10,000 contacts per campaign
API Contacts Array
API Contacts Array
Pass contacts directly in the API request as an array of objects. The same field rules apply —
phone required, custom fields as additional keys. Maximum 10,000 contacts per API request.Duplicate Handling
Duplicate Handling
Neuron automatically deduplicates contacts within a campaign by phone number. If the same number appears multiple times in your upload, it will be called only once (or
max_attempts times if it doesn’t connect).Campaign Metrics
After a campaign completes (or while it’s running), you can access the following metrics from the dashboard or via the API:| Metric | Description |
|---|---|
| Connect Rate | Percentage of contacts where the call was answered |
| Disposition Breakdown | Count and percentage for each disposition tag |
| Average Call Duration | Mean call length in seconds for connected calls |
| Conversion Rate | Percentage of connected calls with a positive outcome disposition |
| Retry Rate | Percentage of contacts that required more than one attempt to connect |
| Escalation Rate | Percentage of connected calls transferred to a human agent |
Next Steps
- Configure or update your voice agent before launching
- Set up webhooks to receive real-time disposition events in your CRM
- Review language options if you’re running multilingual campaigns