Skip to main content
Updates an existing simulation run plan by its ID.
Calls PUT /v1/simulation/plan/{planId}

Arguments

string
required
The ID of the run plan to update.

Options

switch
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.
string
Name of the run plan.
string
Description of the run plan.
string
Direction of the simulation (INBOUND or OUTBOUND). One of INBOUND, OUTBOUND
integer
Number of iterations to run for each test case (1-10000).
integer
Maximum number of concurrent simulation jobs.
integer
Maximum duration in seconds for each simulation.
integer
Timeout in seconds for silence detection.
integer
How 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.
integer
Seconds a retry waits before it dials (30-600). Only used when maxNoResponseRetries is above 0.
array
Phrases that trigger end of call. Empty array disables the feature. Repeatable.
array
Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature. Repeatable.
string
Execution mode (PARALLEL or SEQUENTIAL). One of PARALLEL, SEQUENTIAL_SAME_RUN_PLAN, SEQUENTIAL_PROJECT
array
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.
array
Replaces the customer flows attached to this run plan. Omit to leave them unchanged; send an empty array to detach them all.
array
Personas to include in this run plan.
array
Agent endpoints to include in this run plan.
array
Metric definitions to include in this run plan. Reference each by id (UUID) or slug.
switch
Whether to merge the customer’s own live recording into each simulation of this plan.
switch
Whether to also collect each attached flow’s own metrics, on top of this plan’s list.
switch
Whether to let the run add metrics by itself off the attached flows. See POST /v1/simulation/plan.
string
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. One of ACCENT, AGE, BACKGROUND_NOISE, BACKGROUND_NOISE_VOLUME, BASE_EMOTION, CONFIRMATION_STYLE, GENDER, INTENT_CLARITY, LANGUAGE, INTERRUPTION, MEMORY_RELIABILITY, RESPONSE_TIMING, SPEECH_CLARITY, SPEECH_PACE
string
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.
array
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.

Example

Every command also takes the global options and sets one of the exit codes.