curl --request POST \
--url https://api.callrounded.com/v1/agents \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data @- <<EOF
{
"name": "<string>",
"initial_message": "Hello, how can I help you today?",
"initial_message_delay": 0,
"max_call_duration": 300,
"presence_check_phrases": [
"Allo, vous êtes là ?",
"Pouvez-vous répéter s'il vous plaît ?"
],
"presence_check_idle_threshold": 10,
"presence_check_max_times": 1,
"base_prompt": "You are a helpful assistant",
"voice": {
"provider": "openai",
"instructions": "Warm, empathetic, friendly",
"speed": 1
},
"states": [
{
"name": "<string>",
"prompt": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"tools": [
{
"description": "Wait for 2 seconds",
"type": "wait"
},
{
"description": "Hang up the call",
"filler_sentence": "Goodbye!",
"type": "hang_up"
},
{
"description": "Transfer the call to the next available assistant",
"filler_sentence": "I'm transferring you to the next available assistant...",
"type": "transfer_call"
},
{
"description": "Leave a voicemail message",
"filler_sentence": "I tried to call you but you didn't answer. Please call me back at 1234567890",
"type": "leave_voicemail_message"
},
{
"content_type": "url_params",
"description": "Get the availability of the requested assistant by using its name",
"filler_sentence": "I'm checking the availability of the requested assistant...",
"headers": [
{
"description": "The API key to use to call the custom function",
"name": "Authorization",
"value": "Bearer 123"
}
],
"method": "GET",
"parameters": [
{
"description": "The name of the assistant to check the availability of",
"name": "assistant_name",
"type": "string"
}
],
"response_mapping": [
{
"destination_variable": "assistant_availability",
"json_path_to_data": "$.availability"
}
],
"type": "custom_function",
"url": "https://api.example.com/availability"
}
],
"transitions": [
{
"condition": "User provides valid input",
"destination_state_name": "next_state_name",
"filler_sentence": "I'm sorry, I didn't catch that. Can you please repeat?"
}
],
"variables": [
{
"description": "The variable's description",
"extraction_instructions": "The instructions for the variable extraction",
"name": "variable_name",
"type": "string"
}
],
"x_position": -401.1747211895911,
"y_position": 264.2527881040892,
"features": {
"entity_detection": true
}
}
],
"initial_state_name": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"transcriber": {
"provider": "azure"
},
"secure_recording_urls": true,
"interruptions": true,
"interruptions_sensitivity": "high",
"webhook_url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000",
"webhook_subscriptions": [
"event_variable_value_updated",
"event_all_variables_resolved"
],
"custom_vocabulary": [
"super",
"basta",
"bravo",
"gmail.com"
]
}
EOFimport requests
url = "https://api.callrounded.com/v1/agents"
payload = {
"name": "<string>",
"initial_message": "Hello, how can I help you today?",
"initial_message_delay": 0,
"max_call_duration": 300,
"presence_check_phrases": ["Allo, vous êtes là ?", "Pouvez-vous répéter s'il vous plaît ?"],
"presence_check_idle_threshold": 10,
"presence_check_max_times": 1,
"base_prompt": "You are a helpful assistant",
"voice": {
"provider": "openai",
"instructions": "Warm, empathetic, friendly",
"speed": 1
},
"states": [
{
"name": "<string>",
"prompt": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"tools": [
{
"description": "Wait for 2 seconds",
"type": "wait"
},
{
"description": "Hang up the call",
"filler_sentence": "Goodbye!",
"type": "hang_up"
},
{
"description": "Transfer the call to the next available assistant",
"filler_sentence": "I'm transferring you to the next available assistant...",
"type": "transfer_call"
},
{
"description": "Leave a voicemail message",
"filler_sentence": "I tried to call you but you didn't answer. Please call me back at 1234567890",
"type": "leave_voicemail_message"
},
{
"content_type": "url_params",
"description": "Get the availability of the requested assistant by using its name",
"filler_sentence": "I'm checking the availability of the requested assistant...",
"headers": [
{
"description": "The API key to use to call the custom function",
"name": "Authorization",
"value": "Bearer 123"
}
],
"method": "GET",
"parameters": [
{
"description": "The name of the assistant to check the availability of",
"name": "assistant_name",
"type": "string"
}
],
"response_mapping": [
{
"destination_variable": "assistant_availability",
"json_path_to_data": "$.availability"
}
],
"type": "custom_function",
"url": "https://api.example.com/availability"
}
],
"transitions": [
{
"condition": "User provides valid input",
"destination_state_name": "next_state_name",
"filler_sentence": "I'm sorry, I didn't catch that. Can you please repeat?"
}
],
"variables": [
{
"description": "The variable's description",
"extraction_instructions": "The instructions for the variable extraction",
"name": "variable_name",
"type": "string"
}
],
"x_position": -401.1747211895911,
"y_position": 264.2527881040892,
"features": { "entity_detection": True }
}
],
"initial_state_name": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"transcriber": { "provider": "azure" },
"secure_recording_urls": True,
"interruptions": True,
"interruptions_sensitivity": "high",
"webhook_url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000",
"webhook_subscriptions": ["event_variable_value_updated", "event_all_variables_resolved"],
"custom_vocabulary": ["super", "basta", "bravo", "gmail.com"]
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
initial_message: 'Hello, how can I help you today?',
initial_message_delay: 0,
max_call_duration: 300,
presence_check_phrases: ['Allo, vous êtes là ?', 'Pouvez-vous répéter s\'il vous plaît ?'],
presence_check_idle_threshold: 10,
presence_check_max_times: 1,
base_prompt: 'You are a helpful assistant',
voice: {provider: 'openai', instructions: 'Warm, empathetic, friendly', speed: 1},
states: [
{
name: '<string>',
prompt: '<string>',
llm: {temperature: 0.5, provider: 'azure_openai'},
tools: [
{description: 'Wait for 2 seconds', type: 'wait'},
{description: 'Hang up the call', filler_sentence: 'Goodbye!', type: 'hang_up'},
{
description: 'Transfer the call to the next available assistant',
filler_sentence: 'I\'m transferring you to the next available assistant...',
type: 'transfer_call'
},
{
description: 'Leave a voicemail message',
filler_sentence: 'I tried to call you but you didn\'t answer. Please call me back at 1234567890',
type: 'leave_voicemail_message'
},
{
content_type: 'url_params',
description: 'Get the availability of the requested assistant by using its name',
filler_sentence: 'I\'m checking the availability of the requested assistant...',
headers: [
{
description: 'The API key to use to call the custom function',
name: 'Authorization',
value: 'Bearer 123'
}
],
method: 'GET',
parameters: [
{
description: 'The name of the assistant to check the availability of',
name: 'assistant_name',
type: 'string'
}
],
response_mapping: [
{
destination_variable: 'assistant_availability',
json_path_to_data: '$.availability'
}
],
type: 'custom_function',
url: 'https://api.example.com/availability'
}
],
transitions: [
{
condition: 'User provides valid input',
destination_state_name: 'next_state_name',
filler_sentence: 'I\'m sorry, I didn\'t catch that. Can you please repeat?'
}
],
variables: [
{
description: 'The variable\'s description',
extraction_instructions: 'The instructions for the variable extraction',
name: 'variable_name',
type: 'string'
}
],
x_position: -401.1747211895911,
y_position: 264.2527881040892,
features: {entity_detection: true}
}
],
initial_state_name: '<string>',
llm: {temperature: 0.5, provider: 'azure_openai'},
transcriber: {provider: 'azure'},
secure_recording_urls: true,
interruptions: true,
interruptions_sensitivity: 'high',
webhook_url: 'https://webhook.site/123e4567-e89b-12d3-a456-426614174000',
webhook_subscriptions: ['event_variable_value_updated', 'event_all_variables_resolved'],
custom_vocabulary: ['super', 'basta', 'bravo', 'gmail.com']
})
};
fetch('https://api.callrounded.com/v1/agents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.callrounded.com/v1/agents",
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' => '<string>',
'initial_message' => 'Hello, how can I help you today?',
'initial_message_delay' => 0,
'max_call_duration' => 300,
'presence_check_phrases' => [
'Allo, vous êtes là ?',
'Pouvez-vous répéter s\'il vous plaît ?'
],
'presence_check_idle_threshold' => 10,
'presence_check_max_times' => 1,
'base_prompt' => 'You are a helpful assistant',
'voice' => [
'provider' => 'openai',
'instructions' => 'Warm, empathetic, friendly',
'speed' => 1
],
'states' => [
[
'name' => '<string>',
'prompt' => '<string>',
'llm' => [
'temperature' => 0.5,
'provider' => 'azure_openai'
],
'tools' => [
[
'description' => 'Wait for 2 seconds',
'type' => 'wait'
],
[
'description' => 'Hang up the call',
'filler_sentence' => 'Goodbye!',
'type' => 'hang_up'
],
[
'description' => 'Transfer the call to the next available assistant',
'filler_sentence' => 'I\'m transferring you to the next available assistant...',
'type' => 'transfer_call'
],
[
'description' => 'Leave a voicemail message',
'filler_sentence' => 'I tried to call you but you didn\'t answer. Please call me back at 1234567890',
'type' => 'leave_voicemail_message'
],
[
'content_type' => 'url_params',
'description' => 'Get the availability of the requested assistant by using its name',
'filler_sentence' => 'I\'m checking the availability of the requested assistant...',
'headers' => [
[
'description' => 'The API key to use to call the custom function',
'name' => 'Authorization',
'value' => 'Bearer 123'
]
],
'method' => 'GET',
'parameters' => [
[
'description' => 'The name of the assistant to check the availability of',
'name' => 'assistant_name',
'type' => 'string'
]
],
'response_mapping' => [
[
'destination_variable' => 'assistant_availability',
'json_path_to_data' => '$.availability'
]
],
'type' => 'custom_function',
'url' => 'https://api.example.com/availability'
]
],
'transitions' => [
[
'condition' => 'User provides valid input',
'destination_state_name' => 'next_state_name',
'filler_sentence' => 'I\'m sorry, I didn\'t catch that. Can you please repeat?'
]
],
'variables' => [
[
'description' => 'The variable\'s description',
'extraction_instructions' => 'The instructions for the variable extraction',
'name' => 'variable_name',
'type' => 'string'
]
],
'x_position' => -401.1747211895911,
'y_position' => 264.2527881040892,
'features' => [
'entity_detection' => true
]
]
],
'initial_state_name' => '<string>',
'llm' => [
'temperature' => 0.5,
'provider' => 'azure_openai'
],
'transcriber' => [
'provider' => 'azure'
],
'secure_recording_urls' => true,
'interruptions' => true,
'interruptions_sensitivity' => 'high',
'webhook_url' => 'https://webhook.site/123e4567-e89b-12d3-a456-426614174000',
'webhook_subscriptions' => [
'event_variable_value_updated',
'event_all_variables_resolved'
],
'custom_vocabulary' => [
'super',
'basta',
'bravo',
'gmail.com'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.callrounded.com/v1/agents"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"initial_message\": \"Hello, how can I help you today?\",\n \"initial_message_delay\": 0,\n \"max_call_duration\": 300,\n \"presence_check_phrases\": [\n \"Allo, vous êtes là ?\",\n \"Pouvez-vous répéter s'il vous plaît ?\"\n ],\n \"presence_check_idle_threshold\": 10,\n \"presence_check_max_times\": 1,\n \"base_prompt\": \"You are a helpful assistant\",\n \"voice\": {\n \"provider\": \"openai\",\n \"instructions\": \"Warm, empathetic, friendly\",\n \"speed\": 1\n },\n \"states\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"tools\": [\n {\n \"description\": \"Wait for 2 seconds\",\n \"type\": \"wait\"\n },\n {\n \"description\": \"Hang up the call\",\n \"filler_sentence\": \"Goodbye!\",\n \"type\": \"hang_up\"\n },\n {\n \"description\": \"Transfer the call to the next available assistant\",\n \"filler_sentence\": \"I'm transferring you to the next available assistant...\",\n \"type\": \"transfer_call\"\n },\n {\n \"description\": \"Leave a voicemail message\",\n \"filler_sentence\": \"I tried to call you but you didn't answer. Please call me back at 1234567890\",\n \"type\": \"leave_voicemail_message\"\n },\n {\n \"content_type\": \"url_params\",\n \"description\": \"Get the availability of the requested assistant by using its name\",\n \"filler_sentence\": \"I'm checking the availability of the requested assistant...\",\n \"headers\": [\n {\n \"description\": \"The API key to use to call the custom function\",\n \"name\": \"Authorization\",\n \"value\": \"Bearer 123\"\n }\n ],\n \"method\": \"GET\",\n \"parameters\": [\n {\n \"description\": \"The name of the assistant to check the availability of\",\n \"name\": \"assistant_name\",\n \"type\": \"string\"\n }\n ],\n \"response_mapping\": [\n {\n \"destination_variable\": \"assistant_availability\",\n \"json_path_to_data\": \"$.availability\"\n }\n ],\n \"type\": \"custom_function\",\n \"url\": \"https://api.example.com/availability\"\n }\n ],\n \"transitions\": [\n {\n \"condition\": \"User provides valid input\",\n \"destination_state_name\": \"next_state_name\",\n \"filler_sentence\": \"I'm sorry, I didn't catch that. Can you please repeat?\"\n }\n ],\n \"variables\": [\n {\n \"description\": \"The variable's description\",\n \"extraction_instructions\": \"The instructions for the variable extraction\",\n \"name\": \"variable_name\",\n \"type\": \"string\"\n }\n ],\n \"x_position\": -401.1747211895911,\n \"y_position\": 264.2527881040892,\n \"features\": {\n \"entity_detection\": true\n }\n }\n ],\n \"initial_state_name\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"transcriber\": {\n \"provider\": \"azure\"\n },\n \"secure_recording_urls\": true,\n \"interruptions\": true,\n \"interruptions_sensitivity\": \"high\",\n \"webhook_url\": \"https://webhook.site/123e4567-e89b-12d3-a456-426614174000\",\n \"webhook_subscriptions\": [\n \"event_variable_value_updated\",\n \"event_all_variables_resolved\"\n ],\n \"custom_vocabulary\": [\n \"super\",\n \"basta\",\n \"bravo\",\n \"gmail.com\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.callrounded.com/v1/agents")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"initial_message\": \"Hello, how can I help you today?\",\n \"initial_message_delay\": 0,\n \"max_call_duration\": 300,\n \"presence_check_phrases\": [\n \"Allo, vous êtes là ?\",\n \"Pouvez-vous répéter s'il vous plaît ?\"\n ],\n \"presence_check_idle_threshold\": 10,\n \"presence_check_max_times\": 1,\n \"base_prompt\": \"You are a helpful assistant\",\n \"voice\": {\n \"provider\": \"openai\",\n \"instructions\": \"Warm, empathetic, friendly\",\n \"speed\": 1\n },\n \"states\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"tools\": [\n {\n \"description\": \"Wait for 2 seconds\",\n \"type\": \"wait\"\n },\n {\n \"description\": \"Hang up the call\",\n \"filler_sentence\": \"Goodbye!\",\n \"type\": \"hang_up\"\n },\n {\n \"description\": \"Transfer the call to the next available assistant\",\n \"filler_sentence\": \"I'm transferring you to the next available assistant...\",\n \"type\": \"transfer_call\"\n },\n {\n \"description\": \"Leave a voicemail message\",\n \"filler_sentence\": \"I tried to call you but you didn't answer. Please call me back at 1234567890\",\n \"type\": \"leave_voicemail_message\"\n },\n {\n \"content_type\": \"url_params\",\n \"description\": \"Get the availability of the requested assistant by using its name\",\n \"filler_sentence\": \"I'm checking the availability of the requested assistant...\",\n \"headers\": [\n {\n \"description\": \"The API key to use to call the custom function\",\n \"name\": \"Authorization\",\n \"value\": \"Bearer 123\"\n }\n ],\n \"method\": \"GET\",\n \"parameters\": [\n {\n \"description\": \"The name of the assistant to check the availability of\",\n \"name\": \"assistant_name\",\n \"type\": \"string\"\n }\n ],\n \"response_mapping\": [\n {\n \"destination_variable\": \"assistant_availability\",\n \"json_path_to_data\": \"$.availability\"\n }\n ],\n \"type\": \"custom_function\",\n \"url\": \"https://api.example.com/availability\"\n }\n ],\n \"transitions\": [\n {\n \"condition\": \"User provides valid input\",\n \"destination_state_name\": \"next_state_name\",\n \"filler_sentence\": \"I'm sorry, I didn't catch that. Can you please repeat?\"\n }\n ],\n \"variables\": [\n {\n \"description\": \"The variable's description\",\n \"extraction_instructions\": \"The instructions for the variable extraction\",\n \"name\": \"variable_name\",\n \"type\": \"string\"\n }\n ],\n \"x_position\": -401.1747211895911,\n \"y_position\": 264.2527881040892,\n \"features\": {\n \"entity_detection\": true\n }\n }\n ],\n \"initial_state_name\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"transcriber\": {\n \"provider\": \"azure\"\n },\n \"secure_recording_urls\": true,\n \"interruptions\": true,\n \"interruptions_sensitivity\": \"high\",\n \"webhook_url\": \"https://webhook.site/123e4567-e89b-12d3-a456-426614174000\",\n \"webhook_subscriptions\": [\n \"event_variable_value_updated\",\n \"event_all_variables_resolved\"\n ],\n \"custom_vocabulary\": [\n \"super\",\n \"basta\",\n \"bravo\",\n \"gmail.com\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.callrounded.com/v1/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"initial_message\": \"Hello, how can I help you today?\",\n \"initial_message_delay\": 0,\n \"max_call_duration\": 300,\n \"presence_check_phrases\": [\n \"Allo, vous êtes là ?\",\n \"Pouvez-vous répéter s'il vous plaît ?\"\n ],\n \"presence_check_idle_threshold\": 10,\n \"presence_check_max_times\": 1,\n \"base_prompt\": \"You are a helpful assistant\",\n \"voice\": {\n \"provider\": \"openai\",\n \"instructions\": \"Warm, empathetic, friendly\",\n \"speed\": 1\n },\n \"states\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"tools\": [\n {\n \"description\": \"Wait for 2 seconds\",\n \"type\": \"wait\"\n },\n {\n \"description\": \"Hang up the call\",\n \"filler_sentence\": \"Goodbye!\",\n \"type\": \"hang_up\"\n },\n {\n \"description\": \"Transfer the call to the next available assistant\",\n \"filler_sentence\": \"I'm transferring you to the next available assistant...\",\n \"type\": \"transfer_call\"\n },\n {\n \"description\": \"Leave a voicemail message\",\n \"filler_sentence\": \"I tried to call you but you didn't answer. Please call me back at 1234567890\",\n \"type\": \"leave_voicemail_message\"\n },\n {\n \"content_type\": \"url_params\",\n \"description\": \"Get the availability of the requested assistant by using its name\",\n \"filler_sentence\": \"I'm checking the availability of the requested assistant...\",\n \"headers\": [\n {\n \"description\": \"The API key to use to call the custom function\",\n \"name\": \"Authorization\",\n \"value\": \"Bearer 123\"\n }\n ],\n \"method\": \"GET\",\n \"parameters\": [\n {\n \"description\": \"The name of the assistant to check the availability of\",\n \"name\": \"assistant_name\",\n \"type\": \"string\"\n }\n ],\n \"response_mapping\": [\n {\n \"destination_variable\": \"assistant_availability\",\n \"json_path_to_data\": \"$.availability\"\n }\n ],\n \"type\": \"custom_function\",\n \"url\": \"https://api.example.com/availability\"\n }\n ],\n \"transitions\": [\n {\n \"condition\": \"User provides valid input\",\n \"destination_state_name\": \"next_state_name\",\n \"filler_sentence\": \"I'm sorry, I didn't catch that. Can you please repeat?\"\n }\n ],\n \"variables\": [\n {\n \"description\": \"The variable's description\",\n \"extraction_instructions\": \"The instructions for the variable extraction\",\n \"name\": \"variable_name\",\n \"type\": \"string\"\n }\n ],\n \"x_position\": -401.1747211895911,\n \"y_position\": 264.2527881040892,\n \"features\": {\n \"entity_detection\": true\n }\n }\n ],\n \"initial_state_name\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"transcriber\": {\n \"provider\": \"azure\"\n },\n \"secure_recording_urls\": true,\n \"interruptions\": true,\n \"interruptions_sensitivity\": \"high\",\n \"webhook_url\": \"https://webhook.site/123e4567-e89b-12d3-a456-426614174000\",\n \"webhook_subscriptions\": [\n \"event_variable_value_updated\",\n \"event_all_variables_resolved\"\n ],\n \"custom_vocabulary\": [\n \"super\",\n \"basta\",\n \"bravo\",\n \"gmail.com\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initial_message": "Hello, how can I help you today?",
"initial_message_delay": 0,
"max_call_duration": 300,
"presence_check_phrases": [
"Allo, vous êtes là ?",
"Pouvez-vous répéter s'il vous plaît ?"
],
"presence_check_idle_threshold": 10,
"presence_check_max_times": 1,
"base_prompt": "You are a helpful assistant",
"voice": {
"provider": "openai",
"instructions": "Warm, empathetic, friendly",
"speed": 1
},
"states": [
{
"name": "<string>",
"prompt": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"tools": [
{
"description": "Wait for 2 seconds",
"type": "wait"
},
{
"description": "Hang up the call",
"filler_sentence": "Goodbye!",
"type": "hang_up"
},
{
"description": "Transfer the call to the next available assistant",
"filler_sentence": "I'm transferring you to the next available assistant...",
"type": "transfer_call"
},
{
"description": "Leave a voicemail message",
"filler_sentence": "I tried to call you but you didn't answer. Please call me back at 1234567890",
"type": "leave_voicemail_message"
},
{
"content_type": "url_params",
"description": "Get the availability of the requested assistant by using its name",
"filler_sentence": "I'm checking the availability of the requested assistant...",
"headers": [
{
"description": "The API key to use to call the custom function",
"name": "Authorization",
"value": "Bearer 123"
}
],
"method": "GET",
"parameters": [
{
"description": "The name of the assistant to check the availability of",
"name": "assistant_name",
"type": "string"
}
],
"response_mapping": [
{
"destination_variable": "assistant_availability",
"json_path_to_data": "$.availability"
}
],
"type": "custom_function",
"url": "https://api.example.com/availability"
}
],
"transitions": [
{
"condition": "User provides valid input",
"destination_state_name": "next_state_name",
"filler_sentence": "I'm sorry, I didn't catch that. Can you please repeat?"
}
],
"variables": [
{
"description": "The variable's description",
"extraction_instructions": "The instructions for the variable extraction",
"name": "variable_name",
"type": "string"
}
],
"x_position": -401.1747211895911,
"y_position": 264.2527881040892,
"features": {
"entity_detection": true
}
}
],
"initial_state_name": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"transcriber": {
"provider": "azure"
},
"secure_recording_urls": true,
"interruptions": true,
"interruptions_sensitivity": "high",
"webhook_url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000",
"webhook_subscriptions": [
"event_variable_value_updated",
"event_all_variables_resolved"
],
"custom_vocabulary": [
"super",
"basta",
"bravo",
"gmail.com"
],
"version": 1,
"variables": [
{
"name": "<string>",
"type": "<string>",
"description": "The name of the customer",
"extraction_instructions": "Extract the name of the customer"
}
]
},
"error": {
"details": [
{
"field": "email",
"message": "Invalid email format"
}
],
"message": "An error occurred while processing your request",
"status": 400,
"type": "generic_error"
},
"status": 200
}Create agent
Create a new agent with the specified configuration. The agent can be used to handle phone and web calls. The response includes headers about rate limiting.
curl --request POST \
--url https://api.callrounded.com/v1/agents \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data @- <<EOF
{
"name": "<string>",
"initial_message": "Hello, how can I help you today?",
"initial_message_delay": 0,
"max_call_duration": 300,
"presence_check_phrases": [
"Allo, vous êtes là ?",
"Pouvez-vous répéter s'il vous plaît ?"
],
"presence_check_idle_threshold": 10,
"presence_check_max_times": 1,
"base_prompt": "You are a helpful assistant",
"voice": {
"provider": "openai",
"instructions": "Warm, empathetic, friendly",
"speed": 1
},
"states": [
{
"name": "<string>",
"prompt": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"tools": [
{
"description": "Wait for 2 seconds",
"type": "wait"
},
{
"description": "Hang up the call",
"filler_sentence": "Goodbye!",
"type": "hang_up"
},
{
"description": "Transfer the call to the next available assistant",
"filler_sentence": "I'm transferring you to the next available assistant...",
"type": "transfer_call"
},
{
"description": "Leave a voicemail message",
"filler_sentence": "I tried to call you but you didn't answer. Please call me back at 1234567890",
"type": "leave_voicemail_message"
},
{
"content_type": "url_params",
"description": "Get the availability of the requested assistant by using its name",
"filler_sentence": "I'm checking the availability of the requested assistant...",
"headers": [
{
"description": "The API key to use to call the custom function",
"name": "Authorization",
"value": "Bearer 123"
}
],
"method": "GET",
"parameters": [
{
"description": "The name of the assistant to check the availability of",
"name": "assistant_name",
"type": "string"
}
],
"response_mapping": [
{
"destination_variable": "assistant_availability",
"json_path_to_data": "$.availability"
}
],
"type": "custom_function",
"url": "https://api.example.com/availability"
}
],
"transitions": [
{
"condition": "User provides valid input",
"destination_state_name": "next_state_name",
"filler_sentence": "I'm sorry, I didn't catch that. Can you please repeat?"
}
],
"variables": [
{
"description": "The variable's description",
"extraction_instructions": "The instructions for the variable extraction",
"name": "variable_name",
"type": "string"
}
],
"x_position": -401.1747211895911,
"y_position": 264.2527881040892,
"features": {
"entity_detection": true
}
}
],
"initial_state_name": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"transcriber": {
"provider": "azure"
},
"secure_recording_urls": true,
"interruptions": true,
"interruptions_sensitivity": "high",
"webhook_url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000",
"webhook_subscriptions": [
"event_variable_value_updated",
"event_all_variables_resolved"
],
"custom_vocabulary": [
"super",
"basta",
"bravo",
"gmail.com"
]
}
EOFimport requests
url = "https://api.callrounded.com/v1/agents"
payload = {
"name": "<string>",
"initial_message": "Hello, how can I help you today?",
"initial_message_delay": 0,
"max_call_duration": 300,
"presence_check_phrases": ["Allo, vous êtes là ?", "Pouvez-vous répéter s'il vous plaît ?"],
"presence_check_idle_threshold": 10,
"presence_check_max_times": 1,
"base_prompt": "You are a helpful assistant",
"voice": {
"provider": "openai",
"instructions": "Warm, empathetic, friendly",
"speed": 1
},
"states": [
{
"name": "<string>",
"prompt": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"tools": [
{
"description": "Wait for 2 seconds",
"type": "wait"
},
{
"description": "Hang up the call",
"filler_sentence": "Goodbye!",
"type": "hang_up"
},
{
"description": "Transfer the call to the next available assistant",
"filler_sentence": "I'm transferring you to the next available assistant...",
"type": "transfer_call"
},
{
"description": "Leave a voicemail message",
"filler_sentence": "I tried to call you but you didn't answer. Please call me back at 1234567890",
"type": "leave_voicemail_message"
},
{
"content_type": "url_params",
"description": "Get the availability of the requested assistant by using its name",
"filler_sentence": "I'm checking the availability of the requested assistant...",
"headers": [
{
"description": "The API key to use to call the custom function",
"name": "Authorization",
"value": "Bearer 123"
}
],
"method": "GET",
"parameters": [
{
"description": "The name of the assistant to check the availability of",
"name": "assistant_name",
"type": "string"
}
],
"response_mapping": [
{
"destination_variable": "assistant_availability",
"json_path_to_data": "$.availability"
}
],
"type": "custom_function",
"url": "https://api.example.com/availability"
}
],
"transitions": [
{
"condition": "User provides valid input",
"destination_state_name": "next_state_name",
"filler_sentence": "I'm sorry, I didn't catch that. Can you please repeat?"
}
],
"variables": [
{
"description": "The variable's description",
"extraction_instructions": "The instructions for the variable extraction",
"name": "variable_name",
"type": "string"
}
],
"x_position": -401.1747211895911,
"y_position": 264.2527881040892,
"features": { "entity_detection": True }
}
],
"initial_state_name": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"transcriber": { "provider": "azure" },
"secure_recording_urls": True,
"interruptions": True,
"interruptions_sensitivity": "high",
"webhook_url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000",
"webhook_subscriptions": ["event_variable_value_updated", "event_all_variables_resolved"],
"custom_vocabulary": ["super", "basta", "bravo", "gmail.com"]
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
initial_message: 'Hello, how can I help you today?',
initial_message_delay: 0,
max_call_duration: 300,
presence_check_phrases: ['Allo, vous êtes là ?', 'Pouvez-vous répéter s\'il vous plaît ?'],
presence_check_idle_threshold: 10,
presence_check_max_times: 1,
base_prompt: 'You are a helpful assistant',
voice: {provider: 'openai', instructions: 'Warm, empathetic, friendly', speed: 1},
states: [
{
name: '<string>',
prompt: '<string>',
llm: {temperature: 0.5, provider: 'azure_openai'},
tools: [
{description: 'Wait for 2 seconds', type: 'wait'},
{description: 'Hang up the call', filler_sentence: 'Goodbye!', type: 'hang_up'},
{
description: 'Transfer the call to the next available assistant',
filler_sentence: 'I\'m transferring you to the next available assistant...',
type: 'transfer_call'
},
{
description: 'Leave a voicemail message',
filler_sentence: 'I tried to call you but you didn\'t answer. Please call me back at 1234567890',
type: 'leave_voicemail_message'
},
{
content_type: 'url_params',
description: 'Get the availability of the requested assistant by using its name',
filler_sentence: 'I\'m checking the availability of the requested assistant...',
headers: [
{
description: 'The API key to use to call the custom function',
name: 'Authorization',
value: 'Bearer 123'
}
],
method: 'GET',
parameters: [
{
description: 'The name of the assistant to check the availability of',
name: 'assistant_name',
type: 'string'
}
],
response_mapping: [
{
destination_variable: 'assistant_availability',
json_path_to_data: '$.availability'
}
],
type: 'custom_function',
url: 'https://api.example.com/availability'
}
],
transitions: [
{
condition: 'User provides valid input',
destination_state_name: 'next_state_name',
filler_sentence: 'I\'m sorry, I didn\'t catch that. Can you please repeat?'
}
],
variables: [
{
description: 'The variable\'s description',
extraction_instructions: 'The instructions for the variable extraction',
name: 'variable_name',
type: 'string'
}
],
x_position: -401.1747211895911,
y_position: 264.2527881040892,
features: {entity_detection: true}
}
],
initial_state_name: '<string>',
llm: {temperature: 0.5, provider: 'azure_openai'},
transcriber: {provider: 'azure'},
secure_recording_urls: true,
interruptions: true,
interruptions_sensitivity: 'high',
webhook_url: 'https://webhook.site/123e4567-e89b-12d3-a456-426614174000',
webhook_subscriptions: ['event_variable_value_updated', 'event_all_variables_resolved'],
custom_vocabulary: ['super', 'basta', 'bravo', 'gmail.com']
})
};
fetch('https://api.callrounded.com/v1/agents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.callrounded.com/v1/agents",
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' => '<string>',
'initial_message' => 'Hello, how can I help you today?',
'initial_message_delay' => 0,
'max_call_duration' => 300,
'presence_check_phrases' => [
'Allo, vous êtes là ?',
'Pouvez-vous répéter s\'il vous plaît ?'
],
'presence_check_idle_threshold' => 10,
'presence_check_max_times' => 1,
'base_prompt' => 'You are a helpful assistant',
'voice' => [
'provider' => 'openai',
'instructions' => 'Warm, empathetic, friendly',
'speed' => 1
],
'states' => [
[
'name' => '<string>',
'prompt' => '<string>',
'llm' => [
'temperature' => 0.5,
'provider' => 'azure_openai'
],
'tools' => [
[
'description' => 'Wait for 2 seconds',
'type' => 'wait'
],
[
'description' => 'Hang up the call',
'filler_sentence' => 'Goodbye!',
'type' => 'hang_up'
],
[
'description' => 'Transfer the call to the next available assistant',
'filler_sentence' => 'I\'m transferring you to the next available assistant...',
'type' => 'transfer_call'
],
[
'description' => 'Leave a voicemail message',
'filler_sentence' => 'I tried to call you but you didn\'t answer. Please call me back at 1234567890',
'type' => 'leave_voicemail_message'
],
[
'content_type' => 'url_params',
'description' => 'Get the availability of the requested assistant by using its name',
'filler_sentence' => 'I\'m checking the availability of the requested assistant...',
'headers' => [
[
'description' => 'The API key to use to call the custom function',
'name' => 'Authorization',
'value' => 'Bearer 123'
]
],
'method' => 'GET',
'parameters' => [
[
'description' => 'The name of the assistant to check the availability of',
'name' => 'assistant_name',
'type' => 'string'
]
],
'response_mapping' => [
[
'destination_variable' => 'assistant_availability',
'json_path_to_data' => '$.availability'
]
],
'type' => 'custom_function',
'url' => 'https://api.example.com/availability'
]
],
'transitions' => [
[
'condition' => 'User provides valid input',
'destination_state_name' => 'next_state_name',
'filler_sentence' => 'I\'m sorry, I didn\'t catch that. Can you please repeat?'
]
],
'variables' => [
[
'description' => 'The variable\'s description',
'extraction_instructions' => 'The instructions for the variable extraction',
'name' => 'variable_name',
'type' => 'string'
]
],
'x_position' => -401.1747211895911,
'y_position' => 264.2527881040892,
'features' => [
'entity_detection' => true
]
]
],
'initial_state_name' => '<string>',
'llm' => [
'temperature' => 0.5,
'provider' => 'azure_openai'
],
'transcriber' => [
'provider' => 'azure'
],
'secure_recording_urls' => true,
'interruptions' => true,
'interruptions_sensitivity' => 'high',
'webhook_url' => 'https://webhook.site/123e4567-e89b-12d3-a456-426614174000',
'webhook_subscriptions' => [
'event_variable_value_updated',
'event_all_variables_resolved'
],
'custom_vocabulary' => [
'super',
'basta',
'bravo',
'gmail.com'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.callrounded.com/v1/agents"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"initial_message\": \"Hello, how can I help you today?\",\n \"initial_message_delay\": 0,\n \"max_call_duration\": 300,\n \"presence_check_phrases\": [\n \"Allo, vous êtes là ?\",\n \"Pouvez-vous répéter s'il vous plaît ?\"\n ],\n \"presence_check_idle_threshold\": 10,\n \"presence_check_max_times\": 1,\n \"base_prompt\": \"You are a helpful assistant\",\n \"voice\": {\n \"provider\": \"openai\",\n \"instructions\": \"Warm, empathetic, friendly\",\n \"speed\": 1\n },\n \"states\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"tools\": [\n {\n \"description\": \"Wait for 2 seconds\",\n \"type\": \"wait\"\n },\n {\n \"description\": \"Hang up the call\",\n \"filler_sentence\": \"Goodbye!\",\n \"type\": \"hang_up\"\n },\n {\n \"description\": \"Transfer the call to the next available assistant\",\n \"filler_sentence\": \"I'm transferring you to the next available assistant...\",\n \"type\": \"transfer_call\"\n },\n {\n \"description\": \"Leave a voicemail message\",\n \"filler_sentence\": \"I tried to call you but you didn't answer. Please call me back at 1234567890\",\n \"type\": \"leave_voicemail_message\"\n },\n {\n \"content_type\": \"url_params\",\n \"description\": \"Get the availability of the requested assistant by using its name\",\n \"filler_sentence\": \"I'm checking the availability of the requested assistant...\",\n \"headers\": [\n {\n \"description\": \"The API key to use to call the custom function\",\n \"name\": \"Authorization\",\n \"value\": \"Bearer 123\"\n }\n ],\n \"method\": \"GET\",\n \"parameters\": [\n {\n \"description\": \"The name of the assistant to check the availability of\",\n \"name\": \"assistant_name\",\n \"type\": \"string\"\n }\n ],\n \"response_mapping\": [\n {\n \"destination_variable\": \"assistant_availability\",\n \"json_path_to_data\": \"$.availability\"\n }\n ],\n \"type\": \"custom_function\",\n \"url\": \"https://api.example.com/availability\"\n }\n ],\n \"transitions\": [\n {\n \"condition\": \"User provides valid input\",\n \"destination_state_name\": \"next_state_name\",\n \"filler_sentence\": \"I'm sorry, I didn't catch that. Can you please repeat?\"\n }\n ],\n \"variables\": [\n {\n \"description\": \"The variable's description\",\n \"extraction_instructions\": \"The instructions for the variable extraction\",\n \"name\": \"variable_name\",\n \"type\": \"string\"\n }\n ],\n \"x_position\": -401.1747211895911,\n \"y_position\": 264.2527881040892,\n \"features\": {\n \"entity_detection\": true\n }\n }\n ],\n \"initial_state_name\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"transcriber\": {\n \"provider\": \"azure\"\n },\n \"secure_recording_urls\": true,\n \"interruptions\": true,\n \"interruptions_sensitivity\": \"high\",\n \"webhook_url\": \"https://webhook.site/123e4567-e89b-12d3-a456-426614174000\",\n \"webhook_subscriptions\": [\n \"event_variable_value_updated\",\n \"event_all_variables_resolved\"\n ],\n \"custom_vocabulary\": [\n \"super\",\n \"basta\",\n \"bravo\",\n \"gmail.com\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.callrounded.com/v1/agents")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"initial_message\": \"Hello, how can I help you today?\",\n \"initial_message_delay\": 0,\n \"max_call_duration\": 300,\n \"presence_check_phrases\": [\n \"Allo, vous êtes là ?\",\n \"Pouvez-vous répéter s'il vous plaît ?\"\n ],\n \"presence_check_idle_threshold\": 10,\n \"presence_check_max_times\": 1,\n \"base_prompt\": \"You are a helpful assistant\",\n \"voice\": {\n \"provider\": \"openai\",\n \"instructions\": \"Warm, empathetic, friendly\",\n \"speed\": 1\n },\n \"states\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"tools\": [\n {\n \"description\": \"Wait for 2 seconds\",\n \"type\": \"wait\"\n },\n {\n \"description\": \"Hang up the call\",\n \"filler_sentence\": \"Goodbye!\",\n \"type\": \"hang_up\"\n },\n {\n \"description\": \"Transfer the call to the next available assistant\",\n \"filler_sentence\": \"I'm transferring you to the next available assistant...\",\n \"type\": \"transfer_call\"\n },\n {\n \"description\": \"Leave a voicemail message\",\n \"filler_sentence\": \"I tried to call you but you didn't answer. Please call me back at 1234567890\",\n \"type\": \"leave_voicemail_message\"\n },\n {\n \"content_type\": \"url_params\",\n \"description\": \"Get the availability of the requested assistant by using its name\",\n \"filler_sentence\": \"I'm checking the availability of the requested assistant...\",\n \"headers\": [\n {\n \"description\": \"The API key to use to call the custom function\",\n \"name\": \"Authorization\",\n \"value\": \"Bearer 123\"\n }\n ],\n \"method\": \"GET\",\n \"parameters\": [\n {\n \"description\": \"The name of the assistant to check the availability of\",\n \"name\": \"assistant_name\",\n \"type\": \"string\"\n }\n ],\n \"response_mapping\": [\n {\n \"destination_variable\": \"assistant_availability\",\n \"json_path_to_data\": \"$.availability\"\n }\n ],\n \"type\": \"custom_function\",\n \"url\": \"https://api.example.com/availability\"\n }\n ],\n \"transitions\": [\n {\n \"condition\": \"User provides valid input\",\n \"destination_state_name\": \"next_state_name\",\n \"filler_sentence\": \"I'm sorry, I didn't catch that. Can you please repeat?\"\n }\n ],\n \"variables\": [\n {\n \"description\": \"The variable's description\",\n \"extraction_instructions\": \"The instructions for the variable extraction\",\n \"name\": \"variable_name\",\n \"type\": \"string\"\n }\n ],\n \"x_position\": -401.1747211895911,\n \"y_position\": 264.2527881040892,\n \"features\": {\n \"entity_detection\": true\n }\n }\n ],\n \"initial_state_name\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"transcriber\": {\n \"provider\": \"azure\"\n },\n \"secure_recording_urls\": true,\n \"interruptions\": true,\n \"interruptions_sensitivity\": \"high\",\n \"webhook_url\": \"https://webhook.site/123e4567-e89b-12d3-a456-426614174000\",\n \"webhook_subscriptions\": [\n \"event_variable_value_updated\",\n \"event_all_variables_resolved\"\n ],\n \"custom_vocabulary\": [\n \"super\",\n \"basta\",\n \"bravo\",\n \"gmail.com\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.callrounded.com/v1/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"initial_message\": \"Hello, how can I help you today?\",\n \"initial_message_delay\": 0,\n \"max_call_duration\": 300,\n \"presence_check_phrases\": [\n \"Allo, vous êtes là ?\",\n \"Pouvez-vous répéter s'il vous plaît ?\"\n ],\n \"presence_check_idle_threshold\": 10,\n \"presence_check_max_times\": 1,\n \"base_prompt\": \"You are a helpful assistant\",\n \"voice\": {\n \"provider\": \"openai\",\n \"instructions\": \"Warm, empathetic, friendly\",\n \"speed\": 1\n },\n \"states\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"tools\": [\n {\n \"description\": \"Wait for 2 seconds\",\n \"type\": \"wait\"\n },\n {\n \"description\": \"Hang up the call\",\n \"filler_sentence\": \"Goodbye!\",\n \"type\": \"hang_up\"\n },\n {\n \"description\": \"Transfer the call to the next available assistant\",\n \"filler_sentence\": \"I'm transferring you to the next available assistant...\",\n \"type\": \"transfer_call\"\n },\n {\n \"description\": \"Leave a voicemail message\",\n \"filler_sentence\": \"I tried to call you but you didn't answer. Please call me back at 1234567890\",\n \"type\": \"leave_voicemail_message\"\n },\n {\n \"content_type\": \"url_params\",\n \"description\": \"Get the availability of the requested assistant by using its name\",\n \"filler_sentence\": \"I'm checking the availability of the requested assistant...\",\n \"headers\": [\n {\n \"description\": \"The API key to use to call the custom function\",\n \"name\": \"Authorization\",\n \"value\": \"Bearer 123\"\n }\n ],\n \"method\": \"GET\",\n \"parameters\": [\n {\n \"description\": \"The name of the assistant to check the availability of\",\n \"name\": \"assistant_name\",\n \"type\": \"string\"\n }\n ],\n \"response_mapping\": [\n {\n \"destination_variable\": \"assistant_availability\",\n \"json_path_to_data\": \"$.availability\"\n }\n ],\n \"type\": \"custom_function\",\n \"url\": \"https://api.example.com/availability\"\n }\n ],\n \"transitions\": [\n {\n \"condition\": \"User provides valid input\",\n \"destination_state_name\": \"next_state_name\",\n \"filler_sentence\": \"I'm sorry, I didn't catch that. Can you please repeat?\"\n }\n ],\n \"variables\": [\n {\n \"description\": \"The variable's description\",\n \"extraction_instructions\": \"The instructions for the variable extraction\",\n \"name\": \"variable_name\",\n \"type\": \"string\"\n }\n ],\n \"x_position\": -401.1747211895911,\n \"y_position\": 264.2527881040892,\n \"features\": {\n \"entity_detection\": true\n }\n }\n ],\n \"initial_state_name\": \"<string>\",\n \"llm\": {\n \"temperature\": 0.5,\n \"provider\": \"azure_openai\"\n },\n \"transcriber\": {\n \"provider\": \"azure\"\n },\n \"secure_recording_urls\": true,\n \"interruptions\": true,\n \"interruptions_sensitivity\": \"high\",\n \"webhook_url\": \"https://webhook.site/123e4567-e89b-12d3-a456-426614174000\",\n \"webhook_subscriptions\": [\n \"event_variable_value_updated\",\n \"event_all_variables_resolved\"\n ],\n \"custom_vocabulary\": [\n \"super\",\n \"basta\",\n \"bravo\",\n \"gmail.com\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initial_message": "Hello, how can I help you today?",
"initial_message_delay": 0,
"max_call_duration": 300,
"presence_check_phrases": [
"Allo, vous êtes là ?",
"Pouvez-vous répéter s'il vous plaît ?"
],
"presence_check_idle_threshold": 10,
"presence_check_max_times": 1,
"base_prompt": "You are a helpful assistant",
"voice": {
"provider": "openai",
"instructions": "Warm, empathetic, friendly",
"speed": 1
},
"states": [
{
"name": "<string>",
"prompt": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"tools": [
{
"description": "Wait for 2 seconds",
"type": "wait"
},
{
"description": "Hang up the call",
"filler_sentence": "Goodbye!",
"type": "hang_up"
},
{
"description": "Transfer the call to the next available assistant",
"filler_sentence": "I'm transferring you to the next available assistant...",
"type": "transfer_call"
},
{
"description": "Leave a voicemail message",
"filler_sentence": "I tried to call you but you didn't answer. Please call me back at 1234567890",
"type": "leave_voicemail_message"
},
{
"content_type": "url_params",
"description": "Get the availability of the requested assistant by using its name",
"filler_sentence": "I'm checking the availability of the requested assistant...",
"headers": [
{
"description": "The API key to use to call the custom function",
"name": "Authorization",
"value": "Bearer 123"
}
],
"method": "GET",
"parameters": [
{
"description": "The name of the assistant to check the availability of",
"name": "assistant_name",
"type": "string"
}
],
"response_mapping": [
{
"destination_variable": "assistant_availability",
"json_path_to_data": "$.availability"
}
],
"type": "custom_function",
"url": "https://api.example.com/availability"
}
],
"transitions": [
{
"condition": "User provides valid input",
"destination_state_name": "next_state_name",
"filler_sentence": "I'm sorry, I didn't catch that. Can you please repeat?"
}
],
"variables": [
{
"description": "The variable's description",
"extraction_instructions": "The instructions for the variable extraction",
"name": "variable_name",
"type": "string"
}
],
"x_position": -401.1747211895911,
"y_position": 264.2527881040892,
"features": {
"entity_detection": true
}
}
],
"initial_state_name": "<string>",
"llm": {
"temperature": 0.5,
"provider": "azure_openai"
},
"transcriber": {
"provider": "azure"
},
"secure_recording_urls": true,
"interruptions": true,
"interruptions_sensitivity": "high",
"webhook_url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000",
"webhook_subscriptions": [
"event_variable_value_updated",
"event_all_variables_resolved"
],
"custom_vocabulary": [
"super",
"basta",
"bravo",
"gmail.com"
],
"version": 1,
"variables": [
{
"name": "<string>",
"type": "<string>",
"description": "The name of the customer",
"extraction_instructions": "Extract the name of the customer"
}
]
},
"error": {
"details": [
{
"field": "email",
"message": "Invalid email format"
}
],
"message": "An error occurred while processing your request",
"status": 400,
"type": "generic_error"
},
"status": 200
}Authorizations
The API Key created in Rounded Studio.
- You can create it by going to the "API Keys" settings of your profile.
- Need help? You can email us at team@callrounded.com or join our Discord community.
Body
The name of the agent
1 - 100"My first agent"
The language of the agent, expressed as a BCP 47 language tag by using its ISO 639-1 code (e.g. 'en', 'fr', 'es'). For French, regional variants using a region code from ISO 3166-1 are also supported (e.g. 'fr-BE').
en, fr, fr-FR, fr-BE, fr-CA, es, de, it, nl, pl, ar, pt, el, hr, zh "en"
"fr"
"fr-BE"
"es"
The initial message of the agent
1000"Hello, how can I help you today?"
The delay of the initial message in seconds
0 <= x <= 50
The maximum duration of the call in seconds
300
A series of phrases that the agent will say to re-engage the interlocutor after a period of silence. The phrases should be in the same language as the agent.
[
"Allo, vous êtes là ?",
"Pouvez-vous répéter s'il vous plaît ?"
]
The number of seconds of silence after which the agent will say the presence check phrases
3 <= x <= 12010
The maximum number of times the agent will say the presence check phrases
1 <= x <= 1001
The base prompt of the agent
100000"You are a helpful assistant"
The voice of the agent
- AgentCreateOpenAIVoiceConfigurationApiRequest
- AgentCreateElevenLabsVoiceConfigurationApiRequest
- AgentCreateCartesiaVoiceConfigurationApiRequest
- AgentCreateAzureVoiceConfigurationApiRequest
- AgentCreateGoogleVoiceConfigurationApiRequest
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether to secure the recording URLs
true
Whether to allow interruptions
true
The sensitivity of the interruptions
high, medium, low "high"
The webhook URL of the agent
"https://webhook.site/123e4567-e89b-12d3-a456-426614174000"
The webhook subscriptions of the agent
event_variable_value_updated, event_all_variables_resolved, event_call_status_updated, event_call_recording_status_updated, event_call_answer_type_updated, event_task_transition, event_transcript, event_transcript_complete, event_phone_call_connected, event_phone_call_ended, event_phone_call_did_not_connect, event_web_call_connected, event_web_call_ended, event_recording, event_action, event_synthesizer_consumption, event_post_call, event_pipedream_connection [
"event_variable_value_updated",
"event_all_variables_resolved"
]
The custom vocabulary of the agent, used mainly to improve transcription accuracy.
["super", "basta", "bravo", "gmail.com"]
Response
Successfully created agent
Show child attributes
Show child attributes
Show child attributes
Show child attributes
{
"details": [
{
"field": "email",
"message": "Invalid email format"
}
],
"message": "An error occurred while processing your request",
"status": 400,
"type": "generic_error"
}
HTTP status code of the response.