Skip to main content
Campaigns follow a state machine: draft → running ↔ paused → completed. The stop action is terminal — a stopped campaign cannot be restarted.

Start a campaign

Transitions a campaign from draft or paused to running. The dialer begins placing calls according to the configured dial_mode.
Scope: campaigns:write  |  Status: 200 OK Returns the updated CampaignResponse with status: "running".

Pause a campaign

Transitions a running campaign to paused. The dialer stops placing new calls but in-progress calls continue until completion.
Scope: 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 to completed. This is terminal — the campaign cannot be restarted. To resume dialing the same leads, create a new campaign and re-import.
Scope: campaigns:write  |  Status: 200 OK

Errors