Skip to main content
GET
Get Sequence

Get Sequence

Returns one sequence with its automation nodes, edges, graph revision, and editable email steps. Pass graphRevision back with graphEdit when updating the topology so a stale client cannot overwrite a newer graph change. Each linked email includes its effective emailPreset (branded or minimal), the same value shown under Style > Format in the dashboard. Native block emails can include supported custom HTML blocks and still return their format. An email stored entirely as one standalone raw HTML block returns null. Each email step also returns emailTheme, the theme override stored on that one email; null means the step has no override and renders on the company theme. emails covers every email-sending step, including steps converted to an A/B test. Those return nodeType: "action_ab_test" plus an abTest object with the test id, status, and one entry per variant. Their step-level subject, previewText, and blocks are control variant A only. With ab_tests:read, each abTest.variants[] entry includes that variant’s full blocks, so a sequence read is enough to audit competing copy. get_ab_test still returns the full test record (settings, localization, stats). Change variant copy with Update Variant. That read-and-update workflow needs ab_tests:read, ab_tests:write, and sequences:write. emailCount counts these steps too, and abTestCount reports how many of them are A/B steps. Keys with sequences:read but without ab_tests:read still receive the A/B step and its control copy. The nested abTest summary keeps the configured test id and editing guidance, but redacts the test record and competing variants; its name and status are null, and variants is empty. Each linked email includes both stepNumber, the legacy stored ordinal retained for backward compatibility, and structuralStepNumber, its graph-derived position. Email nodes expose the same read-only value at nodes[].structuralStepNumber, outside their editable config. Use the structural value for UI labels and sequence analysis. Emails in parallel branches intentionally share the same structural depth; after unequal branches merge, depth continues from the longer incoming path. Read effectiveStatus (draft, live, enrollment_paused, paused, or archived) to know whether the sequence is running. status alone still reads active while new enrollments are paused. See List Sequences for the full mapping, and note that triggerConfig.active is a legacy field the runtime ignores - it mirrors acceptsNewEnrollments.

Request

string
required
Sequence ID.

Responses