import Retell from 'retell-sdk';
const client = new Retell({
apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted
});
const conversationFlowResponse = await client.conversationFlow.create({
model_choice: { model: 'gpt-4.1', type: 'cascading' },
nodes: [
{
id: 'start',
instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
type: 'conversation',
},
],
start_speaker: 'agent',
});
console.log(conversationFlowResponse.conversation_flow_id);import os
from retell import Retell
client = Retell(
api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted
)
conversation_flow_response = client.conversation_flow.create(
model_choice={
"model": "gpt-4.1",
"type": "cascading",
},
nodes=[{
"id": "start",
"instruction": {
"text": "Greet the customer and ask how you can help them.",
"type": "prompt",
},
"type": "conversation",
}],
start_speaker="agent",
)
print(conversation_flow_response.conversation_flow_id)curl --request POST \
--url https://api.retellai.com/create-conversation-flow \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_choice": {
"type": "cascading",
"high_priority": true
},
"start_speaker": "agent",
"nodes": [
{
"id": "start",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Greet the customer and ask how you can help them."
},
"edges": [
{
"id": "edge_1",
"transition_condition": {
"type": "prompt",
"prompt": "Customer wants to book appointment"
},
"destination_node_id": "book_appointment"
}
]
}
],
"model_temperature": 0.7,
"tool_call_strict_mode": true,
"knowledge_base_ids": [
"kb_001",
"kb_002"
],
"kb_config": {
"top_k": 3,
"filter_score": 0.6
},
"begin_after_user_silence_ms": 2000,
"global_prompt": "You are a helpful customer service agent.",
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"components": [
{
"name": "Customer Information Collector",
"nodes": [
{
"id": "collect_info",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Ask the customer for their name and contact information."
}
}
],
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"start_node_id": "collect_info",
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
]
}
],
"start_node_id": "start",
"default_dynamic_variables": {
"company_name": "Retell Inc",
"support_hours": "9 AM - 5 PM"
},
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"is_transfer_llm": false
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.retellai.com/create-conversation-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([
'model_choice' => [
'type' => 'cascading',
'high_priority' => true
],
'start_speaker' => 'agent',
'nodes' => [
[
'id' => 'start',
'type' => 'conversation',
'instruction' => [
'type' => 'prompt',
'text' => 'Greet the customer and ask how you can help them.'
],
'edges' => [
[
'id' => 'edge_1',
'transition_condition' => [
'type' => 'prompt',
'prompt' => 'Customer wants to book appointment'
],
'destination_node_id' => 'book_appointment'
]
]
]
],
'model_temperature' => 0.7,
'tool_call_strict_mode' => true,
'knowledge_base_ids' => [
'kb_001',
'kb_002'
],
'kb_config' => [
'top_k' => 3,
'filter_score' => 0.6
],
'begin_after_user_silence_ms' => 2000,
'global_prompt' => 'You are a helpful customer service agent.',
'flex_mode' => false,
'tools' => [
[
'type' => 'custom',
'name' => 'get_customer_info',
'description' => 'Get customer information from database',
'tool_id' => 'tool_001',
'url' => 'https://api.example.com/customer',
'method' => 'GET'
]
],
'components' => [
[
'name' => 'Customer Information Collector',
'nodes' => [
[
'id' => 'collect_info',
'type' => 'conversation',
'instruction' => [
'type' => 'prompt',
'text' => 'Ask the customer for their name and contact information.'
]
]
],
'flex_mode' => false,
'tools' => [
[
'type' => 'custom',
'name' => 'get_customer_info',
'description' => 'Get customer information from database',
'tool_id' => 'tool_001',
'url' => 'https://api.example.com/customer',
'method' => 'GET'
]
],
'mcps' => [
[
'name' => '<string>',
'url' => '<string>',
'headers' => [
'Authorization' => 'Bearer 1234567890'
],
'query_params' => [
'index' => '1',
'key' => 'value'
],
'timeout_ms' => 123
]
],
'start_node_id' => 'collect_info',
'begin_tag_display_position' => [
'x' => 100,
'y' => 200
],
'notes' => [
[
'id' => 'note_abc123',
'content' => 'Remember to handle edge cases here.',
'display_position' => [
'x' => 300,
'y' => 150
],
'size' => [
'width' => 200,
'height' => 100
]
]
]
]
],
'start_node_id' => 'start',
'default_dynamic_variables' => [
'company_name' => 'Retell Inc',
'support_hours' => '9 AM - 5 PM'
],
'begin_tag_display_position' => [
'x' => 100,
'y' => 200
],
'notes' => [
[
'id' => 'note_abc123',
'content' => 'Remember to handle edge cases here.',
'display_position' => [
'x' => 300,
'y' => 150
],
'size' => [
'width' => 200,
'height' => 100
]
]
],
'mcps' => [
[
'name' => '<string>',
'url' => '<string>',
'headers' => [
'Authorization' => 'Bearer 1234567890'
],
'query_params' => [
'index' => '1',
'key' => 'value'
],
'timeout_ms' => 123
]
],
'is_transfer_llm' => 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.retellai.com/create-conversation-flow"
payload := strings.NewReader("{\n \"model_choice\": {\n \"type\": \"cascading\",\n \"high_priority\": true\n },\n \"start_speaker\": \"agent\",\n \"nodes\": [\n {\n \"id\": \"start\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Greet the customer and ask how you can help them.\"\n },\n \"edges\": [\n {\n \"id\": \"edge_1\",\n \"transition_condition\": {\n \"type\": \"prompt\",\n \"prompt\": \"Customer wants to book appointment\"\n },\n \"destination_node_id\": \"book_appointment\"\n }\n ]\n }\n ],\n \"model_temperature\": 0.7,\n \"tool_call_strict_mode\": true,\n \"knowledge_base_ids\": [\n \"kb_001\",\n \"kb_002\"\n ],\n \"kb_config\": {\n \"top_k\": 3,\n \"filter_score\": 0.6\n },\n \"begin_after_user_silence_ms\": 2000,\n \"global_prompt\": \"You are a helpful customer service agent.\",\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"components\": [\n {\n \"name\": \"Customer Information Collector\",\n \"nodes\": [\n {\n \"id\": \"collect_info\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Ask the customer for their name and contact information.\"\n }\n }\n ],\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"start_node_id\": \"collect_info\",\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ]\n }\n ],\n \"start_node_id\": \"start\",\n \"default_dynamic_variables\": {\n \"company_name\": \"Retell Inc\",\n \"support_hours\": \"9 AM - 5 PM\"\n },\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"is_transfer_llm\": 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.retellai.com/create-conversation-flow")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_choice\": {\n \"type\": \"cascading\",\n \"high_priority\": true\n },\n \"start_speaker\": \"agent\",\n \"nodes\": [\n {\n \"id\": \"start\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Greet the customer and ask how you can help them.\"\n },\n \"edges\": [\n {\n \"id\": \"edge_1\",\n \"transition_condition\": {\n \"type\": \"prompt\",\n \"prompt\": \"Customer wants to book appointment\"\n },\n \"destination_node_id\": \"book_appointment\"\n }\n ]\n }\n ],\n \"model_temperature\": 0.7,\n \"tool_call_strict_mode\": true,\n \"knowledge_base_ids\": [\n \"kb_001\",\n \"kb_002\"\n ],\n \"kb_config\": {\n \"top_k\": 3,\n \"filter_score\": 0.6\n },\n \"begin_after_user_silence_ms\": 2000,\n \"global_prompt\": \"You are a helpful customer service agent.\",\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"components\": [\n {\n \"name\": \"Customer Information Collector\",\n \"nodes\": [\n {\n \"id\": \"collect_info\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Ask the customer for their name and contact information.\"\n }\n }\n ],\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"start_node_id\": \"collect_info\",\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ]\n }\n ],\n \"start_node_id\": \"start\",\n \"default_dynamic_variables\": {\n \"company_name\": \"Retell Inc\",\n \"support_hours\": \"9 AM - 5 PM\"\n },\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"is_transfer_llm\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.retellai.com/create-conversation-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 \"model_choice\": {\n \"type\": \"cascading\",\n \"high_priority\": true\n },\n \"start_speaker\": \"agent\",\n \"nodes\": [\n {\n \"id\": \"start\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Greet the customer and ask how you can help them.\"\n },\n \"edges\": [\n {\n \"id\": \"edge_1\",\n \"transition_condition\": {\n \"type\": \"prompt\",\n \"prompt\": \"Customer wants to book appointment\"\n },\n \"destination_node_id\": \"book_appointment\"\n }\n ]\n }\n ],\n \"model_temperature\": 0.7,\n \"tool_call_strict_mode\": true,\n \"knowledge_base_ids\": [\n \"kb_001\",\n \"kb_002\"\n ],\n \"kb_config\": {\n \"top_k\": 3,\n \"filter_score\": 0.6\n },\n \"begin_after_user_silence_ms\": 2000,\n \"global_prompt\": \"You are a helpful customer service agent.\",\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"components\": [\n {\n \"name\": \"Customer Information Collector\",\n \"nodes\": [\n {\n \"id\": \"collect_info\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Ask the customer for their name and contact information.\"\n }\n }\n ],\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"start_node_id\": \"collect_info\",\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ]\n }\n ],\n \"start_node_id\": \"start\",\n \"default_dynamic_variables\": {\n \"company_name\": \"Retell Inc\",\n \"support_hours\": \"9 AM - 5 PM\"\n },\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"is_transfer_llm\": false\n}"
response = http.request(request)
puts response.read_body{
"conversation_flow_id": "<string>",
"version": 123,
"last_modification_timestamp": 1703413636133,
"model_choice": {
"type": "cascading",
"high_priority": true
},
"model_temperature": 0.7,
"tool_call_strict_mode": true,
"knowledge_base_ids": [
"kb_001",
"kb_002"
],
"kb_config": {
"top_k": 3,
"filter_score": 0.6
},
"start_speaker": "agent",
"begin_after_user_silence_ms": 2000,
"global_prompt": "You are a helpful customer service agent.",
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"components": [
{
"name": "Customer Information Collector",
"nodes": [
{
"id": "collect_info",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Ask the customer for their name and contact information."
}
}
],
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"start_node_id": "collect_info",
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
]
}
],
"start_node_id": "start",
"default_dynamic_variables": {
"company_name": "Retell Inc",
"support_hours": "9 AM - 5 PM"
},
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"is_transfer_llm": false,
"nodes": [
{
"id": "start",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Greet the customer and ask how you can help them."
},
"edges": [
{
"id": "edge_1",
"transition_condition": {
"type": "prompt",
"prompt": "Customer wants to book appointment"
},
"destination_node_id": "book_appointment"
}
]
}
]
}{
"status": "error",
"message": "Invalid request format, please check API reference."
}{
"status": "error",
"message": "API key is missing or invalid."
}{
"status": "error",
"message": "Cannot find requested asset under given api key."
}{
"status": "error",
"message": "Account rate limited, please throttle your requests."
}{
"status": "error",
"message": "An unexpected server error occurred."
}Create Conversation Flow
Create a new Conversation Flow that can be attached to an agent. This is used to generate response output for the agent.
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted
});
const conversationFlowResponse = await client.conversationFlow.create({
model_choice: { model: 'gpt-4.1', type: 'cascading' },
nodes: [
{
id: 'start',
instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
type: 'conversation',
},
],
start_speaker: 'agent',
});
console.log(conversationFlowResponse.conversation_flow_id);import os
from retell import Retell
client = Retell(
api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted
)
conversation_flow_response = client.conversation_flow.create(
model_choice={
"model": "gpt-4.1",
"type": "cascading",
},
nodes=[{
"id": "start",
"instruction": {
"text": "Greet the customer and ask how you can help them.",
"type": "prompt",
},
"type": "conversation",
}],
start_speaker="agent",
)
print(conversation_flow_response.conversation_flow_id)curl --request POST \
--url https://api.retellai.com/create-conversation-flow \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_choice": {
"type": "cascading",
"high_priority": true
},
"start_speaker": "agent",
"nodes": [
{
"id": "start",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Greet the customer and ask how you can help them."
},
"edges": [
{
"id": "edge_1",
"transition_condition": {
"type": "prompt",
"prompt": "Customer wants to book appointment"
},
"destination_node_id": "book_appointment"
}
]
}
],
"model_temperature": 0.7,
"tool_call_strict_mode": true,
"knowledge_base_ids": [
"kb_001",
"kb_002"
],
"kb_config": {
"top_k": 3,
"filter_score": 0.6
},
"begin_after_user_silence_ms": 2000,
"global_prompt": "You are a helpful customer service agent.",
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"components": [
{
"name": "Customer Information Collector",
"nodes": [
{
"id": "collect_info",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Ask the customer for their name and contact information."
}
}
],
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"start_node_id": "collect_info",
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
]
}
],
"start_node_id": "start",
"default_dynamic_variables": {
"company_name": "Retell Inc",
"support_hours": "9 AM - 5 PM"
},
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"is_transfer_llm": false
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.retellai.com/create-conversation-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([
'model_choice' => [
'type' => 'cascading',
'high_priority' => true
],
'start_speaker' => 'agent',
'nodes' => [
[
'id' => 'start',
'type' => 'conversation',
'instruction' => [
'type' => 'prompt',
'text' => 'Greet the customer and ask how you can help them.'
],
'edges' => [
[
'id' => 'edge_1',
'transition_condition' => [
'type' => 'prompt',
'prompt' => 'Customer wants to book appointment'
],
'destination_node_id' => 'book_appointment'
]
]
]
],
'model_temperature' => 0.7,
'tool_call_strict_mode' => true,
'knowledge_base_ids' => [
'kb_001',
'kb_002'
],
'kb_config' => [
'top_k' => 3,
'filter_score' => 0.6
],
'begin_after_user_silence_ms' => 2000,
'global_prompt' => 'You are a helpful customer service agent.',
'flex_mode' => false,
'tools' => [
[
'type' => 'custom',
'name' => 'get_customer_info',
'description' => 'Get customer information from database',
'tool_id' => 'tool_001',
'url' => 'https://api.example.com/customer',
'method' => 'GET'
]
],
'components' => [
[
'name' => 'Customer Information Collector',
'nodes' => [
[
'id' => 'collect_info',
'type' => 'conversation',
'instruction' => [
'type' => 'prompt',
'text' => 'Ask the customer for their name and contact information.'
]
]
],
'flex_mode' => false,
'tools' => [
[
'type' => 'custom',
'name' => 'get_customer_info',
'description' => 'Get customer information from database',
'tool_id' => 'tool_001',
'url' => 'https://api.example.com/customer',
'method' => 'GET'
]
],
'mcps' => [
[
'name' => '<string>',
'url' => '<string>',
'headers' => [
'Authorization' => 'Bearer 1234567890'
],
'query_params' => [
'index' => '1',
'key' => 'value'
],
'timeout_ms' => 123
]
],
'start_node_id' => 'collect_info',
'begin_tag_display_position' => [
'x' => 100,
'y' => 200
],
'notes' => [
[
'id' => 'note_abc123',
'content' => 'Remember to handle edge cases here.',
'display_position' => [
'x' => 300,
'y' => 150
],
'size' => [
'width' => 200,
'height' => 100
]
]
]
]
],
'start_node_id' => 'start',
'default_dynamic_variables' => [
'company_name' => 'Retell Inc',
'support_hours' => '9 AM - 5 PM'
],
'begin_tag_display_position' => [
'x' => 100,
'y' => 200
],
'notes' => [
[
'id' => 'note_abc123',
'content' => 'Remember to handle edge cases here.',
'display_position' => [
'x' => 300,
'y' => 150
],
'size' => [
'width' => 200,
'height' => 100
]
]
],
'mcps' => [
[
'name' => '<string>',
'url' => '<string>',
'headers' => [
'Authorization' => 'Bearer 1234567890'
],
'query_params' => [
'index' => '1',
'key' => 'value'
],
'timeout_ms' => 123
]
],
'is_transfer_llm' => 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.retellai.com/create-conversation-flow"
payload := strings.NewReader("{\n \"model_choice\": {\n \"type\": \"cascading\",\n \"high_priority\": true\n },\n \"start_speaker\": \"agent\",\n \"nodes\": [\n {\n \"id\": \"start\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Greet the customer and ask how you can help them.\"\n },\n \"edges\": [\n {\n \"id\": \"edge_1\",\n \"transition_condition\": {\n \"type\": \"prompt\",\n \"prompt\": \"Customer wants to book appointment\"\n },\n \"destination_node_id\": \"book_appointment\"\n }\n ]\n }\n ],\n \"model_temperature\": 0.7,\n \"tool_call_strict_mode\": true,\n \"knowledge_base_ids\": [\n \"kb_001\",\n \"kb_002\"\n ],\n \"kb_config\": {\n \"top_k\": 3,\n \"filter_score\": 0.6\n },\n \"begin_after_user_silence_ms\": 2000,\n \"global_prompt\": \"You are a helpful customer service agent.\",\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"components\": [\n {\n \"name\": \"Customer Information Collector\",\n \"nodes\": [\n {\n \"id\": \"collect_info\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Ask the customer for their name and contact information.\"\n }\n }\n ],\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"start_node_id\": \"collect_info\",\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ]\n }\n ],\n \"start_node_id\": \"start\",\n \"default_dynamic_variables\": {\n \"company_name\": \"Retell Inc\",\n \"support_hours\": \"9 AM - 5 PM\"\n },\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"is_transfer_llm\": 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.retellai.com/create-conversation-flow")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_choice\": {\n \"type\": \"cascading\",\n \"high_priority\": true\n },\n \"start_speaker\": \"agent\",\n \"nodes\": [\n {\n \"id\": \"start\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Greet the customer and ask how you can help them.\"\n },\n \"edges\": [\n {\n \"id\": \"edge_1\",\n \"transition_condition\": {\n \"type\": \"prompt\",\n \"prompt\": \"Customer wants to book appointment\"\n },\n \"destination_node_id\": \"book_appointment\"\n }\n ]\n }\n ],\n \"model_temperature\": 0.7,\n \"tool_call_strict_mode\": true,\n \"knowledge_base_ids\": [\n \"kb_001\",\n \"kb_002\"\n ],\n \"kb_config\": {\n \"top_k\": 3,\n \"filter_score\": 0.6\n },\n \"begin_after_user_silence_ms\": 2000,\n \"global_prompt\": \"You are a helpful customer service agent.\",\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"components\": [\n {\n \"name\": \"Customer Information Collector\",\n \"nodes\": [\n {\n \"id\": \"collect_info\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Ask the customer for their name and contact information.\"\n }\n }\n ],\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"start_node_id\": \"collect_info\",\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ]\n }\n ],\n \"start_node_id\": \"start\",\n \"default_dynamic_variables\": {\n \"company_name\": \"Retell Inc\",\n \"support_hours\": \"9 AM - 5 PM\"\n },\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"is_transfer_llm\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.retellai.com/create-conversation-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 \"model_choice\": {\n \"type\": \"cascading\",\n \"high_priority\": true\n },\n \"start_speaker\": \"agent\",\n \"nodes\": [\n {\n \"id\": \"start\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Greet the customer and ask how you can help them.\"\n },\n \"edges\": [\n {\n \"id\": \"edge_1\",\n \"transition_condition\": {\n \"type\": \"prompt\",\n \"prompt\": \"Customer wants to book appointment\"\n },\n \"destination_node_id\": \"book_appointment\"\n }\n ]\n }\n ],\n \"model_temperature\": 0.7,\n \"tool_call_strict_mode\": true,\n \"knowledge_base_ids\": [\n \"kb_001\",\n \"kb_002\"\n ],\n \"kb_config\": {\n \"top_k\": 3,\n \"filter_score\": 0.6\n },\n \"begin_after_user_silence_ms\": 2000,\n \"global_prompt\": \"You are a helpful customer service agent.\",\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"components\": [\n {\n \"name\": \"Customer Information Collector\",\n \"nodes\": [\n {\n \"id\": \"collect_info\",\n \"type\": \"conversation\",\n \"instruction\": {\n \"type\": \"prompt\",\n \"text\": \"Ask the customer for their name and contact information.\"\n }\n }\n ],\n \"flex_mode\": false,\n \"tools\": [\n {\n \"type\": \"custom\",\n \"name\": \"get_customer_info\",\n \"description\": \"Get customer information from database\",\n \"tool_id\": \"tool_001\",\n \"url\": \"https://api.example.com/customer\",\n \"method\": \"GET\"\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"start_node_id\": \"collect_info\",\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ]\n }\n ],\n \"start_node_id\": \"start\",\n \"default_dynamic_variables\": {\n \"company_name\": \"Retell Inc\",\n \"support_hours\": \"9 AM - 5 PM\"\n },\n \"begin_tag_display_position\": {\n \"x\": 100,\n \"y\": 200\n },\n \"notes\": [\n {\n \"id\": \"note_abc123\",\n \"content\": \"Remember to handle edge cases here.\",\n \"display_position\": {\n \"x\": 300,\n \"y\": 150\n },\n \"size\": {\n \"width\": 200,\n \"height\": 100\n }\n }\n ],\n \"mcps\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"headers\": {\n \"Authorization\": \"Bearer 1234567890\"\n },\n \"query_params\": {\n \"index\": \"1\",\n \"key\": \"value\"\n },\n \"timeout_ms\": 123\n }\n ],\n \"is_transfer_llm\": false\n}"
response = http.request(request)
puts response.read_body{
"conversation_flow_id": "<string>",
"version": 123,
"last_modification_timestamp": 1703413636133,
"model_choice": {
"type": "cascading",
"high_priority": true
},
"model_temperature": 0.7,
"tool_call_strict_mode": true,
"knowledge_base_ids": [
"kb_001",
"kb_002"
],
"kb_config": {
"top_k": 3,
"filter_score": 0.6
},
"start_speaker": "agent",
"begin_after_user_silence_ms": 2000,
"global_prompt": "You are a helpful customer service agent.",
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"components": [
{
"name": "Customer Information Collector",
"nodes": [
{
"id": "collect_info",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Ask the customer for their name and contact information."
}
}
],
"flex_mode": false,
"tools": [
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"start_node_id": "collect_info",
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
]
}
],
"start_node_id": "start",
"default_dynamic_variables": {
"company_name": "Retell Inc",
"support_hours": "9 AM - 5 PM"
},
"begin_tag_display_position": {
"x": 100,
"y": 200
},
"notes": [
{
"id": "note_abc123",
"content": "Remember to handle edge cases here.",
"display_position": {
"x": 300,
"y": 150
},
"size": {
"width": 200,
"height": 100
}
}
],
"mcps": [
{
"name": "<string>",
"url": "<string>",
"headers": {
"Authorization": "Bearer 1234567890"
},
"query_params": {
"index": "1",
"key": "value"
},
"timeout_ms": 123
}
],
"is_transfer_llm": false,
"nodes": [
{
"id": "start",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Greet the customer and ask how you can help them."
},
"edges": [
{
"id": "edge_1",
"transition_condition": {
"type": "prompt",
"prompt": "Customer wants to book appointment"
},
"destination_node_id": "book_appointment"
}
]
}
]
}{
"status": "error",
"message": "Invalid request format, please check API reference."
}{
"status": "error",
"message": "API key is missing or invalid."
}{
"status": "error",
"message": "Cannot find requested asset under given api key."
}{
"status": "error",
"message": "Account rate limited, please throttle your requests."
}{
"status": "error",
"message": "An unexpected server error occurred."
}Authorizations
Authentication header containing API key (find it in dashboard). The format is "Bearer YOUR_API_KEY"
Body
Override properties for conversation flow configuration in agent override requests.
The model choice for the conversation flow.
Show child attributes
Show child attributes
Who starts the conversation - user or agent.
user, agent "agent"
Array of nodes in the conversation flow.
Show child attributes
Show child attributes
[
{
"id": "start",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Greet the customer and ask how you can help them."
},
"edges": [
{
"id": "edge_1",
"transition_condition": {
"type": "prompt",
"prompt": "Customer wants to book appointment"
},
"destination_node_id": "book_appointment"
}
]
}
]
Controls the randomness of the model's responses. Lower values make responses more deterministic.
0 <= x <= 10.7
Whether to use strict mode for tool calls. Only applicable when using certain supported models.
true
Knowledge base IDs for RAG (Retrieval-Augmented Generation).
["kb_001", "kb_002"]
Knowledge base configuration for RAG retrieval.
Show child attributes
Show child attributes
If set, the AI will begin the conversation after waiting for the user for the duration (in milliseconds) specified by this attribute. This only applies if the agent is configured to wait for the user to speak first. If not set, the agent will wait indefinitely for the user to speak.
2000
Global prompt used in every node of the conversation flow.
"You are a helpful customer service agent."
If enabled, the whole conversation flow will be converted as a Single Prompt agent.
false
Tools available in the conversation flow.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
[
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
]
Local components embedded within the conversation flow.
Show child attributes
Show child attributes
ID of the start node in the conversation flow.
"start"
Default dynamic variables that can be referenced throughout the conversation flow.
Show child attributes
Show child attributes
{
"company_name": "Retell Inc",
"support_hours": "9 AM - 5 PM"
}
Display position for the begin tag in the frontend.
Show child attributes
Show child attributes
Visual annotations displayed on the flow canvas.
Show child attributes
Show child attributes
A list of MCP server configurations to use for this conversation flow.
Show child attributes
Show child attributes
Whether this conversation flow is used for transfer LLM.
false
Response
Successfully created a conversation flow
Override properties for conversation flow configuration in agent override requests.
Unique identifier for the conversation flow
Version number of the conversation flow
Last modification timestamp (milliseconds since epoch). Either the time of last update or creation if no updates available.
1703413636133
The model choice for the conversation flow.
Show child attributes
Show child attributes
Controls the randomness of the model's responses. Lower values make responses more deterministic.
0 <= x <= 10.7
Whether to use strict mode for tool calls. Only applicable when using certain supported models.
true
Knowledge base IDs for RAG (Retrieval-Augmented Generation).
["kb_001", "kb_002"]
Knowledge base configuration for RAG retrieval.
Show child attributes
Show child attributes
Who starts the conversation - user or agent.
user, agent "agent"
If set, the AI will begin the conversation after waiting for the user for the duration (in milliseconds) specified by this attribute. This only applies if the agent is configured to wait for the user to speak first. If not set, the agent will wait indefinitely for the user to speak.
2000
Global prompt used in every node of the conversation flow.
"You are a helpful customer service agent."
If enabled, the whole conversation flow will be converted as a Single Prompt agent.
false
Tools available in the conversation flow.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
[
{
"type": "custom",
"name": "get_customer_info",
"description": "Get customer information from database",
"tool_id": "tool_001",
"url": "https://api.example.com/customer",
"method": "GET"
}
]
Local components embedded within the conversation flow.
Show child attributes
Show child attributes
ID of the start node in the conversation flow.
"start"
Default dynamic variables that can be referenced throughout the conversation flow.
Show child attributes
Show child attributes
{
"company_name": "Retell Inc",
"support_hours": "9 AM - 5 PM"
}
Display position for the begin tag in the frontend.
Show child attributes
Show child attributes
Visual annotations displayed on the flow canvas.
Show child attributes
Show child attributes
A list of MCP server configurations to use for this conversation flow.
Show child attributes
Show child attributes
Whether this conversation flow is used for transfer LLM.
false
Array of nodes in the conversation flow.
Show child attributes
Show child attributes
[
{
"id": "start",
"type": "conversation",
"instruction": {
"type": "prompt",
"text": "Greet the customer and ask how you can help them."
},
"edges": [
{
"id": "edge_1",
"transition_condition": {
"type": "prompt",
"prompt": "Customer wants to book appointment"
},
"destination_node_id": "book_appointment"
}
]
}
]
Was this page helpful?

