Content approval flows
The review a page goes through between being drafted and being fit to publish: the steps, what each move is called, and who may make it.
List flows
Returns the workspace's content approval flows, each with its steps. Which flow reviews a given site is the site's own setting — see PUT /sites/{id}/approval-flow — and sites that have not chosen take the flow marked sm_default.
query Parameters
cursor^[A-Za-z0-9_-]+$limitoffsetsm_activesort^-?[a-z0-9_]+$Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
List flows › Responses
Success
sm_idsm_activesm_createdsm_updatedsm_namesm_defaultThe flow governing every site that has not chosen one of its own. At most one flow is the default.
Retired for content flows: pages move by selecting a step directly, gated by the step's own si_roles.enter. Old definitions may still carry authored moves here; nothing reads them.
sm_metadataThe flow's steps, in the order pages move through them.
Create a flow
Defines review steps pages can move through before publishing. Pages reaching draft enter at the initial step, and reaching the final step is what marks a page approved. The workspace's first flow becomes the default — governing every site that has not chosen its own — unless sm_default says otherwise; marking a later flow default takes the role from the previous holder.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Create a flow › Responses
Created
sm_idsm_activesm_createdsm_updatedsm_namesm_defaultThe flow governing every site that has not chosen one of its own. At most one flow is the default.
Retired for content flows: pages move by selecting a step directly, gated by the step's own si_roles.enter. Old definitions may still carry authored moves here; nothing reads them.
sm_metadataThe flow's steps, in the order pages move through them.
Get a flow
Returns the flow with its steps, each carrying who may move a page into it and whether doing so asks for a note.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get a flow › Responses
Success
sm_idsm_activesm_createdsm_updatedsm_namesm_defaultThe flow governing every site that has not chosen one of its own. At most one flow is the default.
Retired for content flows: pages move by selecting a step directly, gated by the step's own si_roles.enter. Old definitions may still carry authored moves here; nothing reads them.
sm_metadataThe flow's steps, in the order pages move through them.
Update a flow
Replaces the flow's steps, their gates included. Pages sitting in a step the new definition drops keep it until something moves them, so their history still reads correctly.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Update a flow › Responses
Success
sm_idsm_activesm_createdsm_updatedsm_namesm_defaultThe flow governing every site that has not chosen one of its own. At most one flow is the default.
Retired for content flows: pages move by selecting a step directly, gated by the step's own si_roles.enter. Old definitions may still carry authored moves here; nothing reads them.
sm_metadataThe flow's steps, in the order pages move through them.
Delete a flow
Sites that chose this flow go back to the workspace default; sites governed by it as the default lose review, and approving a page there goes back to being a single step. Pages keep the step they are in.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Delete a flow › Responses
Success. No content.
