Create Session Draft
POST /dialer/sessions/draft
CONTACTS NOBODY. Creates a DRAFT session and dials no one.
The safe first step: it resolves the list or sequence, snapshots the
filter, and stops. POST /dialer/sessions/{id}/next-batch is what turns a
draft into ringing telephones.
Not idempotent in the way it looks: voice REUSES a live session for the
same list rather than creating a second one, so calling this twice does
not double-dial - it returns the existing session. from_phone is
optional here and enforced at dial time.
Authorizations
Parameters
Header Parameters
Request Body required
Mirrors CreateBeQueueSessionRequest minus org_id.
Either list_id or sequence_id is required - voice 400s with neither,
and that is left to voice rather than duplicated here so the two cannot
disagree about which combinations are legal.
object
Which contacts in the list are eligible to be dialed.
Narrowing this on a RUNNING session changes who gets called next. It is not a display filter.
object
One clause of a queue filter. conditions nests for AND/OR groups.
conditions is typed as a list of plain objects rather than as a list of
FilterPredicate, ON PURPOSE. Voice’s own model IS recursive, and this
one was too, which made it the only self-referencing schema in the
published contract - and the developer-docs renderer recurses on a
self-referencing schema with no depth limit until Node runs out of memory
(verify-help-docs and User help coverage and rendering both died with
exit 134 on every head that carried it). The wire format is unchanged:
each entry has this same shape (field, op, value, values,
conditions) and is forwarded to voice as-is, which validates it against
its recursive model. The parity test compares field NAMES, so it still
pins this model to voice’s.
Responses
201
Successful Response
object
An open envelope for one dialer result.
Open because voice owns the shape of a session, a call stub and a queue stat, and it grows them without a contract bump here. A dropped field would otherwise turn an added upstream field into a removed public one.
object
422
Validation Error