Create a customer flow
Creates a customer flow. A SCRIPTED flow carries a step graph and gets one variant per path through it; an UNSCRIPTED flow carries briefs and gets the variants you send.
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 simulationCustomerFlow = await client.simulationCustomerFlow.create({
agentIds: ['182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'],
mode: 'UNSCRIPTED',
title: 'Reschedule an appointment',
});
console.log(simulationCustomerFlow.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_customer_flow = client.simulation_customer_flow.create(
agent_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
mode="UNSCRIPTED",
title="Reschedule an appointment",
)
print(simulation_customer_flow.data)curl --request POST \
--url https://api.roark.ai/v1/simulation/customer-flow \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Reschedule an appointment",
"agentIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"description": "<string>",
"agentExpectations": [
{
"llmPrompt": "<string>"
}
],
"steps": [
{
"nodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ref": "<string>",
"content": "<string>",
"dtmfDigits": "<string>",
"silenceDurationSeconds": 123,
"linkedCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"linkedCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"steps": "<array>",
"mergeIntoNodeIds": [
"<string>"
]
}
],
"variants": [
{
"title": "<string>",
"isDefault": false,
"personaId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"prompt": "<string>",
"precededByCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"precededByCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/simulation/customer-flow",
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([
'title' => 'Reschedule an appointment',
'agentIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'description' => '<string>',
'agentExpectations' => [
[
'llmPrompt' => '<string>'
]
],
'steps' => [
[
'nodeId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'ref' => '<string>',
'content' => '<string>',
'dtmfDigits' => '<string>',
'silenceDurationSeconds' => 123,
'linkedCustomerFlowId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'linkedCustomerFlowVariantId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'steps' => '<array>',
'mergeIntoNodeIds' => [
'<string>'
]
]
],
'variants' => [
[
'title' => '<string>',
'isDefault' => false,
'personaId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'environmentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'prompt' => '<string>',
'precededByCustomerFlowId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'precededByCustomerFlowVariantId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]
]),
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/customer-flow"
payload := strings.NewReader("{\n \"title\": \"Reschedule an appointment\",\n \"agentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"description\": \"<string>\",\n \"agentExpectations\": [\n {\n \"llmPrompt\": \"<string>\"\n }\n ],\n \"steps\": [\n {\n \"nodeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ref\": \"<string>\",\n \"content\": \"<string>\",\n \"dtmfDigits\": \"<string>\",\n \"silenceDurationSeconds\": 123,\n \"linkedCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"linkedCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"steps\": \"<array>\",\n \"mergeIntoNodeIds\": [\n \"<string>\"\n ]\n }\n ],\n \"variants\": [\n {\n \"title\": \"<string>\",\n \"isDefault\": false,\n \"personaId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"environmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"prompt\": \"<string>\",\n \"precededByCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"precededByCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\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/customer-flow")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Reschedule an appointment\",\n \"agentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"description\": \"<string>\",\n \"agentExpectations\": [\n {\n \"llmPrompt\": \"<string>\"\n }\n ],\n \"steps\": [\n {\n \"nodeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ref\": \"<string>\",\n \"content\": \"<string>\",\n \"dtmfDigits\": \"<string>\",\n \"silenceDurationSeconds\": 123,\n \"linkedCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"linkedCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"steps\": \"<array>\",\n \"mergeIntoNodeIds\": [\n \"<string>\"\n ]\n }\n ],\n \"variants\": [\n {\n \"title\": \"<string>\",\n \"isDefault\": false,\n \"personaId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"environmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"prompt\": \"<string>\",\n \"precededByCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"precededByCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/simulation/customer-flow")
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 \"title\": \"Reschedule an appointment\",\n \"agentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"description\": \"<string>\",\n \"agentExpectations\": [\n {\n \"llmPrompt\": \"<string>\"\n }\n ],\n \"steps\": [\n {\n \"nodeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ref\": \"<string>\",\n \"content\": \"<string>\",\n \"dtmfDigits\": \"<string>\",\n \"silenceDurationSeconds\": 123,\n \"linkedCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"linkedCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"steps\": \"<array>\",\n \"mergeIntoNodeIds\": [\n \"<string>\"\n ]\n }\n ],\n \"variants\": [\n {\n \"title\": \"<string>\",\n \"isDefault\": false,\n \"personaId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"environmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"prompt\": \"<string>\",\n \"precededByCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"precededByCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"scriptedBranchingMode": "DETERMINISTIC",
"source": "CUSTOM",
"startNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "<string>",
"updatedAt": "<string>",
"agentIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"agentExpectations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llmPrompt": "<string>",
"orderIndex": 0,
"sourceStepNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"variants": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"isDefault": false,
"personaId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latestPathId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"precededByCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"precededByCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isGenerated": false,
"isAutoGeneratedTitle": false,
"createdAt": "<string>",
"updatedAt": "<string>",
"additionalExpectations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llmPrompt": "<string>",
"orderIndex": 0,
"sourceStepNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"prompt": "<string>"
}
],
"description": "<string>",
"systemKey": "<string>",
"steps": [
{
"nodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ref": "<string>",
"content": "<string>",
"dtmfDigits": "<string>",
"silenceDurationSeconds": 123,
"linkedCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"linkedCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"steps": "<array>",
"mergeIntoNodeIds": [
"<string>"
]
}
],
"stepsSharedWithOtherFlows": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}{
"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 customer flow
1"Reschedule an appointment"
SCRIPTED follows a step graph you author; UNSCRIPTED gives the simulated customer a brief and lets it improvise.
UNSCRIPTED, SCRIPTED Agents this flow exercises. At least one is required.
1Scripted flows only. DETERMINISTIC runs one variant per path through the graph; ADAPTIVE collapses the paths into one call the customer adapts across.
DETERMINISTIC, ADAPTIVE Show child attributes
Show child attributes
Required for SCRIPTED flows. At most 100 steps across at most 25 paths.
Show child attributes
Show child attributes
Required for UNSCRIPTED flows: the briefs to run. Scripted flows get one variant per path from the graph instead.
Show child attributes
Show child attributes
Response
The created customer flow
A customer flow: the conversation a simulated customer has with the agent under test. Flows with source SYSTEM are curated by Roark, shared across projects, and read-only.
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 simulationCustomerFlow = await client.simulationCustomerFlow.create({
agentIds: ['182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'],
mode: 'UNSCRIPTED',
title: 'Reschedule an appointment',
});
console.log(simulationCustomerFlow.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_customer_flow = client.simulation_customer_flow.create(
agent_ids=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],
mode="UNSCRIPTED",
title="Reschedule an appointment",
)
print(simulation_customer_flow.data)curl --request POST \
--url https://api.roark.ai/v1/simulation/customer-flow \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Reschedule an appointment",
"agentIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"description": "<string>",
"agentExpectations": [
{
"llmPrompt": "<string>"
}
],
"steps": [
{
"nodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ref": "<string>",
"content": "<string>",
"dtmfDigits": "<string>",
"silenceDurationSeconds": 123,
"linkedCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"linkedCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"steps": "<array>",
"mergeIntoNodeIds": [
"<string>"
]
}
],
"variants": [
{
"title": "<string>",
"isDefault": false,
"personaId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"prompt": "<string>",
"precededByCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"precededByCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/simulation/customer-flow",
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([
'title' => 'Reschedule an appointment',
'agentIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'description' => '<string>',
'agentExpectations' => [
[
'llmPrompt' => '<string>'
]
],
'steps' => [
[
'nodeId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'ref' => '<string>',
'content' => '<string>',
'dtmfDigits' => '<string>',
'silenceDurationSeconds' => 123,
'linkedCustomerFlowId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'linkedCustomerFlowVariantId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'steps' => '<array>',
'mergeIntoNodeIds' => [
'<string>'
]
]
],
'variants' => [
[
'title' => '<string>',
'isDefault' => false,
'personaId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'environmentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'prompt' => '<string>',
'precededByCustomerFlowId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'precededByCustomerFlowVariantId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]
]),
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/customer-flow"
payload := strings.NewReader("{\n \"title\": \"Reschedule an appointment\",\n \"agentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"description\": \"<string>\",\n \"agentExpectations\": [\n {\n \"llmPrompt\": \"<string>\"\n }\n ],\n \"steps\": [\n {\n \"nodeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ref\": \"<string>\",\n \"content\": \"<string>\",\n \"dtmfDigits\": \"<string>\",\n \"silenceDurationSeconds\": 123,\n \"linkedCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"linkedCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"steps\": \"<array>\",\n \"mergeIntoNodeIds\": [\n \"<string>\"\n ]\n }\n ],\n \"variants\": [\n {\n \"title\": \"<string>\",\n \"isDefault\": false,\n \"personaId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"environmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"prompt\": \"<string>\",\n \"precededByCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"precededByCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\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/customer-flow")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Reschedule an appointment\",\n \"agentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"description\": \"<string>\",\n \"agentExpectations\": [\n {\n \"llmPrompt\": \"<string>\"\n }\n ],\n \"steps\": [\n {\n \"nodeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ref\": \"<string>\",\n \"content\": \"<string>\",\n \"dtmfDigits\": \"<string>\",\n \"silenceDurationSeconds\": 123,\n \"linkedCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"linkedCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"steps\": \"<array>\",\n \"mergeIntoNodeIds\": [\n \"<string>\"\n ]\n }\n ],\n \"variants\": [\n {\n \"title\": \"<string>\",\n \"isDefault\": false,\n \"personaId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"environmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"prompt\": \"<string>\",\n \"precededByCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"precededByCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/simulation/customer-flow")
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 \"title\": \"Reschedule an appointment\",\n \"agentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"description\": \"<string>\",\n \"agentExpectations\": [\n {\n \"llmPrompt\": \"<string>\"\n }\n ],\n \"steps\": [\n {\n \"nodeId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ref\": \"<string>\",\n \"content\": \"<string>\",\n \"dtmfDigits\": \"<string>\",\n \"silenceDurationSeconds\": 123,\n \"linkedCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"linkedCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"steps\": \"<array>\",\n \"mergeIntoNodeIds\": [\n \"<string>\"\n ]\n }\n ],\n \"variants\": [\n {\n \"title\": \"<string>\",\n \"isDefault\": false,\n \"personaId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"environmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"prompt\": \"<string>\",\n \"precededByCustomerFlowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"precededByCustomerFlowVariantId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"scriptedBranchingMode": "DETERMINISTIC",
"source": "CUSTOM",
"startNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "<string>",
"updatedAt": "<string>",
"agentIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"agentExpectations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llmPrompt": "<string>",
"orderIndex": 0,
"sourceStepNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"variants": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"isDefault": false,
"personaId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"latestPathId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"precededByCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"precededByCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isGenerated": false,
"isAutoGeneratedTitle": false,
"createdAt": "<string>",
"updatedAt": "<string>",
"additionalExpectations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llmPrompt": "<string>",
"orderIndex": 0,
"sourceStepNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"prompt": "<string>"
}
],
"description": "<string>",
"systemKey": "<string>",
"steps": [
{
"nodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ref": "<string>",
"content": "<string>",
"dtmfDigits": "<string>",
"silenceDurationSeconds": 123,
"linkedCustomerFlowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"linkedCustomerFlowVariantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"steps": "<array>",
"mergeIntoNodeIds": [
"<string>"
]
}
],
"stepsSharedWithOtherFlows": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}{
"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"
}