Create a run plan
Creates a new simulation run plan.
To run a simulation, use POST /v1/simulation/run instead: it starts a run from a plan or from an inline configuration, and takes runtime variables. Create a plan here when you want a reusable, named one to run later.
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',
maxSimulationDurationSeconds: 300,
metrics: [{}],
name: 'My Run Plan',
});
console.log(simulationRunPlan.data);import os
from roark_analytics import Roark
client = Roark(
bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted
)
simulation_run_plan = client.simulation_run_plan.create(
agent_endpoints=[{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
}],
direction="INBOUND",
max_simulation_duration_seconds=300,
metrics=[{}],
name="My Run Plan",
)
print(simulation_run_plan.data)curl --request POST \
--url https://api.roark.ai/v1/simulation/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Run Plan",
"direction": "INBOUND",
"maxSimulationDurationSeconds": 300,
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"metricId": "<string>"
}
],
"description": "A run plan for testing inbound calls",
"iterationCount": 1,
"maxConcurrentJobs": 5,
"silenceTimeoutSeconds": 30,
"endCallPhrases": [
"goodbye"
],
"endCallReasons": [
"Order has been confirmed by the agent"
],
"executionMode": "PARALLEL",
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"customerName": "John Doe",
"appointmentDate": "2024-02-15"
}
}
],
"flows": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"happyPath": true,
"edgeCases": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"variables": {
"tier": "premium"
}
}
]
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"autoRun": false
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/simulation/plan",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Run Plan',
'direction' => 'INBOUND',
'maxSimulationDurationSeconds' => 300,
'agentEndpoints' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'metrics' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'slug' => '<string>',
'metricId' => '<string>'
]
],
'description' => 'A run plan for testing inbound calls',
'iterationCount' => 1,
'maxConcurrentJobs' => 5,
'silenceTimeoutSeconds' => 30,
'endCallPhrases' => [
'goodbye'
],
'endCallReasons' => [
'Order has been confirmed by the agent'
],
'executionMode' => 'PARALLEL',
'scenarios' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'variables' => [
'customerName' => 'John Doe',
'appointmentDate' => '2024-02-15'
]
]
],
'flows' => [
[
'id' => '550e8400-e29b-41d4-a716-446655440000',
'happyPath' => true,
'edgeCases' => [
[
'id' => '7c9e6679-7425-40de-944b-e07fc1f90ae7',
'variables' => [
'tier' => 'premium'
]
]
]
]
],
'personas' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'autoRun' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.roark.ai/v1/simulation/plan"
payload := strings.NewReader("{\n \"name\": \"My Run Plan\",\n \"direction\": \"INBOUND\",\n \"maxSimulationDurationSeconds\": 300,\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ],\n \"description\": \"A run plan for testing inbound calls\",\n \"iterationCount\": 1,\n \"maxConcurrentJobs\": 5,\n \"silenceTimeoutSeconds\": 30,\n \"endCallPhrases\": [\n \"goodbye\"\n ],\n \"endCallReasons\": [\n \"Order has been confirmed by the agent\"\n ],\n \"executionMode\": \"PARALLEL\",\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"customerName\": \"John Doe\",\n \"appointmentDate\": \"2024-02-15\"\n }\n }\n ],\n \"flows\": [\n {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"happyPath\": true,\n \"edgeCases\": [\n {\n \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"variables\": {\n \"tier\": \"premium\"\n }\n }\n ]\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"autoRun\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.roark.ai/v1/simulation/plan")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My Run Plan\",\n \"direction\": \"INBOUND\",\n \"maxSimulationDurationSeconds\": 300,\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ],\n \"description\": \"A run plan for testing inbound calls\",\n \"iterationCount\": 1,\n \"maxConcurrentJobs\": 5,\n \"silenceTimeoutSeconds\": 30,\n \"endCallPhrases\": [\n \"goodbye\"\n ],\n \"endCallReasons\": [\n \"Order has been confirmed by the agent\"\n ],\n \"executionMode\": \"PARALLEL\",\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"customerName\": \"John Doe\",\n \"appointmentDate\": \"2024-02-15\"\n }\n }\n ],\n \"flows\": [\n {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"happyPath\": true,\n \"edgeCases\": [\n {\n \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"variables\": {\n \"tier\": \"premium\"\n }\n }\n ]\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"autoRun\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/simulation/plan")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My Run Plan\",\n \"direction\": \"INBOUND\",\n \"maxSimulationDurationSeconds\": 300,\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ],\n \"description\": \"A run plan for testing inbound calls\",\n \"iterationCount\": 1,\n \"maxConcurrentJobs\": 5,\n \"silenceTimeoutSeconds\": 30,\n \"endCallPhrases\": [\n \"goodbye\"\n ],\n \"endCallReasons\": [\n \"Order has been confirmed by the agent\"\n ],\n \"executionMode\": \"PARALLEL\",\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"customerName\": \"John Doe\",\n \"appointmentDate\": \"2024-02-15\"\n }\n }\n ],\n \"flows\": [\n {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"happyPath\": true,\n \"edgeCases\": [\n {\n \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"variables\": {\n \"tier\": \"premium\"\n }\n }\n ]\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"autoRun\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"runPlan": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"direction": "INBOUND",
"iterationCount": 123,
"maxConcurrentJobs": 123,
"maxSimulationDurationSeconds": 123,
"silenceTimeoutSeconds": 123,
"endCallPhrases": [
"<string>"
],
"endCallReasons": [
"<string>"
],
"executionMode": "PARALLEL",
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"customerName": "John Doe",
"appointmentDate": "2024-02-15"
}
}
],
"flows": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"happyPath": true,
"edgeCases": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"variables": {
"tier": "premium"
}
}
]
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"evaluators": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"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"
}
}
}{
"type": "validation",
"code": "invalid_parameter",
"message": "The request was invalid",
"param": "email"
}{
"type": "authentication",
"code": "unauthorized",
"message": "Authentication required"
}{
"type": "forbidden",
"code": "permission_denied",
"message": "You do not have permission to access this resource"
}{
"type": "rate_limit",
"code": "too_many_requests",
"message": "Rate limit exceeded"
}{
"type": "internal",
"code": "internal_error",
"message": "Internal server error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Input for creating a new simulation run plan
Name of the run plan
1"My Run Plan"
Direction of the simulation (INBOUND or OUTBOUND)
INBOUND, OUTBOUND "INBOUND"
Maximum duration in seconds for each simulation
x >= 1300
Agent endpoints to include in this run plan
1Show child attributes
Show child attributes
Metric definitions to include in this run plan. Reference each by id (UUID) or slug.
1Show child attributes
Show child attributes
Description of the run plan
"A run plan for testing inbound calls"
Number of iterations to run for each test case (1-10000)
1 <= x <= 100001
Maximum number of concurrent simulation jobs
x >= 15
Timeout in seconds for silence detection
x >= 130
Phrases that trigger end of call. Empty array disables the feature.
["goodbye"]
Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.
["Order has been confirmed by the agent"]
Execution mode (PARALLEL or SEQUENTIAL)
PARALLEL, SEQUENTIAL_SAME_RUN_PLAN, SEQUENTIAL_PROJECT "PARALLEL"
Deprecated: use flows instead. Scenarios to include in this run plan. The same scenario ID can appear multiple times with different variables.
1Show child attributes
Show child attributes
Customer flows to include in this run plan. The same flow can appear more than once with a different persona override or different variables.
1Show child attributes
Show child attributes
Personas to include in this run plan. Required with scenarios; ignored with flows, where each variant carries its own persona.
1Show child attributes
Show child attributes
Deprecated: use POST /v1/simulation/run, which starts a run and accepts runtime variables as well. This flag runs the plan with only the values pinned on it.
false
Response
The created run plan
Response when creating a run plan, optionally including a triggered job
Show child attributes
Show child attributes
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',
maxSimulationDurationSeconds: 300,
metrics: [{}],
name: 'My Run Plan',
});
console.log(simulationRunPlan.data);import os
from roark_analytics import Roark
client = Roark(
bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted
)
simulation_run_plan = client.simulation_run_plan.create(
agent_endpoints=[{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
}],
direction="INBOUND",
max_simulation_duration_seconds=300,
metrics=[{}],
name="My Run Plan",
)
print(simulation_run_plan.data)curl --request POST \
--url https://api.roark.ai/v1/simulation/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Run Plan",
"direction": "INBOUND",
"maxSimulationDurationSeconds": 300,
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"metricId": "<string>"
}
],
"description": "A run plan for testing inbound calls",
"iterationCount": 1,
"maxConcurrentJobs": 5,
"silenceTimeoutSeconds": 30,
"endCallPhrases": [
"goodbye"
],
"endCallReasons": [
"Order has been confirmed by the agent"
],
"executionMode": "PARALLEL",
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"customerName": "John Doe",
"appointmentDate": "2024-02-15"
}
}
],
"flows": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"happyPath": true,
"edgeCases": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"variables": {
"tier": "premium"
}
}
]
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"autoRun": false
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/simulation/plan",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Run Plan',
'direction' => 'INBOUND',
'maxSimulationDurationSeconds' => 300,
'agentEndpoints' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'metrics' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'slug' => '<string>',
'metricId' => '<string>'
]
],
'description' => 'A run plan for testing inbound calls',
'iterationCount' => 1,
'maxConcurrentJobs' => 5,
'silenceTimeoutSeconds' => 30,
'endCallPhrases' => [
'goodbye'
],
'endCallReasons' => [
'Order has been confirmed by the agent'
],
'executionMode' => 'PARALLEL',
'scenarios' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'variables' => [
'customerName' => 'John Doe',
'appointmentDate' => '2024-02-15'
]
]
],
'flows' => [
[
'id' => '550e8400-e29b-41d4-a716-446655440000',
'happyPath' => true,
'edgeCases' => [
[
'id' => '7c9e6679-7425-40de-944b-e07fc1f90ae7',
'variables' => [
'tier' => 'premium'
]
]
]
]
],
'personas' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'autoRun' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.roark.ai/v1/simulation/plan"
payload := strings.NewReader("{\n \"name\": \"My Run Plan\",\n \"direction\": \"INBOUND\",\n \"maxSimulationDurationSeconds\": 300,\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ],\n \"description\": \"A run plan for testing inbound calls\",\n \"iterationCount\": 1,\n \"maxConcurrentJobs\": 5,\n \"silenceTimeoutSeconds\": 30,\n \"endCallPhrases\": [\n \"goodbye\"\n ],\n \"endCallReasons\": [\n \"Order has been confirmed by the agent\"\n ],\n \"executionMode\": \"PARALLEL\",\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"customerName\": \"John Doe\",\n \"appointmentDate\": \"2024-02-15\"\n }\n }\n ],\n \"flows\": [\n {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"happyPath\": true,\n \"edgeCases\": [\n {\n \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"variables\": {\n \"tier\": \"premium\"\n }\n }\n ]\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"autoRun\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.roark.ai/v1/simulation/plan")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My Run Plan\",\n \"direction\": \"INBOUND\",\n \"maxSimulationDurationSeconds\": 300,\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ],\n \"description\": \"A run plan for testing inbound calls\",\n \"iterationCount\": 1,\n \"maxConcurrentJobs\": 5,\n \"silenceTimeoutSeconds\": 30,\n \"endCallPhrases\": [\n \"goodbye\"\n ],\n \"endCallReasons\": [\n \"Order has been confirmed by the agent\"\n ],\n \"executionMode\": \"PARALLEL\",\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"customerName\": \"John Doe\",\n \"appointmentDate\": \"2024-02-15\"\n }\n }\n ],\n \"flows\": [\n {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"happyPath\": true,\n \"edgeCases\": [\n {\n \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"variables\": {\n \"tier\": \"premium\"\n }\n }\n ]\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"autoRun\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/simulation/plan")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My Run Plan\",\n \"direction\": \"INBOUND\",\n \"maxSimulationDurationSeconds\": 300,\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ],\n \"description\": \"A run plan for testing inbound calls\",\n \"iterationCount\": 1,\n \"maxConcurrentJobs\": 5,\n \"silenceTimeoutSeconds\": 30,\n \"endCallPhrases\": [\n \"goodbye\"\n ],\n \"endCallReasons\": [\n \"Order has been confirmed by the agent\"\n ],\n \"executionMode\": \"PARALLEL\",\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {\n \"customerName\": \"John Doe\",\n \"appointmentDate\": \"2024-02-15\"\n }\n }\n ],\n \"flows\": [\n {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"happyPath\": true,\n \"edgeCases\": [\n {\n \"id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"variables\": {\n \"tier\": \"premium\"\n }\n }\n ]\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"autoRun\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"runPlan": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"direction": "INBOUND",
"iterationCount": 123,
"maxConcurrentJobs": 123,
"maxSimulationDurationSeconds": 123,
"silenceTimeoutSeconds": 123,
"endCallPhrases": [
"<string>"
],
"endCallReasons": [
"<string>"
],
"executionMode": "PARALLEL",
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"customerName": "John Doe",
"appointmentDate": "2024-02-15"
}
}
],
"flows": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"happyPath": true,
"edgeCases": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"variables": {
"tier": "premium"
}
}
]
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"evaluators": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"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"
}
}
}{
"type": "validation",
"code": "invalid_parameter",
"message": "The request was invalid",
"param": "email"
}{
"type": "authentication",
"code": "unauthorized",
"message": "Authentication required"
}{
"type": "forbidden",
"code": "permission_denied",
"message": "You do not have permission to access this resource"
}{
"type": "rate_limit",
"code": "too_many_requests",
"message": "Rate limit exceeded"
}{
"type": "internal",
"code": "internal_error",
"message": "Internal server error"
}