Preview Sequence
GET /sequences/{sequence_id}/preview
Load a sequence with its steps and channels, including RESOLVED copy. No enrollment.
Each step carries both:
step_data: the stored template, exactly as written, spintax braces and all.rendered: the same copy with spintax collapsed to one real variant, plustotal_combinationsand up to three samplevariants.
Use rendered to answer “is my spintax working?”. If variants differ from
each other, per-contact variation is live and each lead gets a different email.
{{variables}} stay visible in rendered on purpose; they fill in at send
time from contact data, and a preview has no contact to fill them from.
rendered is null for ON_DEMAND steps, whose copy the AI writes per contact
at send time rather than reading from step_data.
Authorizations
Parameters
Path Parameters
Sequence ID
Sequence ID
Header Parameters
Responses
200
Successful Response
object
object
object
What a step’s copy actually looks like once spintax is resolved.
Exists because step_data is the stored TEMPLATE, not the delivered email.
A caller reading raw {{a|b|c}} back out of a field called “preview” has no
way to tell working spintax from broken spintax, which is precisely how a
working feature got reported as broken (see the PR that added this).
object
Body with spintax resolved to one variant
Findings from the same content-syntax validator that blocks launch, so a caller sees them here instead of discovering them as a 400 on run (or worse, as missing text in a delivered email). Each entry carries code, severity, message, field and snippet. An error-severity entry will block POST /sequences/{id}/run.
object
Count of top-level spintax blocks across subject + body. 0 means this step contains no spintax at all, which distinguishes ‘nothing to vary’ from ‘spintax failed to resolve’.
Subject with spintax resolved to one variant
Distinct emails this step can produce. Always >= 1; a value of exactly 1 means the copy is too templated to vary, which is a legitimate outcome and not an error.
False for this endpoint. Spintax is resolved but {{variables}} are left visible on purpose, because a preview has no contact and resolving against an empty contact would delete the token and show a hole in the copy. Variables fill in at send time.
Up to 3 distinct body renderings under different selection seeds. This is the proof that spintax works: if these differ, per-contact variation is functioning. Fewer than 3 entries means the copy cannot produce more.
True when the rendered copy above is what a recipient actually gets. False means content_issues contains errors that make the delivered email differ from this preview, because malformed tokens are silently DELETED at send rather than raising. Do not launch on a false.
422
Validation Error