A campaign calls a list of contacts for you. In broadcast mode each answered call hears your message, recorded audio or text-to-speech. In agent dialer mode (progressive or power dialing) each answered call is bridged to a free agent in your Edesy contact center. You upload contacts as CSV or push leads over the API, and Edesy handles pacing, retries, calling hours, DNC suppression and results.
Two modes#
| Broadcast | Agent dialer | |
|---|---|---|
| Answered call hears | Your message (WAV/MP3 upload or TTS) | A live agent |
| Pacing | max_concurrent calls |
1.0, 1.5 or 2.0 lines per free agent (dial_ratio) |
| Contacts | CSV upload or JSON | CSV, JSON, or leads pushed while it runs |
| Set by | audio_type + audio or tts_text |
queue_id of a contact-center queue |
A third mode, interactive, runs one of your IVR Studio flows on every answered call: the lead hears your message, presses a key and can be forwarded to your team. Set it with ivr_flow_id. See Run a Flow as a Campaign.
How a campaign runs#
- Create it with a name, caller ID and message or queue: Create a Campaign.
- Add contacts by CSV or JSON, or push leads for an agent dialer: Add Leads via API. Numbers on your DNC list are suppressed.
- Check with a test call to your own phone and a cost estimate: Estimate and Results.
- Start now or schedule it. Edesy dials within the calling window (09:00 to 21:00 by default), retries unanswered contacts, retries calls the network refuses after about 1, 3, 10, 20 and 30 minutes without using your attempts, and falls back to a backup caller ID if the main one's network refuses calls. After 10 refusals in a row with no working backup, the campaign pauses and resumes itself after 5 minutes: Retries, Test Calls and Run Again.
- Watch results live, pause, resume or stop, and export results as CSV. Run again for the same contacts, only those not reached, or a new list. For agent-dialer campaigns, answers, completions, recordings and agent dispositions are pushed to your CRM with webhook subscriptions.
Endpoints#
| Method | Path | Description |
|---|---|---|
| POST | /v1/campaigns |
Create |
| GET | /v1/campaigns |
List (filter status) |
| GET / DELETE | /v1/campaigns/{id} |
Read or delete |
| POST | /v1/campaigns/{id}/audio |
Upload the message audio |
| POST | /v1/campaigns/{id}/contacts |
Upload contacts (CSV or JSON) |
| GET | /v1/campaigns/{id}/contacts |
List contacts and their status |
| POST | /v1/campaigns/{id}/leads |
Push leads into a running agent-dialer campaign |
| POST | /v1/campaigns/{id}/start, /pause, /resume, /stop |
Control |
| POST / DELETE | /v1/campaigns/{id}/schedule |
Schedule or unschedule |
| PUT | /v1/campaigns/{id}/fallback-number |
Set the backup caller ID |
| POST | /v1/campaigns/{id}/test-call |
Hear the message on your phone |
| POST | /v1/campaigns/{id}/duplicate |
Copy to run again |
| GET | /v1/campaigns/{id}/estimate |
Cost and duration estimate |
| GET | /v1/campaigns/{id}/results |
Results CSV |
| GET / PUT | /v1/campaign-settings |
Workspace defaults, such as the default backup caller ID |
Pricing#
Campaign minutes cost Rs 0.70 per minute: the Rs 0.50 call charge plus a Rs 0.20 campaign fee, billed on the same 60-second pulse. Unanswered calls are free. Text-to-speech campaigns are also charged per character; an uploaded recording (or audio_url on a single POST/v1/calls) has no text-to-speech charge. Calls the network refuses are never billed. Prices exclude 18% GST. Agent seats are billed by the contact center plan.