Skip to main content
POST
Release many held contacts into this sequence

Authorizations

X-API-Key
string
header
required

Path Parameters

sequence_id
string<uuid>
required

Body

application/json

ONE-1199: release many held contacts into THIS sequence.

Same shape as the bulk removal, including the server-resolved scope='all', so a cohort held by one overlap can be released in a single action. The release never touches the clock and never reaches another sequence.

enrolment_ids
string<uuid>[]
Maximum array length: 1000
limit
integer | null

With scope='all', act on only the first n of the resolved set.

Required range: 1 <= x <= 100000
scope
enum<string>
default:ids
Available options:
ids,
all
search
string | null
Maximum string length: 255
statuses
enum<string>[] | null

Defaults to the two held states, since nothing else can be released.

Where one contact stands in one sequence.

ACTIVE rows carry a due_at and are what the tick claims; CLAIMED is the in-flight guard between claim and outcome. PAUSED (SEQ-30) is a deliberate per-contact hold: unclaimable because the tick claims strictly on ACTIVE, yet still LIVE — it keeps its step and its one-live-sequence slot, and a compliance stop (reply, unsubscribe) reaches it. Everything else is settled: COMPLETED walked off the end; STOPPED was halted (reply, unsubscribe, bounce, manual, company pause); FAILED is terminal per the phase-1 ruling; SUPPRESSED was on the do-not-contact list; SKIPPED_DUPLICATE lost the one-live-sequence-per-contact rule, with the reason visible in the grid.

ONE-1199 adds two HELD states, which are neither live nor settled. COOLDOWN is a contact the workspace's recontact rule is holding back: it carries the eligible-again instant in due_at and resolves ITSELF at the first release sweep after that instant. It is deliberately outside uq_sequence_enrolment_one_live — a hold is not a live cadence, so two sequences may each hold the same person and each releases independently — and outside the due-queue's partial index, so the tick can never claim one. EXCLUDED is an exclusion-list match: the opposite fact, because there is no date on which it resolves.

Available options:
active,
claimed,
paused,
completed,
stopped,
failed,
suppressed,
skipped_duplicate,
cooldown,
excluded

Response

Successful Response

released
integer
required