draft → running ↔ paused → completed.
The stop action is terminal — a stopped campaign cannot be restarted.
Start a campaign
Transitions a campaign fromdraft or paused to running. The dialer
begins placing calls according to the configured dial_mode.
campaigns:write | Status: 200 OK
Returns the updated CampaignResponse with status: "running".
Pause a campaign
Transitions a running campaign topaused. The dialer stops placing new
calls but in-progress calls continue until completion.
campaigns:write | Status: 200 OK
Campaigns can also be auto-paused by the system when the abandon rate
approaches the 3% TRAI cap. When this happens, a
campaign.paused
webhook fires with source: "abandon_rate_exceeded".Stop a campaign
Transitions a running or paused campaign tocompleted. This is
terminal — the campaign cannot be restarted. To resume dialing the
same leads, create a new campaign and re-import.
campaigns:write | Status: 200 OK
Errors
| Status | Condition |
|---|---|
404 | Campaign not found or belongs to another tenant |
409 | Invalid state transition (e.g., starting an already-running campaign, stopping a completed campaign) |

