A valid request URL is required to generate request examples{
"checklist": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"active": true,
"dismissals": 123,
"hidden": 123,
"segment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"unlocks_after": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selectable": true,
"snooze_days": 7,
"hint_pending": "<string>",
"hint_done": "<string>",
"hint_locked": "<string>",
"created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"steps": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "<string>",
"title": "<string>",
"kind": "event",
"event_type": "<string>",
"feature_key": "<string>",
"action_url": "<string>",
"action_label": "<string>",
"hint_pending": "<string>",
"hint_done": "<string>",
"position": 123,
"sightings": 123,
"last_seen": "2023-11-07T05:31:56Z"
}
]
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Update an onboarding checklist
Requires engagement:manage. Partial: an omitted field keeps its value.
segment_id is the one where omitted and null differ — omitting leaves the audience alone, sending null widens the checklist to everybody. A checklist cannot move between environments, so a new segment_id is validated against the one it already lives in.
active: false is the off switch, and it is reversible: turning it off stops the widget rendering it and stops progress being recorded, and turning it back on resumes both. Nobody’s existing progress is touched either way.
A valid request URL is required to generate request examples{
"checklist": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"active": true,
"dismissals": 123,
"hidden": 123,
"segment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"unlocks_after": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selectable": true,
"snooze_days": 7,
"hint_pending": "<string>",
"hint_done": "<string>",
"hint_locked": "<string>",
"created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"steps": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "<string>",
"title": "<string>",
"kind": "event",
"event_type": "<string>",
"feature_key": "<string>",
"action_url": "<string>",
"action_label": "<string>",
"hint_pending": "<string>",
"hint_done": "<string>",
"position": 123,
"sightings": 123,
"last_seen": "2023-11-07T05:31:56Z"
}
]
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Authorizations
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
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
Body
120null clears the audience — the checklist applies to everybody.
The checklist this one waits on. null clears it. Same environment, and a cycle is a 400.
Whether this one is a choice the person makes rather than a decision the segment makes for them.
How many days a close holds for. After that the checklist comes back.
0 means a close lasts forever — the right value for a checklist that really is a one-time offer, and the behaviour every checklist had before this field existed.
Seven by default, because pressing X on a setup guide almost never means "never help me again"; it means "not now". Changing this never moves a snooze already running: the end is computed when somebody closes the card and stored, so the promise made to that person is the one that is kept.
0 <= x <= 365What 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.
200What 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.
200What the heading says on hover while the checklist is LOCKED — the third state a heading has and a step does not.
The widget already shows a padlock and the name of what it waits on, and a name is a door rather than a reason. This is the reason.
200Response
The checklist as it now stands.
An onboarding list, aimed at a segment and never at a filter of its own. It counts from the moment it is turned on: a fact that happened before it existed does not count, because the bus is not an event store and a rule that applied to some steps and not others would produce a funnel whose numbers cannot be compared.
Show child attributes
Show child attributes