Skip to main content
PATCH
Error

Authorizations

Authorization
string
header
required

A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.

Headers

X-Organization-Id
string

The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.

Path Parameters

id
string<uuid>
required
stepID
string<uuid>
required

Body

application/json

What a step SAYS and where it SENDS somebody. What satisfies it — kind, event_type, feature_key — is deliberately absent: people hold progress against this step, and changing its meaning would leave rows claiming they did something nobody asked of them. Re-aiming a step is deleting it and adding another. A destination carries none of that weight, so a wrong link is fixed here.

title
string
Maximum string length: 200
position
integer
action_url
string

Optional. Where the line sends somebody when they click it: a path starting with / (your own app) or an absolute http(s) URL.

Clicking never satisfies a step — kind decides that. A step with no destination is a line the reader has to go find the screen for themselves.

An explicit empty string removes it. Absent leaves it alone.

Maximum string length: 2048
action_label
string

Optional. The word on the control; without it the step's title becomes the link. Set alone, with no action_url, it declares an action your own page handles through the SDK's onStepAction — a control that does nothing until you wire that callback.

An explicit empty string removes it. Absent leaves it alone.

Maximum string length: 40
hint_pending
string | null

What it says on hover while it is NOT done — a reason or an instruction the title has no room for.

Two texts and not one because the same line means different things before and after: pending, the useful sentence is an instruction; done, an instruction is noise and what is useful is what it bought. A single field would force a sentence that is wrong half the time.

Maximum string length: 200
hint_done
string | null

What it says on hover once it IS done. Null is the common case and reads correctly — nothing on hover about a thing somebody already did.

Maximum string length: 200

Response

The step as it now stands.

step
object

One line of the list. kind decides which of event_type and feature_key carries the rule; the other is always null. action_url and action_label are what happens when somebody clicks it, and neither has anything to do with what satisfies it.