---
title: "Edit a coaching scenario"
method: PATCH
path: "/coaching/scenarios/{id}"
tags: ["Coaching"]
---

# Edit a coaching scenario

`PATCH /coaching/scenarios/{id}`

## Request

- Base URL: `https://developer.solofire.com/v1`
- URL: `https://developer.solofire.com/v1/coaching/scenarios/{id}`
- Auth: HTTP bearer

Requires the `coaching.write` scope.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `name` string: Scenario title shown to reps.
  - `description` string: The briefing a rep reads before starting.
  - `persona_id` string: A saved persona (see GET /v1/coaching/personas). Its role and description are copied in, and folder_ids / file_ids must stay within its reference content. Required unless persona_role is given.
  - `persona_role` string: A free-text persona role instead of persona_id. No reference-content restriction applies.
  - `persona_description` string: Free-text persona description (with persona_role).
  - `persona_disposition` string: green (friendly), yellow (neutral, default) or red (hostile).
  - `mode` string: sell (the AI buys, default) or buy (the AI sells to the rep).
  - `scenario` string: cold_call, discovery (default), pricing, objection or save.
  - `difficulty` string: shadow, standard (default) or interruption.
  - `industry_context` string: Industry or account context for the conversation.
  - `product_line` string: Product line the session is about; drives retrieval.
  - `language` string: Language tag such as en-US (default), es-MX, pt-BR.
  - `delivery` string: voice (default) or avatar.
  - `live_avatar_id` string: Avatar pinned for avatar delivery; omit to let the rep choose.
  - `folder_ids` unknown[]: Folders (recursive) the AI references. With persona_id these must be the persona's folders or their descendants.
    - unknown
  - `file_ids` unknown[]: Files the AI references. With persona_id these must be the persona's files or files inside its folders.
    - unknown
  - `approved_content_only` boolean: Treat the reference content as the only source of truth: the persona challenges unsupported product claims, the rep is flagged live and the scorecard marks them unverified. Default false.
  - `scorecard_criteria` unknown[]: Scenario-specific grading checklist as {text, weight_percent}. Weights sum to at most 100. Empty falls back to the configuration's criteria.
    - unknown
  - `reminder_frequency_days` integer: Reminder cadence for assignees who have not practised: 3, 7 (default), 14 or 30.
  - `max_reminders` integer: Reminder cap, 0 to 10. Default 4.

## Response `200`

Success

- object

## Other responses

- `401`: `unauthorized` No credential was presented. `invalid_token` The API key is unknown, revoked or malformed. `token_expired` The API key has passed its expiry.
- `403`: `insufficient_scope` The credential does not carry the required scope. `forbidden` The member this credential acts as lacks the permission. `feature_not_enabled` API access is not enabled for this company.
- `404`: `not_found` No such resource, or it is outside this credential’s scope.
- `405`: `method_not_allowed` The path exists but not for this method.
- `413`: `payload_too_large` The request body is too large.
- `422`: `validation_failed` A parameter or body field is invalid.
- `429`: `rate_limited` The credential is over its request budget.
- `500`: `internal_error` Something went wrong on our side.

---

[API](https://skmtc.dev/solofire/apis/solofire-api.md) · [All operations](https://skmtc.dev/solofire/apis/solofire-api/llms.txt) · [OpenAPI document](https://skmtc.dev/solofire/apis/solofire-api/revisions/23e387532175?raw)
