> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frayme.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit a case from the builder

> Run a draft or an active version against a payload, as a dry run or for real, and follow the case.

export const Clip = ({id, caption}) => <Frame caption={caption}>
    <video controls muted playsInline preload="metadata" className="w-full aspect-video rounded-xl" poster={`/videos/guides/${id}.poster.png`} src={`/videos/guides/${id}.mp4`} />
  </Frame>;

export const Shot = ({id, alt, caption}) => <Frame caption={caption}>
    <img className="block dark:hidden rounded-lg" src={`/images/guides/${id}.light.png`} alt={alt} loading="lazy" decoding="async" />
    <img className="hidden dark:block rounded-lg" src={`/images/guides/${id}.dark.png`} alt={alt} loading="lazy" decoding="async" />
  </Frame>;

**Submit case** in the toolbar runs the flow on a payload you write. It is disabled while the canvas has unsaved edits: save first so the run exercises what you see. Submitting needs `cases:write`, which the engineer template includes.

<Shot id="engineer/submit-01-dialog" alt="Submit case dialog" caption="Pick the version, edit the payload, submit." />

<Clip id="engineer/dry-run-and-inspect" caption="Submit a dry run and open it in Execution history." />

## Choose the version

**Run against** lists the candidate versions with their roles (active, draft). If the canvas has edits that are not in any saved version, an amber note says so.

## Edit the payload

The JSON editor is prefilled from the Input node's schema. The payload must be a JSON object and must match the schema, or the submission is rejected.

## Dry run vs real execution

By default the run is a **dry run**: the workflow executes on the engine with side effects suppressed (no provider calls, no information request sent) and the execution is flagged as a dry run. Tick **Execute for real (non-dry-run)** to create a live case that reaches the queue and your webhooks. The note under the checkbox explains how pinned mock values behave in your environment.

<Shot id="engineer/submit-03-real-run" alt="Execute for real checked" caption="A real run creates a live case." />

## Submit and follow the case

The toast shows **Dry-run submitted** or **Real case submitted** with a **Submitted:** link carrying the new case id into the Decision Console. **Reset to template** restores the schema-derived payload.

## Replay a past run

From [Execution history](/guides/engineer/workflow-executions), **Replay** opens this dialog prefilled with that run's payload, against the version open in the builder.
