Skip to main content
POST
Preview Campaign Step Delays

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

campaign_id
string<uuid>
required

Body

application/json

Request body for the delay preview and the delay apply routes.

delays
CampaignStepDelayEntry · object[]
required

Requested wait changes (unique step numbers).

Required array length: 1 - 20 elements
scope
enum<string>
default:new_and_unstarted

Cohort the edit applies to. Only 'new_and_unstarted' exists: already-started leads always keep the waits they were enrolled under.

Available options:
new_and_unstarted
expected_updated_at
string<date-time> | null

The campaign's updated_at the edit was composed against. REQUIRED on apply (optimistic concurrency); optional on preview, where a mismatch is reported as version_conflict instead of failing.

Response

Successful Response

Preview/apply result for a launched-campaign delay edit.

campaign_id
string<uuid>
required

Campaign ID

status
enum<string>
required

Campaign status at read time

Available options:
draft,
launching,
scoring,
review_ready,
scheduled,
active,
draining,
paused,
completed,
failed
version
string<date-time>
required

campaigns.updated_at AFTER this call; send back as expected_updated_at.

scope
enum<string>
required

Applied scope (echo)

Available options:
new_and_unstarted
applied
boolean
required

True only when this call wrote the new waits

cohorts
CampaignStepDelayCohorts · object
required

Campaign-wide cohort snapshot

already_applied
boolean
default:false

True when the stored sequence already carried the requested waits, so nothing was written. On an apply the version CAS has already passed, so it means 'nothing has changed since the version you sent' — it is NOT a receipt that an earlier submission of yours committed.

version_conflict
boolean
default:false

Preview only: expected_updated_at is no longer the current version.

blocking
string[]

Machine reasons an apply would refuse right now ('version_conflict', 'send_in_progress', 'protection_incomplete', 'protection_unknown'); empty means clear.

changes
CampaignStepDelayChange · object[]

Per-step analysis of the request

steps
CampaignStepDelaySummary · object[]

The full sequence. delay_days is the proposed sequence on a preview and the persisted one on an apply; stored_delay_days is always what is persisted.

notes
string[]

Short human-readable strings safe to render verbatim.