Update a step

Update editable fields on a step.

Updatable fields:

  • body, cost, dependencies, feedback_config, instructions
  • looping, parts, published, skills
  • subtask_id, subtask_pid, tags, title
  • translations (per-language overlay)

type and task are not changeable via PATCH. To change either, delete and recreate.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

GUID identifier (32-char hex). Used by /expertisetasks/{id} and /expertisesteps/{id}.

Body Params

Editable fields accepted on POST /expertisesteps and PATCH /expertisesteps/{id}.

On PATCH, only the SCENARIO_UPDATE subset is honored: body, cost, dependencies, feedback_config, instructions, looping, parts, published, skills, subtask_id, subtask_pid, tags, title, translations. task and type cannot be changed.

Use the translations field to provide pre-translated content alongside the English source. Each language overlay is written to expertise_translation with locked: 1 by default. The auto-translate pipeline will not overwrite caller-supplied translations.

string

Parent task GUID. Required on POST. The referenced task must exist in the
caller's account; cross-account references are rejected. Cannot be changed via PATCH.

integer

Required on POST. Cannot be changed via PATCH.

integer
enum

Step type. Cannot be changed via PATCH.

  • 1: Solution
  • 2: Observation (requires feedback_config)
  • 3: Information
  • 4: Subtask (requires subtask_id + subtask_pid)
  • 5: End
  • 6: IDP (standalone solution; aka Knowledge entry)
Allowed:
string
length ≤ 400

Step title. Required for all step types except subtask (type=4), where it is auto-synced from the referenced subtask's name.

string | null

HTML body content for the step. Defaults excluded from list responses; request ?expand=body to include.

instructions
array of objects | null

Ordered instruction items rendered alongside the step body.

instructions
integer
enum
Defaults to 1
Allowed:
integer
Defaults to 0

Severity / cost weighting (0 for non-solution steps; 2+ for solutions).

dependencies
array | null

Dependency rules with nested AND/OR logic.
Root element is the operator ("AND" or "OR"), followed by an array of condition objects or nested groups.
Each condition: {variable, operator, targets, path}.

dependencies
feedback_config
array | null

Decision-tree branching config. Only meaningful on observation (type=2) steps.
Shape: array of length 1 with { name, type: 'enum', linked?, values: [{ key, value, link?, taskJson? }, ...] }.

Linked managed subtasks (import-only): when feedback_config[0].linked = true, each value auto-creates a managed linked subtask (expertise_task.type = 1) and a wiring subtask step in the parent. Values may include an embedded taskJson to pre-populate the subtask's inner steps.

System-managed invariants:

  • Linked task name is synced from the value's value text. taskJson.name is ignored.
  • Wiring step title is synced from the value's value text.

Flipping linked: true → false promotes the managed subtasks to standalone tasks (type=0) and clears the wiring steps' link fields. Wiring steps remain in the parent's steps array.

feedback_config
looping
object | null

Optional loop config (alias, array, iterations).

string

Target task GUID — required when type is 4. Must belong to the caller's account.

integer

Target task's product ID — required when type is 4. May be a different product within the same account.

string

Optional. On POST, insert this new step's GUID after prevstep in the parent task's
steps ordering array. If omitted (or prevstep is not in the array), the new
step is appended to the end. Not used on PATCH.

tags
array of strings
tags
parts
array of strings
parts
skills
array of strings
skills
translations
object

Per-language pre-translated overlays. Keys are language codes (es, fr, de, etc.).
Each value is a partial step shape carrying any of title, body, instructions,
feedback_config, locked. Translation rows are written with locked: 1 by default
so the auto-translate pipeline doesn't overwrite caller-supplied text. To explicitly
allow auto-overwrite, send locked: 0 for that language.

Responses

Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json