Skip to main content
POST
/
v1
/
simulation
/
plan
JavaScript
import Roark from '@roarkanalytics/sdk';

const client = new Roark({
  bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted
});

const simulationRunPlan = await client.simulationRunPlan.create({
  agentEndpoints: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],
  direction: 'INBOUND',
  evaluators: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],
  maxSimulationDurationSeconds: 300,
  name: 'My Run Plan',
  personas: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],
  scenarios: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],
});

console.log(simulationRunPlan.data);
{
  "data": {
    "runPlan": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>",
      "direction": "INBOUND",
      "iterationCount": 123,
      "maxConcurrentJobs": 123,
      "maxSimulationDurationSeconds": 123,
      "silenceTimeoutSeconds": 123,
      "endCallPhrases": [
        "<string>"
      ],
      "executionMode": "PARALLEL",
      "scenarios": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        }
      ],
      "personas": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        }
      ],
      "agentEndpoints": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        }
      ],
      "evaluators": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        }
      ],
      "testCaseCount": 123,
      "createdAt": "<string>",
      "updatedAt": "<string>",
      "description": "<string>"
    },
    "runPlanJob": {
      "simulationRunPlanId": "9a8b7c6d-5e4f-3210-abcd-ef9876543210",
      "simulationRunPlanJobId": "7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f",
      "status": "PENDING",
      "createdAt": "2024-01-15T10:30:00Z"
    }
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Input for creating a new simulation run plan

name
string
required

Name of the run plan

Minimum string length: 1
Example:

"My Run Plan"

direction
enum<string>
required

Direction of the simulation (INBOUND or OUTBOUND)

Available options:
INBOUND,
OUTBOUND
Example:

"INBOUND"

maxSimulationDurationSeconds
integer
required

Maximum duration in seconds for each simulation

Required range: x >= 1
Example:

300

scenarios
object[]
required

Scenarios to include in this run plan. The same scenario ID can appear multiple times with different variables.

Minimum array length: 1
personas
object[]
required

Personas to include in this run plan

Minimum array length: 1
agentEndpoints
object[]
required

Agent endpoints to include in this run plan

Minimum array length: 1
evaluators
object[]
required

Evaluators to include in this run plan

Minimum array length: 1
description
string

Description of the run plan

Example:

"A run plan for testing inbound calls"

iterationCount
integer
default:1

Number of iterations to run for each test case. Must be 1 for OUTBOUND direction.

Required range: x >= 1
Example:

1

maxConcurrentJobs
integer
default:5

Maximum number of concurrent simulation jobs

Required range: x >= 1
Example:

5

silenceTimeoutSeconds
integer
default:30

Timeout in seconds for silence detection

Required range: x >= 1
Example:

30

endCallPhrases
string[]

Phrases that trigger end of call. Empty array disables the feature.

Example:
["goodbye"]
executionMode
enum<string>
default:PARALLEL

Execution mode (PARALLEL or SEQUENTIAL)

Available options:
PARALLEL,
SEQUENTIAL_SAME_RUN_PLAN,
SEQUENTIAL_PROJECT
Example:

"PARALLEL"

autoRun
boolean
default:false

Whether to automatically trigger a job after creating the run plan

Example:

false

Response

The created run plan

data
object
required

Response when creating a run plan, optionally including a triggered job