Skip to main content
PATCH
Update a content version

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string
required

Content version ID

contentId
string
required

Content ID

projectId
string
required

Project ID

Body

application/json
steps
object[]
startRules
object | null

PATCHES the stored rules field-by-field: an omitted setting (frequency / priority / waitSeconds / startIfNotComplete) keeps its stored value — including one inherited from the forked version — so to turn a setting off, send it explicitly (e.g. startIfNotComplete: false). when, when present, fully replaces the condition list. null clears the rules entirely (content stops auto-starting). Which settings and which when condition types the CONTENT TYPE supports varies (e.g. no priority on a launcher, attribute/segment-only targeting on an announcement) — unsupported ones are rejected per type.

hideRules
object | null

Temporarily-hide rules. Only some content types support them (rejected per type).

themeId
string

Theme to apply (cannot be cleared).

data
object

Type-specific body for a non-flow content version: checklist / launcher / banner / tracker / announcement / resource-center. Field-level merged onto the existing data.

scheduledAt
string | null

Announcement versions only: the "announcement time" — the feed hides the announcement until this instant passes, and orders the feed by it (newest first). ISO date or datetime WITH timezone. null = clear (publish stamps the publish time instead). A future value defers visibility; the value carries across version forks.

Response

Updated content version

id
string
required
object
enum<string>
required
Available options:
contentVersion
number
number
required
firstPublishedAt
string | null
required

When this version FIRST went live (ISO). Non-null means the version is frozen: it can never be edited again — not even after unpublishing — edit by forking (by forking). null means it never went live — OR its first publish predates this stamp (older versions were never backfilled), so on old data null is not proof it never shipped. This is history, not live state: for "is it live NOW, where" read the content's environments[]; for who published what when, the publish history (available through the MCP).

themeId
string | null
required
questions
object[] | null
required
updatedAt
string<date-time>
required
createdAt
string<date-time>
required
steps
object[]
startRules
object
hideRules
object

While when matches, on-screen content of this version is hidden — the session is SUSPENDED, not ended: when the conditions stop matching the same session reappears at the same step. Use start-rule conditions to keep content from starting; use hide rules to blank it in specific places (e.g. a settings page).

data
any

Decompiled type-specific body for non-flow content — the same six per-type shapes as the write data (that schema is the field dictionary), fully populated on read. Present only when the data expand is requested; a flow has no data — its body is steps.

scheduledAt
string

Announcement versions only: the "announcement time" gating feed visibility and ordering. Absent on other content types and until set (publish stamps it when the author left it null, so published announcements always carry one).