Skip to main content
POST
Create a campaign

Authorizations

Authorization
string
header
required

Tenant API key (vdx_live_…) as Authorization: Bearer.

Body

application/json
name
string
required
audienceId
string<uuid>
required
assistantId
string
required
concurrency
integer
retry
object
window
object | null

When this batch may dial — outside it, rows wait rather than fail. A row's own timezone (the timezoneField variable) wins over timezone; a row with neither fails with no_timezone.

fromStrategy
string
fromNumbers
string[]
fromWeights
object | null
variables
object

Assistant variable -> where its value comes from: field:<column>, attr:<key>, stat:attemptsTotal / stat:attempts7d, or any other string as literal text. A variable named after a contact field (first_name) needs no entry.

Example:
blockSize
integer | null

Dial the audience in blocks of this size, one at a time.

startAt
string<date-time> | null
repeat
object | null

Launch the campaign again on this schedule. Each run starts at the same local time as the run it repeats, in timezone, across daylight-saving changes; a monthly run on the 31st falls on the last day of a shorter month. null turns it off.

Response

Created, not launched.

id
string<uuid>
name
string
audienceId
string<uuid>
assistantId
string
status
string

Derived from the underlying batch on every read, never stored — so the two can never disagree.

batchId
string<uuid> | null
startAt
string<date-time> | null
repeat
object | null

Launch the campaign again on this schedule. Each run starts at the same local time as the run it repeats, in timezone, across daylight-saving changes; a monthly run on the 31st falls on the last day of a shorter month. null turns it off.

nextRunAt
string<date-time> | null

When the campaign launches itself next. Null when it does not repeat, has not been launched since the repeat was set, or was stopped.

lastRepeat
object | null

What happened the last time a repeat came due. A skipped run says why — the previous run still dialing, an audience that matches nobody, a deleted agent.

createdAt
string<date-time>
outcomes
object

What the conversations reached (design 0018), keyed by the customer's own name for each outcome. Scoped to batchId's current run — a ranged campaign's earlier blocks are not included.