---
title: "Get Draft Detail"
method: GET
path: "/admin/onboarding/{user_id}"
tags: ["admin-onboarding"]
---

# Get Draft Detail

`GET /admin/onboarding/{user_id}`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/admin/onboarding/{user_id}`
- Auth: none declared

One person's wizard state, in the wizard's own words (admin surface P5).

``GET /onboarding/draft`` is self-keyed by design, so before this an admin could see
that somebody was stuck and not what on — which made the funnel unactionable.

The checklist is ``render_progress_block`` **verbatim**, deliberately: an admin view
that paraphrased it would give the operator different words from the ones the customer
is reading in their own help chat, and the support call becomes two people describing
different screens.

``uncomputed`` names the context keys the server cannot derive from the stored draft
blob — the wizard's help chat receives a context the *browser* assembles, and three of
its keys need gating logic that would have to be duplicated (and would then drift).
Those steps read vaguer here than on the user's own rail; the field is sent so the UI
can say so rather than presenting a partial checklist as complete.

## Path parameters

- `user_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- DraftDetailOut
  - `user_id` string, required
  - `email` string, required
  - `current_step` string, required
  - `updated_at` string, date-time, required
  - `step_entered_at` string, date-time, nullable, required
  - `progress_block` string, required
  - `steps` StepProgressOut[], required
    - `step` string, required
    - `label` string, required
    - `state` string, required
    - `optional` boolean, required
    - `missing` string[], required
    - `could_add` string[], required
  - `next_action` string, required
  - `blocker_codes` string[], required
  - `blockers_known` boolean, required
  - `blockers_recorded_at` string, date-time, nullable, required
  - `uncomputed` string[], required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
