Criar assistente
curl --request POST \
--url https://api.example.com/user/assistant \
--header 'Content-Type: application/json' \
--data '
{
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"tool_ids": [
123
],
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": true,
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": true,
"is_webhook_active": true,
"webhook_url": "<string>",
"use_min_interrupt_words": true,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": true,
"filler_audios": true,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": true,
"noise_cancellation": true,
"record_call": true,
"who_speaks_first": "<string>"
}
'import requests
url = "https://api.example.com/user/assistant"
payload = {
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"tool_ids": [123],
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": True,
"send_webhook_only_on_completed": True,
"include_recording_in_webhook": True,
"is_webhook_active": True,
"webhook_url": "<string>",
"use_min_interrupt_words": True,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": True,
"filler_audios": True,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": True,
"noise_cancellation": True,
"record_call": True,
"who_speaks_first": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
assistant_name: '<string>',
voice_id: 123,
language: '<string>',
llm_model: '<string>',
calls_direction: '<string>',
engine_type: '<string>',
timezone: '<string>',
initial_message: '<string>',
system_prompt: '<string>',
phone_number_id: 123,
tool_ids: [123],
endpoint_type: '<string>',
endpoint_sensitivity: 123,
interrupt_sensitivity: 123,
ambient_sound_volume: 123,
post_call_evaluation: true,
send_webhook_only_on_completed: true,
include_recording_in_webhook: true,
is_webhook_active: true,
webhook_url: '<string>',
use_min_interrupt_words: true,
min_interrupt_words: 123,
variables: {},
post_call_schema: [
{
'post_call_schema[].name': '<string>',
'post_call_schema[].type': '<string>',
'post_call_schema[].description': '<string>'
}
],
'end_call_tool.description': '<string>',
llm_temperature: 123,
voice_stability: 123,
voice_similarity: 123,
speech_speed: 123,
allow_interruptions: true,
filler_audios: true,
re_engagement_interval: 123,
max_call_duration: 123,
max_silence_duration: 123,
end_call_on_voicemail: true,
noise_cancellation: true,
record_call: true,
who_speaks_first: '<string>'
})
};
fetch('https://api.example.com/user/assistant', 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.example.com/user/assistant",
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([
'assistant_name' => '<string>',
'voice_id' => 123,
'language' => '<string>',
'llm_model' => '<string>',
'calls_direction' => '<string>',
'engine_type' => '<string>',
'timezone' => '<string>',
'initial_message' => '<string>',
'system_prompt' => '<string>',
'phone_number_id' => 123,
'tool_ids' => [
123
],
'endpoint_type' => '<string>',
'endpoint_sensitivity' => 123,
'interrupt_sensitivity' => 123,
'ambient_sound_volume' => 123,
'post_call_evaluation' => true,
'send_webhook_only_on_completed' => true,
'include_recording_in_webhook' => true,
'is_webhook_active' => true,
'webhook_url' => '<string>',
'use_min_interrupt_words' => true,
'min_interrupt_words' => 123,
'variables' => [
],
'post_call_schema' => [
[
'post_call_schema[].name' => '<string>',
'post_call_schema[].type' => '<string>',
'post_call_schema[].description' => '<string>'
]
],
'end_call_tool.description' => '<string>',
'llm_temperature' => 123,
'voice_stability' => 123,
'voice_similarity' => 123,
'speech_speed' => 123,
'allow_interruptions' => true,
'filler_audios' => true,
're_engagement_interval' => 123,
'max_call_duration' => 123,
'max_silence_duration' => 123,
'end_call_on_voicemail' => true,
'noise_cancellation' => true,
'record_call' => true,
'who_speaks_first' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/user/assistant"
payload := strings.NewReader("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"tool_ids\": [\n 123\n ],\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/user/assistant")
.header("Content-Type", "application/json")
.body("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"tool_ids\": [\n 123\n ],\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/user/assistant")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"tool_ids\": [\n 123\n ],\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Assistente criado com sucesso",
"data": {
"id": 789,
"name": "Assistente de Vendas",
"status": "active",
"type": "outbound",
"mode": "pipeline"
}
}
{
"message": "Falha na validação",
"errors": {
"assistant_name": [
"O campo nome do assistente é obrigatório."
],
"webhook_url": [
"A URL do webhook é obrigatória quando is_webhook_active é true."
]
}
}
{
"message": "Falha na criação do assistente"
}
Assistants
Criar assistente
Cria um novo assistente de IA na OmniTech com voz, modelo LLM, prompt, ferramentas e demais configurações via uma requisição POST autenticada.
POST
/
user
/
assistant
Criar assistente
curl --request POST \
--url https://api.example.com/user/assistant \
--header 'Content-Type: application/json' \
--data '
{
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"tool_ids": [
123
],
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": true,
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": true,
"is_webhook_active": true,
"webhook_url": "<string>",
"use_min_interrupt_words": true,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": true,
"filler_audios": true,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": true,
"noise_cancellation": true,
"record_call": true,
"who_speaks_first": "<string>"
}
'import requests
url = "https://api.example.com/user/assistant"
payload = {
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"tool_ids": [123],
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": True,
"send_webhook_only_on_completed": True,
"include_recording_in_webhook": True,
"is_webhook_active": True,
"webhook_url": "<string>",
"use_min_interrupt_words": True,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": True,
"filler_audios": True,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": True,
"noise_cancellation": True,
"record_call": True,
"who_speaks_first": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
assistant_name: '<string>',
voice_id: 123,
language: '<string>',
llm_model: '<string>',
calls_direction: '<string>',
engine_type: '<string>',
timezone: '<string>',
initial_message: '<string>',
system_prompt: '<string>',
phone_number_id: 123,
tool_ids: [123],
endpoint_type: '<string>',
endpoint_sensitivity: 123,
interrupt_sensitivity: 123,
ambient_sound_volume: 123,
post_call_evaluation: true,
send_webhook_only_on_completed: true,
include_recording_in_webhook: true,
is_webhook_active: true,
webhook_url: '<string>',
use_min_interrupt_words: true,
min_interrupt_words: 123,
variables: {},
post_call_schema: [
{
'post_call_schema[].name': '<string>',
'post_call_schema[].type': '<string>',
'post_call_schema[].description': '<string>'
}
],
'end_call_tool.description': '<string>',
llm_temperature: 123,
voice_stability: 123,
voice_similarity: 123,
speech_speed: 123,
allow_interruptions: true,
filler_audios: true,
re_engagement_interval: 123,
max_call_duration: 123,
max_silence_duration: 123,
end_call_on_voicemail: true,
noise_cancellation: true,
record_call: true,
who_speaks_first: '<string>'
})
};
fetch('https://api.example.com/user/assistant', 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.example.com/user/assistant",
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([
'assistant_name' => '<string>',
'voice_id' => 123,
'language' => '<string>',
'llm_model' => '<string>',
'calls_direction' => '<string>',
'engine_type' => '<string>',
'timezone' => '<string>',
'initial_message' => '<string>',
'system_prompt' => '<string>',
'phone_number_id' => 123,
'tool_ids' => [
123
],
'endpoint_type' => '<string>',
'endpoint_sensitivity' => 123,
'interrupt_sensitivity' => 123,
'ambient_sound_volume' => 123,
'post_call_evaluation' => true,
'send_webhook_only_on_completed' => true,
'include_recording_in_webhook' => true,
'is_webhook_active' => true,
'webhook_url' => '<string>',
'use_min_interrupt_words' => true,
'min_interrupt_words' => 123,
'variables' => [
],
'post_call_schema' => [
[
'post_call_schema[].name' => '<string>',
'post_call_schema[].type' => '<string>',
'post_call_schema[].description' => '<string>'
]
],
'end_call_tool.description' => '<string>',
'llm_temperature' => 123,
'voice_stability' => 123,
'voice_similarity' => 123,
'speech_speed' => 123,
'allow_interruptions' => true,
'filler_audios' => true,
're_engagement_interval' => 123,
'max_call_duration' => 123,
'max_silence_duration' => 123,
'end_call_on_voicemail' => true,
'noise_cancellation' => true,
'record_call' => true,
'who_speaks_first' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/user/assistant"
payload := strings.NewReader("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"tool_ids\": [\n 123\n ],\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/user/assistant")
.header("Content-Type", "application/json")
.body("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"tool_ids\": [\n 123\n ],\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/user/assistant")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"tool_ids\": [\n 123\n ],\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Assistente criado com sucesso",
"data": {
"id": 789,
"name": "Assistente de Vendas",
"status": "active",
"type": "outbound",
"mode": "pipeline"
}
}
{
"message": "Falha na validação",
"errors": {
"assistant_name": [
"O campo nome do assistente é obrigatório."
],
"webhook_url": [
"A URL do webhook é obrigatória quando is_webhook_active é true."
]
}
}
{
"message": "Falha na criação do assistente"
}
Este endpoint permite criar um novo assistente de IA com opções completas de configuração.
Observações
Todos os campos obrigatórios devem ser informados para que o assistente seja criado com sucesso
O assistente será criado com configurações padrão para quaisquer campos opcionais não informados
A atribuição de número de telefone é opcional, mas o número deve pertencer ao usuário autenticado
A URL do webhook é obrigatória apenas quando is_webhook_active estiver definido como true
Os identificadores de voz e idioma devem corresponder às opções disponíveis no sistema OmniTech
Corpo da Requisição
Campos Obrigatórios Principais
string
required
O nome do assistente (máximo de 255 caracteres)
integer
required
O ID da voz a ser utilizada pelo assistente (deve existir entre as vozes disponíveis)
string
required
O idioma do assistente (máximo de 100 caracteres)
string
required
O nome do modelo LLM a ser utilizado (máximo de 100 caracteres)
string
required
O tipo de direção da chamada. Opções:
receive, makestring
required
O tipo de engine a ser utilizada. Opções:
pipeline, multimodalstring
required
O fuso horário do assistente (ex.: “America/Sao_Paulo”)
string
required
A mensagem inicial que o assistente irá falar ao iniciar a chamada
string
required
O prompt de sistema que define o comportamento e a personalidade do assistente
Configurações Opcionais
integer
O ID de um número de telefone a ser atribuído ao assistente (deve existir entre os números do usuário)
integer[]
Lista de IDs de ferramentas de uso durante a chamada a serem associadas ao assistente. Cada item deve ser um ID válido pertencente à sua conta.
string
Tipo de detecção de atividade de voz. Opções:
vad, ainumber
Nível de sensibilidade do endpoint (0-5)
number
Nível de sensibilidade de interrupção (0-5)
number
Nível de volume do som ambiente (0-1)
boolean
Define se a avaliação pós-chamada estará habilitada
boolean
Define se os webhooks serão enviados apenas para chamadas concluídas
boolean
Define se a URL da gravação será incluída no payload do webhook
Configuração de Webhook
boolean
Define se as notificações via webhook estão habilitadas
string
A URL do webhook para notificações pós-chamada (obrigatório se is_webhook_active for true)
Configurações de Interrupção
boolean
Define se será utilizado o mínimo de palavras para permitir interrupção
integer
Número mínimo de palavras antes que a interrupção seja permitida (0-10)
Variáveis e Esquema
object
Pares chave-valor de variáveis personalizadas para o assistente
array
Ferramenta de Encerramento de Chamada
string
Descrição da funcionalidade de encerramento de chamada (máximo de 500 caracteres)
Configurações de Voz e Fala
number
Configuração de temperatura do LLM (0-1)
number
Configuração de estabilidade da voz (0-1)
number
Configuração de similaridade da voz (0-1)
number
Multiplicador de velocidade da fala (0.7-1.2)
Configurações de Comportamento da Chamada
boolean
Define se o chamador pode interromper o assistente
boolean
Define se áudios de preenchimento serão utilizados durante o processamento
integer
Intervalo de reengajamento em segundos (7-600)
integer
Duração máxima da chamada em segundos (20-1200)
integer
Duração máxima de silêncio em segundos (1-120)
boolean
Define se a chamada será encerrada ao detectar caixa postal
boolean
Define se o cancelamento de ruído estará habilitado
boolean
Define se a chamada será gravada
string
Quem fala primeiro na chamada. Opções:
AI assistant, CustomerResposta
string
Mensagem de sucesso confirmando a criação do assistente
object
Respostas de Erro
{
"message": "Assistente criado com sucesso",
"data": {
"id": 789,
"name": "Assistente de Vendas",
"status": "active",
"type": "outbound",
"mode": "pipeline"
}
}
{
"message": "Falha na validação",
"errors": {
"assistant_name": [
"O campo nome do assistente é obrigatório."
],
"webhook_url": [
"A URL do webhook é obrigatória quando is_webhook_active é true."
]
}
}
{
"message": "Falha na criação do assistente"
}
⌘I