Update a run plan
Updates an existing simulation run plan by its ID.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the run plan to update
Body
Input for updating an existing simulation run plan
Whether this plan is hidden from GET /v1/simulation/plan.
A run started without saveAsPlan creates a hidden plan to carry it. Send
{ "name": "...", "isHidden": false } to keep that configuration as a reusable plan,
which is what the app does when you save a one-off run.
Name of the run plan
1Description of the run plan
Direction of the simulation (INBOUND or OUTBOUND)
INBOUND, OUTBOUND Number of iterations to run for each test case (1-10000)
1 <= x <= 10000Maximum number of concurrent simulation jobs
x >= 1Maximum duration in seconds for each simulation
x >= 1Timeout in seconds for silence detection
x >= 1How many more times to run a test case when the agent under test never responds: it never speaks on a call or never replies in a chat (0-10). 0 turns retries off. Failed checks and failures on Roark’s side are never retried.
Each retry is a separate attempt, billed like any other, so a plan retrying N times can place up to N + 1 calls per test case. Every silent attempt stays on the run with its own call; the run settles once each test case has a final attempt, and the agent never spoke verdict is judged on each test case’s last attempt.
0 <= x <= 10Seconds a retry waits before it dials (30-600). Only used when maxNoResponseRetries is above 0.
30 <= x <= 600Phrases that trigger end of call. Empty array disables the feature.
Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.
Execution mode (PARALLEL or SEQUENTIAL)
PARALLEL, SEQUENTIAL_SAME_RUN_PLAN, SEQUENTIAL_PROJECT Deprecated: use flows instead. Replaces the scenarios on this run plan. Omit to leave them unchanged; send an empty array to detach them all, which is how a scenario-based plan is moved over to flows.
Replaces the customer flows attached to this run plan. Omit to leave them unchanged; send an empty array to detach them all.
Personas to include in this run plan
1Agent endpoints to include in this run plan
1Metric definitions to include in this run plan. Reference each by id (UUID) or slug.
1Whether to merge the customer's own live recording into each simulation of this plan.
Whether to also collect each attached flow's own metrics, on top of this plan's list.
Whether to let the run add metrics by itself off the attached flows. See POST /v1/simulation/plan.
The property this plan investigates. Send null to clear the comparison; omit the field to
leave it unchanged. See POST /v1/simulation/plan.
The pair moves together. Sending comparisonProperty without comparisonBaseline keeps the
stored baseline when the property is unchanged and the baseline is still one of the values
being run. Otherwise it becomes the new property's norm, or null when that norm is not
being run either, because a baseline is a value of one specific property.
ACCENT, AGE, BACKGROUND_NOISE, BACKGROUND_NOISE_VOLUME, BASE_EMOTION, CONFIRMATION_STYLE, GENDER, INTENT_CLARITY, LANGUAGE, INTERRUPTION, MEMORY_RELIABILITY, RESPONSE_TIMING, SPEECH_CLARITY, SPEECH_PACE The reference value, shown first in the results. See POST /v1/simulation/plan.
A real value cannot be sent on its own: the property it belongs to decides which values are
legal, and an omitted property means "leave unchanged", which this endpoint cannot check a
baseline against. Send comparisonProperty with it, or get a 400.
null on its own IS allowed, and clears just the baseline while leaving the property set.
Nothing needs validating when clearing, and a property with no baseline is a real state: the
report falls back to that property's own norm, and GENDER has no norm to fall back to.
The arms to run. See POST /v1/simulation/plan.
Omitting it keeps the arms the plan already has, pins included, so an edit that only renames
the plan never widens a sweep you deliberately narrowed, and never multiplies what it costs.
Send it with comparisonProperty and flows, which the arms are rebuilt from.
1A value of comparisonProperty, run as its plain arm.
1Response
The updated run plan
A simulation run plan defining the test matrix