curl --request PATCH \
--url https://api.revring.ai/v1/agents/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": true,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetConfig": {
"enabled": true,
"modes": {
"chat": true,
"voice": true
},
"continuity": {
"resumeCalls": true,
"sharedMemory": true
},
"allowedDomains": [
"<string>"
],
"webchatPrompt": "<string>",
"appearance": {
"accentColor": "<string>",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": {
"messagesPerDay": 123
}
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"promptTemplate": "<string>",
"defaultVariables": {},
"firstMessage": "<string>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"turnTimeoutSeconds": 0,
"silenceEndCallTimeoutSeconds": 0,
"maxConversationDurationSeconds": 2,
"llmTemperature": 1,
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [],
"postCallExtraction": {
"fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
]
},
"postCallEvaluation": {
"criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
]
},
"piiCategories": [],
"endCallEnabled": true,
"endCallRulesOverride": "<string>",
"transferEnabled": true,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": true,
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"flowDefinition": {},
"testVariables": {},
"disableInterruptions": true,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": [
"<string>"
],
"sttKeyterms": [
"<string>"
],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": true,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": true,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": true,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": false
}
'import requests
url = "https://api.revring.ai/v1/agents/{id}"
payload = {
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": True,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetConfig": {
"enabled": True,
"modes": {
"chat": True,
"voice": True
},
"continuity": {
"resumeCalls": True,
"sharedMemory": True
},
"allowedDomains": ["<string>"],
"webchatPrompt": "<string>",
"appearance": {
"accentColor": "<string>",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": { "messagesPerDay": 123 }
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"promptTemplate": "<string>",
"defaultVariables": {},
"firstMessage": "<string>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"turnTimeoutSeconds": 0,
"silenceEndCallTimeoutSeconds": 0,
"maxConversationDurationSeconds": 2,
"llmTemperature": 1,
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [],
"postCallExtraction": { "fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
] },
"postCallEvaluation": { "criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
] },
"piiCategories": [],
"endCallEnabled": True,
"endCallRulesOverride": "<string>",
"transferEnabled": True,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": True,
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"flowDefinition": {},
"testVariables": {},
"disableInterruptions": True,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": ["<string>"],
"sttKeyterms": ["<string>"],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": True,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": True,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": True,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messagingConnectionId: '<string>',
messagingConfig: {
smsPrompt: '<string>',
inboundWebhookUrl: '<string>',
fromNumber: '<string>',
sendMessageEnabled: true,
sendMessageDescriptionOverride: '<string>',
conversationIdleResetDays: 123
},
widgetConfig: {
enabled: true,
modes: {chat: true, voice: true},
continuity: {resumeCalls: true, sharedMemory: true},
allowedDomains: ['<string>'],
webchatPrompt: '<string>',
appearance: {
accentColor: '<string>',
launcherLabel: '<string>',
agentDisplayName: '<string>',
avatarUrl: '<string>',
welcomeMessage: '<string>',
chatPlaceholder: '<string>'
},
limits: {messagesPerDay: 123}
},
sipTrunkId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
folderId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
promptTemplate: '<string>',
defaultVariables: {},
firstMessage: '<string>',
firstMessageOutbound: '<string>',
firstMessageDelayMs: 7500,
firstMessageDelayMsOutbound: 7500,
beginAfterUserSilenceMs: 30250,
turnTimeoutSeconds: 0,
silenceEndCallTimeoutSeconds: 0,
maxConversationDurationSeconds: 2,
llmTemperature: 1,
timezone: '<string>',
language: '<string>',
preCallWebhookUrl: '<string>',
postCallWebhookUrl: '<string>',
postCallWebhookFormat: 'revring',
webhookEvents: [],
postCallExtraction: {
fields: [
{
name: 'callback_requested',
description: 'Did the caller ask to be called back?',
type: 'boolean'
},
{
name: 'preferred_day',
description: 'Day of the week the caller prefers for the callback',
type: 'enum',
values: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
},
{
name: 'budget',
description: 'Budget the caller mentioned, in dollars',
type: 'number'
}
]
},
postCallEvaluation: {
criteria: [
{
name: 'appointment_confirmed',
description: 'The caller confirmed an appointment date and time'
},
{name: 'callback_requested', description: 'The caller asked to be called back'}
]
},
piiCategories: [],
endCallEnabled: true,
endCallRulesOverride: '<string>',
transferEnabled: true,
transferRoutes: [
{
to_number: '<string>',
condition: '<string>',
extension: '<string>',
dialTimeoutSeconds: 155,
waitForHumanSeconds: 307
}
],
transferDescriptionOverride: '<string>',
voicemailEnabled: true,
voicemailMessage: '<string>',
voiceId: '<string>',
fallbackVoiceId: '<string>',
voiceTemperature: 0.5,
voiceSpeed: 1.25,
voiceVolume: 0,
voiceTopP: 0.5,
runtimeConfig: {},
flowDefinition: {},
testVariables: {},
disableInterruptions: true,
interruptionThresholdMs: 500,
interruptionIgnoreWords: ['<string>'],
sttKeyterms: ['<string>'],
noiseCancellation: 'on',
minInterruptionWords: 1,
warmTransferConfig: {
holdMessage: '<string>',
holdMusicEnabled: true,
summaryPrompt: '<string>',
introMessage: '<string>',
continueRecordingAfterTransfer: true,
callerIdMode: 'agent',
dialTimeoutSeconds: 155,
waitForHumanSeconds: 307
},
playKeypadTouchToneEnabled: true,
playKeypadTouchToneDescriptionOverride: '<string>',
knowledgeBaseChunks: 10,
knowledgeBaseSimilarityThreshold: 0.5,
languagePresets: {},
doNotCallDetection: false
})
};
fetch('https://api.revring.ai/v1/agents/{id}', 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.revring.ai/v1/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'messagingConnectionId' => '<string>',
'messagingConfig' => [
'smsPrompt' => '<string>',
'inboundWebhookUrl' => '<string>',
'fromNumber' => '<string>',
'sendMessageEnabled' => true,
'sendMessageDescriptionOverride' => '<string>',
'conversationIdleResetDays' => 123
],
'widgetConfig' => [
'enabled' => true,
'modes' => [
'chat' => true,
'voice' => true
],
'continuity' => [
'resumeCalls' => true,
'sharedMemory' => true
],
'allowedDomains' => [
'<string>'
],
'webchatPrompt' => '<string>',
'appearance' => [
'accentColor' => '<string>',
'launcherLabel' => '<string>',
'agentDisplayName' => '<string>',
'avatarUrl' => '<string>',
'welcomeMessage' => '<string>',
'chatPlaceholder' => '<string>'
],
'limits' => [
'messagesPerDay' => 123
]
],
'sipTrunkId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'folderId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>',
'promptTemplate' => '<string>',
'defaultVariables' => [
],
'firstMessage' => '<string>',
'firstMessageOutbound' => '<string>',
'firstMessageDelayMs' => 7500,
'firstMessageDelayMsOutbound' => 7500,
'beginAfterUserSilenceMs' => 30250,
'turnTimeoutSeconds' => 0,
'silenceEndCallTimeoutSeconds' => 0,
'maxConversationDurationSeconds' => 2,
'llmTemperature' => 1,
'timezone' => '<string>',
'language' => '<string>',
'preCallWebhookUrl' => '<string>',
'postCallWebhookUrl' => '<string>',
'postCallWebhookFormat' => 'revring',
'webhookEvents' => [
],
'postCallExtraction' => [
'fields' => [
[
'name' => 'callback_requested',
'description' => 'Did the caller ask to be called back?',
'type' => 'boolean'
],
[
'name' => 'preferred_day',
'description' => 'Day of the week the caller prefers for the callback',
'type' => 'enum',
'values' => [
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday'
]
],
[
'name' => 'budget',
'description' => 'Budget the caller mentioned, in dollars',
'type' => 'number'
]
]
],
'postCallEvaluation' => [
'criteria' => [
[
'name' => 'appointment_confirmed',
'description' => 'The caller confirmed an appointment date and time'
],
[
'name' => 'callback_requested',
'description' => 'The caller asked to be called back'
]
]
],
'piiCategories' => [
],
'endCallEnabled' => true,
'endCallRulesOverride' => '<string>',
'transferEnabled' => true,
'transferRoutes' => [
[
'to_number' => '<string>',
'condition' => '<string>',
'extension' => '<string>',
'dialTimeoutSeconds' => 155,
'waitForHumanSeconds' => 307
]
],
'transferDescriptionOverride' => '<string>',
'voicemailEnabled' => true,
'voicemailMessage' => '<string>',
'voiceId' => '<string>',
'fallbackVoiceId' => '<string>',
'voiceTemperature' => 0.5,
'voiceSpeed' => 1.25,
'voiceVolume' => 0,
'voiceTopP' => 0.5,
'runtimeConfig' => [
],
'flowDefinition' => [
],
'testVariables' => [
],
'disableInterruptions' => true,
'interruptionThresholdMs' => 500,
'interruptionIgnoreWords' => [
'<string>'
],
'sttKeyterms' => [
'<string>'
],
'noiseCancellation' => 'on',
'minInterruptionWords' => 1,
'warmTransferConfig' => [
'holdMessage' => '<string>',
'holdMusicEnabled' => true,
'summaryPrompt' => '<string>',
'introMessage' => '<string>',
'continueRecordingAfterTransfer' => true,
'callerIdMode' => 'agent',
'dialTimeoutSeconds' => 155,
'waitForHumanSeconds' => 307
],
'playKeypadTouchToneEnabled' => true,
'playKeypadTouchToneDescriptionOverride' => '<string>',
'knowledgeBaseChunks' => 10,
'knowledgeBaseSimilarityThreshold' => 0.5,
'languagePresets' => [
],
'doNotCallDetection' => false
]),
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.revring.ai/v1/agents/{id}"
payload := strings.NewReader("{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"firstMessageOutbound\": \"<string>\",\n \"firstMessageDelayMs\": 7500,\n \"firstMessageDelayMsOutbound\": 7500,\n \"beginAfterUserSilenceMs\": 30250,\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"postCallWebhookFormat\": \"revring\",\n \"webhookEvents\": [],\n \"postCallExtraction\": {\n \"fields\": [\n {\n \"name\": \"callback_requested\",\n \"description\": \"Did the caller ask to be called back?\",\n \"type\": \"boolean\"\n },\n {\n \"name\": \"preferred_day\",\n \"description\": \"Day of the week the caller prefers for the callback\",\n \"type\": \"enum\",\n \"values\": [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\"\n ]\n },\n {\n \"name\": \"budget\",\n \"description\": \"Budget the caller mentioned, in dollars\",\n \"type\": \"number\"\n }\n ]\n },\n \"postCallEvaluation\": {\n \"criteria\": [\n {\n \"name\": \"appointment_confirmed\",\n \"description\": \"The caller confirmed an appointment date and time\"\n },\n {\n \"name\": \"callback_requested\",\n \"description\": \"The caller asked to be called back\"\n }\n ]\n },\n \"piiCategories\": [],\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"fallbackVoiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"interruptionIgnoreWords\": [\n \"<string>\"\n ],\n \"sttKeyterms\": [\n \"<string>\"\n ],\n \"noiseCancellation\": \"on\",\n \"minInterruptionWords\": 1,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true,\n \"callerIdMode\": \"agent\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5,\n \"languagePresets\": {},\n \"doNotCallDetection\": false\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.revring.ai/v1/agents/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"firstMessageOutbound\": \"<string>\",\n \"firstMessageDelayMs\": 7500,\n \"firstMessageDelayMsOutbound\": 7500,\n \"beginAfterUserSilenceMs\": 30250,\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"postCallWebhookFormat\": \"revring\",\n \"webhookEvents\": [],\n \"postCallExtraction\": {\n \"fields\": [\n {\n \"name\": \"callback_requested\",\n \"description\": \"Did the caller ask to be called back?\",\n \"type\": \"boolean\"\n },\n {\n \"name\": \"preferred_day\",\n \"description\": \"Day of the week the caller prefers for the callback\",\n \"type\": \"enum\",\n \"values\": [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\"\n ]\n },\n {\n \"name\": \"budget\",\n \"description\": \"Budget the caller mentioned, in dollars\",\n \"type\": \"number\"\n }\n ]\n },\n \"postCallEvaluation\": {\n \"criteria\": [\n {\n \"name\": \"appointment_confirmed\",\n \"description\": \"The caller confirmed an appointment date and time\"\n },\n {\n \"name\": \"callback_requested\",\n \"description\": \"The caller asked to be called back\"\n }\n ]\n },\n \"piiCategories\": [],\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"fallbackVoiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"interruptionIgnoreWords\": [\n \"<string>\"\n ],\n \"sttKeyterms\": [\n \"<string>\"\n ],\n \"noiseCancellation\": \"on\",\n \"minInterruptionWords\": 1,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true,\n \"callerIdMode\": \"agent\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5,\n \"languagePresets\": {},\n \"doNotCallDetection\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.revring.ai/v1/agents/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"firstMessageOutbound\": \"<string>\",\n \"firstMessageDelayMs\": 7500,\n \"firstMessageDelayMsOutbound\": 7500,\n \"beginAfterUserSilenceMs\": 30250,\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"postCallWebhookFormat\": \"revring\",\n \"webhookEvents\": [],\n \"postCallExtraction\": {\n \"fields\": [\n {\n \"name\": \"callback_requested\",\n \"description\": \"Did the caller ask to be called back?\",\n \"type\": \"boolean\"\n },\n {\n \"name\": \"preferred_day\",\n \"description\": \"Day of the week the caller prefers for the callback\",\n \"type\": \"enum\",\n \"values\": [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\"\n ]\n },\n {\n \"name\": \"budget\",\n \"description\": \"Budget the caller mentioned, in dollars\",\n \"type\": \"number\"\n }\n ]\n },\n \"postCallEvaluation\": {\n \"criteria\": [\n {\n \"name\": \"appointment_confirmed\",\n \"description\": \"The caller confirmed an appointment date and time\"\n },\n {\n \"name\": \"callback_requested\",\n \"description\": \"The caller asked to be called back\"\n }\n ]\n },\n \"piiCategories\": [],\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"fallbackVoiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"interruptionIgnoreWords\": [\n \"<string>\"\n ],\n \"sttKeyterms\": [\n \"<string>\"\n ],\n \"noiseCancellation\": \"on\",\n \"minInterruptionWords\": 1,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true,\n \"callerIdMode\": \"agent\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5,\n \"languagePresets\": {},\n \"doNotCallDetection\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "active",
"promptTemplate": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundMode": "auto_reply",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": true,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetKey": "<string>",
"widgetConfig": {
"enabled": true,
"modes": {
"chat": true,
"voice": true
},
"continuity": {
"resumeCalls": true,
"sharedMemory": true
},
"allowedDomains": [
"<string>"
],
"webchatPrompt": "<string>",
"appearance": {
"position": "bottom-right",
"accentColor": "<string>",
"theme": "light",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": {
"messagesPerDay": 123
}
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sipTrunk": {
"friendlyName": "<string>"
},
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"color": "<string>"
},
"defaultVariables": {},
"firstMessage": "<string>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"startSpeaker": "agent",
"startSpeakerOutbound": "agent",
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"firstMessageMode": "static",
"turnTimeoutSeconds": 123,
"silenceEndCallTimeoutSeconds": 123,
"maxConversationDurationSeconds": 123,
"llmTemperature": 1,
"llmModel": "revring-standard",
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [
"call.started"
],
"postCallExtraction": {
"fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
]
},
"postCallEvaluation": {
"criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
]
},
"storageMode": "full",
"piiCategories": [
"person_name"
],
"publishMode": "auto",
"publishedRevision": 123,
"hasUnpublishedChanges": true,
"endCallEnabled": true,
"endCallRulesOverride": "<string>",
"transferEnabled": true,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": true,
"voicemailAction": "hangup",
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"phoneNumbers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"e164": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"environment": "<string>",
"trafficSplit": [
{
"environment": "<string>",
"weight": 50
}
]
}
],
"customTools": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"webhookUrl": "<string>",
"enabled": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"schema": {},
"httpMethod": "GET",
"headers": [
{
"key": "<string>",
"value": "<string>"
}
],
"queryParams": [
{
"key": "<string>",
"value": "<string>"
}
],
"sendRawRequestBody": true,
"responseMode": "sync"
}
],
"mode": "single_prompt",
"flowDefinition": {},
"testVariables": {},
"llmReasoningEffort": "low",
"disableInterruptions": true,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": [
"<string>"
],
"sttKeyterms": [
"<string>"
],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"transferMode": "cold",
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": true,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": true,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": true,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseRetrievalMode": "automatic",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": false
}
}{
"error": "invalid_body",
"details": {}
}{
"error": "unauthorized"
}{
"error": "billing_inactive"
}{
"error": "not_found"
}Update Agent
Update agent configuration
curl --request PATCH \
--url https://api.revring.ai/v1/agents/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": true,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetConfig": {
"enabled": true,
"modes": {
"chat": true,
"voice": true
},
"continuity": {
"resumeCalls": true,
"sharedMemory": true
},
"allowedDomains": [
"<string>"
],
"webchatPrompt": "<string>",
"appearance": {
"accentColor": "<string>",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": {
"messagesPerDay": 123
}
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"promptTemplate": "<string>",
"defaultVariables": {},
"firstMessage": "<string>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"turnTimeoutSeconds": 0,
"silenceEndCallTimeoutSeconds": 0,
"maxConversationDurationSeconds": 2,
"llmTemperature": 1,
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [],
"postCallExtraction": {
"fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
]
},
"postCallEvaluation": {
"criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
]
},
"piiCategories": [],
"endCallEnabled": true,
"endCallRulesOverride": "<string>",
"transferEnabled": true,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": true,
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"flowDefinition": {},
"testVariables": {},
"disableInterruptions": true,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": [
"<string>"
],
"sttKeyterms": [
"<string>"
],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": true,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": true,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": true,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": false
}
'import requests
url = "https://api.revring.ai/v1/agents/{id}"
payload = {
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": True,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetConfig": {
"enabled": True,
"modes": {
"chat": True,
"voice": True
},
"continuity": {
"resumeCalls": True,
"sharedMemory": True
},
"allowedDomains": ["<string>"],
"webchatPrompt": "<string>",
"appearance": {
"accentColor": "<string>",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": { "messagesPerDay": 123 }
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"promptTemplate": "<string>",
"defaultVariables": {},
"firstMessage": "<string>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"turnTimeoutSeconds": 0,
"silenceEndCallTimeoutSeconds": 0,
"maxConversationDurationSeconds": 2,
"llmTemperature": 1,
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [],
"postCallExtraction": { "fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
] },
"postCallEvaluation": { "criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
] },
"piiCategories": [],
"endCallEnabled": True,
"endCallRulesOverride": "<string>",
"transferEnabled": True,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": True,
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"flowDefinition": {},
"testVariables": {},
"disableInterruptions": True,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": ["<string>"],
"sttKeyterms": ["<string>"],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": True,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": True,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": True,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": False
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messagingConnectionId: '<string>',
messagingConfig: {
smsPrompt: '<string>',
inboundWebhookUrl: '<string>',
fromNumber: '<string>',
sendMessageEnabled: true,
sendMessageDescriptionOverride: '<string>',
conversationIdleResetDays: 123
},
widgetConfig: {
enabled: true,
modes: {chat: true, voice: true},
continuity: {resumeCalls: true, sharedMemory: true},
allowedDomains: ['<string>'],
webchatPrompt: '<string>',
appearance: {
accentColor: '<string>',
launcherLabel: '<string>',
agentDisplayName: '<string>',
avatarUrl: '<string>',
welcomeMessage: '<string>',
chatPlaceholder: '<string>'
},
limits: {messagesPerDay: 123}
},
sipTrunkId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
folderId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
promptTemplate: '<string>',
defaultVariables: {},
firstMessage: '<string>',
firstMessageOutbound: '<string>',
firstMessageDelayMs: 7500,
firstMessageDelayMsOutbound: 7500,
beginAfterUserSilenceMs: 30250,
turnTimeoutSeconds: 0,
silenceEndCallTimeoutSeconds: 0,
maxConversationDurationSeconds: 2,
llmTemperature: 1,
timezone: '<string>',
language: '<string>',
preCallWebhookUrl: '<string>',
postCallWebhookUrl: '<string>',
postCallWebhookFormat: 'revring',
webhookEvents: [],
postCallExtraction: {
fields: [
{
name: 'callback_requested',
description: 'Did the caller ask to be called back?',
type: 'boolean'
},
{
name: 'preferred_day',
description: 'Day of the week the caller prefers for the callback',
type: 'enum',
values: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
},
{
name: 'budget',
description: 'Budget the caller mentioned, in dollars',
type: 'number'
}
]
},
postCallEvaluation: {
criteria: [
{
name: 'appointment_confirmed',
description: 'The caller confirmed an appointment date and time'
},
{name: 'callback_requested', description: 'The caller asked to be called back'}
]
},
piiCategories: [],
endCallEnabled: true,
endCallRulesOverride: '<string>',
transferEnabled: true,
transferRoutes: [
{
to_number: '<string>',
condition: '<string>',
extension: '<string>',
dialTimeoutSeconds: 155,
waitForHumanSeconds: 307
}
],
transferDescriptionOverride: '<string>',
voicemailEnabled: true,
voicemailMessage: '<string>',
voiceId: '<string>',
fallbackVoiceId: '<string>',
voiceTemperature: 0.5,
voiceSpeed: 1.25,
voiceVolume: 0,
voiceTopP: 0.5,
runtimeConfig: {},
flowDefinition: {},
testVariables: {},
disableInterruptions: true,
interruptionThresholdMs: 500,
interruptionIgnoreWords: ['<string>'],
sttKeyterms: ['<string>'],
noiseCancellation: 'on',
minInterruptionWords: 1,
warmTransferConfig: {
holdMessage: '<string>',
holdMusicEnabled: true,
summaryPrompt: '<string>',
introMessage: '<string>',
continueRecordingAfterTransfer: true,
callerIdMode: 'agent',
dialTimeoutSeconds: 155,
waitForHumanSeconds: 307
},
playKeypadTouchToneEnabled: true,
playKeypadTouchToneDescriptionOverride: '<string>',
knowledgeBaseChunks: 10,
knowledgeBaseSimilarityThreshold: 0.5,
languagePresets: {},
doNotCallDetection: false
})
};
fetch('https://api.revring.ai/v1/agents/{id}', 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.revring.ai/v1/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'messagingConnectionId' => '<string>',
'messagingConfig' => [
'smsPrompt' => '<string>',
'inboundWebhookUrl' => '<string>',
'fromNumber' => '<string>',
'sendMessageEnabled' => true,
'sendMessageDescriptionOverride' => '<string>',
'conversationIdleResetDays' => 123
],
'widgetConfig' => [
'enabled' => true,
'modes' => [
'chat' => true,
'voice' => true
],
'continuity' => [
'resumeCalls' => true,
'sharedMemory' => true
],
'allowedDomains' => [
'<string>'
],
'webchatPrompt' => '<string>',
'appearance' => [
'accentColor' => '<string>',
'launcherLabel' => '<string>',
'agentDisplayName' => '<string>',
'avatarUrl' => '<string>',
'welcomeMessage' => '<string>',
'chatPlaceholder' => '<string>'
],
'limits' => [
'messagesPerDay' => 123
]
],
'sipTrunkId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'folderId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>',
'promptTemplate' => '<string>',
'defaultVariables' => [
],
'firstMessage' => '<string>',
'firstMessageOutbound' => '<string>',
'firstMessageDelayMs' => 7500,
'firstMessageDelayMsOutbound' => 7500,
'beginAfterUserSilenceMs' => 30250,
'turnTimeoutSeconds' => 0,
'silenceEndCallTimeoutSeconds' => 0,
'maxConversationDurationSeconds' => 2,
'llmTemperature' => 1,
'timezone' => '<string>',
'language' => '<string>',
'preCallWebhookUrl' => '<string>',
'postCallWebhookUrl' => '<string>',
'postCallWebhookFormat' => 'revring',
'webhookEvents' => [
],
'postCallExtraction' => [
'fields' => [
[
'name' => 'callback_requested',
'description' => 'Did the caller ask to be called back?',
'type' => 'boolean'
],
[
'name' => 'preferred_day',
'description' => 'Day of the week the caller prefers for the callback',
'type' => 'enum',
'values' => [
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday'
]
],
[
'name' => 'budget',
'description' => 'Budget the caller mentioned, in dollars',
'type' => 'number'
]
]
],
'postCallEvaluation' => [
'criteria' => [
[
'name' => 'appointment_confirmed',
'description' => 'The caller confirmed an appointment date and time'
],
[
'name' => 'callback_requested',
'description' => 'The caller asked to be called back'
]
]
],
'piiCategories' => [
],
'endCallEnabled' => true,
'endCallRulesOverride' => '<string>',
'transferEnabled' => true,
'transferRoutes' => [
[
'to_number' => '<string>',
'condition' => '<string>',
'extension' => '<string>',
'dialTimeoutSeconds' => 155,
'waitForHumanSeconds' => 307
]
],
'transferDescriptionOverride' => '<string>',
'voicemailEnabled' => true,
'voicemailMessage' => '<string>',
'voiceId' => '<string>',
'fallbackVoiceId' => '<string>',
'voiceTemperature' => 0.5,
'voiceSpeed' => 1.25,
'voiceVolume' => 0,
'voiceTopP' => 0.5,
'runtimeConfig' => [
],
'flowDefinition' => [
],
'testVariables' => [
],
'disableInterruptions' => true,
'interruptionThresholdMs' => 500,
'interruptionIgnoreWords' => [
'<string>'
],
'sttKeyterms' => [
'<string>'
],
'noiseCancellation' => 'on',
'minInterruptionWords' => 1,
'warmTransferConfig' => [
'holdMessage' => '<string>',
'holdMusicEnabled' => true,
'summaryPrompt' => '<string>',
'introMessage' => '<string>',
'continueRecordingAfterTransfer' => true,
'callerIdMode' => 'agent',
'dialTimeoutSeconds' => 155,
'waitForHumanSeconds' => 307
],
'playKeypadTouchToneEnabled' => true,
'playKeypadTouchToneDescriptionOverride' => '<string>',
'knowledgeBaseChunks' => 10,
'knowledgeBaseSimilarityThreshold' => 0.5,
'languagePresets' => [
],
'doNotCallDetection' => false
]),
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.revring.ai/v1/agents/{id}"
payload := strings.NewReader("{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"firstMessageOutbound\": \"<string>\",\n \"firstMessageDelayMs\": 7500,\n \"firstMessageDelayMsOutbound\": 7500,\n \"beginAfterUserSilenceMs\": 30250,\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"postCallWebhookFormat\": \"revring\",\n \"webhookEvents\": [],\n \"postCallExtraction\": {\n \"fields\": [\n {\n \"name\": \"callback_requested\",\n \"description\": \"Did the caller ask to be called back?\",\n \"type\": \"boolean\"\n },\n {\n \"name\": \"preferred_day\",\n \"description\": \"Day of the week the caller prefers for the callback\",\n \"type\": \"enum\",\n \"values\": [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\"\n ]\n },\n {\n \"name\": \"budget\",\n \"description\": \"Budget the caller mentioned, in dollars\",\n \"type\": \"number\"\n }\n ]\n },\n \"postCallEvaluation\": {\n \"criteria\": [\n {\n \"name\": \"appointment_confirmed\",\n \"description\": \"The caller confirmed an appointment date and time\"\n },\n {\n \"name\": \"callback_requested\",\n \"description\": \"The caller asked to be called back\"\n }\n ]\n },\n \"piiCategories\": [],\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"fallbackVoiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"interruptionIgnoreWords\": [\n \"<string>\"\n ],\n \"sttKeyterms\": [\n \"<string>\"\n ],\n \"noiseCancellation\": \"on\",\n \"minInterruptionWords\": 1,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true,\n \"callerIdMode\": \"agent\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5,\n \"languagePresets\": {},\n \"doNotCallDetection\": false\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.revring.ai/v1/agents/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"firstMessageOutbound\": \"<string>\",\n \"firstMessageDelayMs\": 7500,\n \"firstMessageDelayMsOutbound\": 7500,\n \"beginAfterUserSilenceMs\": 30250,\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"postCallWebhookFormat\": \"revring\",\n \"webhookEvents\": [],\n \"postCallExtraction\": {\n \"fields\": [\n {\n \"name\": \"callback_requested\",\n \"description\": \"Did the caller ask to be called back?\",\n \"type\": \"boolean\"\n },\n {\n \"name\": \"preferred_day\",\n \"description\": \"Day of the week the caller prefers for the callback\",\n \"type\": \"enum\",\n \"values\": [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\"\n ]\n },\n {\n \"name\": \"budget\",\n \"description\": \"Budget the caller mentioned, in dollars\",\n \"type\": \"number\"\n }\n ]\n },\n \"postCallEvaluation\": {\n \"criteria\": [\n {\n \"name\": \"appointment_confirmed\",\n \"description\": \"The caller confirmed an appointment date and time\"\n },\n {\n \"name\": \"callback_requested\",\n \"description\": \"The caller asked to be called back\"\n }\n ]\n },\n \"piiCategories\": [],\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"fallbackVoiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"interruptionIgnoreWords\": [\n \"<string>\"\n ],\n \"sttKeyterms\": [\n \"<string>\"\n ],\n \"noiseCancellation\": \"on\",\n \"minInterruptionWords\": 1,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true,\n \"callerIdMode\": \"agent\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5,\n \"languagePresets\": {},\n \"doNotCallDetection\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.revring.ai/v1/agents/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"firstMessageOutbound\": \"<string>\",\n \"firstMessageDelayMs\": 7500,\n \"firstMessageDelayMsOutbound\": 7500,\n \"beginAfterUserSilenceMs\": 30250,\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"postCallWebhookFormat\": \"revring\",\n \"webhookEvents\": [],\n \"postCallExtraction\": {\n \"fields\": [\n {\n \"name\": \"callback_requested\",\n \"description\": \"Did the caller ask to be called back?\",\n \"type\": \"boolean\"\n },\n {\n \"name\": \"preferred_day\",\n \"description\": \"Day of the week the caller prefers for the callback\",\n \"type\": \"enum\",\n \"values\": [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\"\n ]\n },\n {\n \"name\": \"budget\",\n \"description\": \"Budget the caller mentioned, in dollars\",\n \"type\": \"number\"\n }\n ]\n },\n \"postCallEvaluation\": {\n \"criteria\": [\n {\n \"name\": \"appointment_confirmed\",\n \"description\": \"The caller confirmed an appointment date and time\"\n },\n {\n \"name\": \"callback_requested\",\n \"description\": \"The caller asked to be called back\"\n }\n ]\n },\n \"piiCategories\": [],\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"fallbackVoiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"interruptionIgnoreWords\": [\n \"<string>\"\n ],\n \"sttKeyterms\": [\n \"<string>\"\n ],\n \"noiseCancellation\": \"on\",\n \"minInterruptionWords\": 1,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true,\n \"callerIdMode\": \"agent\",\n \"dialTimeoutSeconds\": 155,\n \"waitForHumanSeconds\": 307\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5,\n \"languagePresets\": {},\n \"doNotCallDetection\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "active",
"promptTemplate": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundMode": "auto_reply",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": true,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetKey": "<string>",
"widgetConfig": {
"enabled": true,
"modes": {
"chat": true,
"voice": true
},
"continuity": {
"resumeCalls": true,
"sharedMemory": true
},
"allowedDomains": [
"<string>"
],
"webchatPrompt": "<string>",
"appearance": {
"position": "bottom-right",
"accentColor": "<string>",
"theme": "light",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": {
"messagesPerDay": 123
}
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sipTrunk": {
"friendlyName": "<string>"
},
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"color": "<string>"
},
"defaultVariables": {},
"firstMessage": "<string>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"startSpeaker": "agent",
"startSpeakerOutbound": "agent",
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"firstMessageMode": "static",
"turnTimeoutSeconds": 123,
"silenceEndCallTimeoutSeconds": 123,
"maxConversationDurationSeconds": 123,
"llmTemperature": 1,
"llmModel": "revring-standard",
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [
"call.started"
],
"postCallExtraction": {
"fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
]
},
"postCallEvaluation": {
"criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
]
},
"storageMode": "full",
"piiCategories": [
"person_name"
],
"publishMode": "auto",
"publishedRevision": 123,
"hasUnpublishedChanges": true,
"endCallEnabled": true,
"endCallRulesOverride": "<string>",
"transferEnabled": true,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": true,
"voicemailAction": "hangup",
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"phoneNumbers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"e164": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"environment": "<string>",
"trafficSplit": [
{
"environment": "<string>",
"weight": 50
}
]
}
],
"customTools": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"webhookUrl": "<string>",
"enabled": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"schema": {},
"httpMethod": "GET",
"headers": [
{
"key": "<string>",
"value": "<string>"
}
],
"queryParams": [
{
"key": "<string>",
"value": "<string>"
}
],
"sendRawRequestBody": true,
"responseMode": "sync"
}
],
"mode": "single_prompt",
"flowDefinition": {},
"testVariables": {},
"llmReasoningEffort": "low",
"disableInterruptions": true,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": [
"<string>"
],
"sttKeyterms": [
"<string>"
],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"transferMode": "cold",
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": true,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": true,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": true,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseRetrievalMode": "automatic",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": false
}
}{
"error": "invalid_body",
"details": {}
}{
"error": "unauthorized"
}{
"error": "billing_inactive"
}{
"error": "not_found"
}Authorizations
API key for authentication. Generate API keys from the RevRing dashboard.
Path Parameters
Agent ID
Body
Update an existing AI voice agent. All fields are optional.
ID of the messaging connection this agent sends and receives texts through (see Messaging Connections).
Per-agent messaging settings. A JSON object; set only the keys you need.
Show child attributes
Show child attributes
Per-agent website chat widget settings. A JSON object; set only the keys you need. Enabling the widget the first time mints a public embed key (returned as the read-only 'widgetKey' on the agent).
Show child attributes
Show child attributes
SIP trunk ID to use for this agent's calls
Folder ID. Pass null to move to Uncategorized.
Agent name
128Agent status (active = can receive calls, disabled = inactive)
active, disabled System prompt with {{variable}} placeholders
Default values for template variables
Agent's opening message
4000Optional outbound-specific opening. On outbound calls it is spoken instead of firstMessage; null or empty means firstMessage is used for both directions. Supports {{variables}}.
4000Who opens the conversation. agent (default) speaks the opening. user keeps the agent silent, including the re-engagement prompt, until the caller speaks (see beginAfterUserSilenceMs).
agent, user Milliseconds to wait after the call is reported answered before the opening is spoken. Null or 0 speaks it immediately. Useful on routes that report a call answered while the phone is still ringing. If the caller speaks during the pause the opening is skipped.
0 <= x <= 15000startSpeaker for outbound calls only. Null (default) uses startSpeaker for every call. Inbound and web calls always use startSpeaker.
agent, user firstMessageDelayMs for outbound calls only. Null (default) uses firstMessageDelayMs for every call. 0 is a real value: no pause on outbound calls.
0 <= x <= 15000For calls where the caller speaks first (startSpeaker or startSpeakerOutbound set to user): if the caller has said nothing after this many milliseconds, the agent speaks its opening. If the caller speaks first, the agent replies to them as usual. Null (default) keeps waiting. Keep it shorter than silenceEndCallTimeoutSeconds, otherwise a silent call ends before the agent speaks.
500 <= x <= 60000How the agent opens the call. "static" speaks the first message text. "dynamic" generates the opening line from the agent's prompt, so one agent can greet inbound and outbound callers differently. Pass null to restore the default behavior.
static, dynamic Seconds to wait for user response (-1 = no timeout)
x >= -1Silence duration before ending call (-1 = no timeout)
x >= -1Maximum call duration in seconds
x >= 1LLM temperature for response randomness (0-2)
0 <= x <= 2Language model tier powering the agent. Usage is billed per minute at the tier's rate: revring-standard $0.03/min, revring-max $0.05/min, revring-ultra $0.065/min. Defaults to revring-standard.
revring-standard, revring-max, revring-ultra IANA timezone identifier (e.g., America/New_York)
Language code (e.g., en, es, fr)
Webhook URL called before answering (optional)
Webhook URL called after call ends (optional)
Payload shape of the post-call webhook. retell sends Retell's call_ended and call_analyzed events; elevenlabs sends post_call_transcription (or call_initiation_failure for dials that never connected). See compatibility formats.
revring, retell, elevenlabs Extra events sent to the post-call webhook URL. call.started is sent once when a call connects; transfer.started, transfer.bridged and transfer.cancelled report transfers as they happen.
call.started, transfer.started, transfer.bridged, transfer.cancelled Fields to extract from the transcript after every call (see PostCallExtractionConfig). null = off
Show child attributes
Show child attributes
{ "fields": [ { "name": "callback_requested", "description": "Did the caller ask to be called back?", "type": "boolean" }, { "name": "preferred_day", "description": "Day of the week the caller prefers for the callback", "type": "enum", "values": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] }, { "name": "budget", "description": "Budget the caller mentioned, in dollars", "type": "number" } ] }
Success criteria judged after every call (see PostCallEvaluationConfig). null = off
Show child attributes
Show child attributes
{ "criteria": [ { "name": "appointment_confirmed", "description": "The caller confirmed an appointment date and time" }, { "name": "callback_requested", "description": "The caller asked to be called back" } ] }
What call content is kept. full keeps everything; redact_pii removes personal details from the transcript and summary before the call is stored or sent. See Data Controls.
full, redact_pii Personal detail categories removed in redact_pii mode. Default: all.
person_name, phone_number, email, address, date_of_birth, government_id, payment_card, bank_account, account_number, password_or_pin, medical_record_number Switching to manual publishes the current draft at once; switching back to auto clears the published version and every save is live again
auto, manual Allow agent to end calls
Custom instructions for ending calls
Allow agent to transfer calls
Available transfer destinations
Show child attributes
Show child attributes
Custom transfer instructions
Detect voicemail
Action when voicemail detected
hangup, leave_message Message to leave on voicemail. Supports {{variables}} like the prompt and first message.
Voice ID (copy from dashboard Voice Library)
Backup voice ID for seamless voice continuity: in the rare case the primary voice is temporarily unavailable, the agent switches to this voice automatically. Omit or set null to let the platform pick a standard backup voice.
Voice expressiveness (0 = consistent, 1 = more varied). Default 0.7.
0 <= x <= 1Speaking rate multiplier (0.5 = half speed, 2.0 = double speed). Default 1.0.
0.5 <= x <= 2Output level in decibels (-20 to 20; 0 = standard). Default 0.
-20 <= x <= 20Advanced sampling range (0 to 1). Default 0.7.
0 <= x <= 1Advanced runtime configuration (optional)
Conversation flow definition (only used when mode is conversation_flow)
Variables used for test calls initiated from the dashboard
Controls the reasoning effort of the language model. Higher values produce more thorough but slower responses.
low, medium, high When enabled, the agent will not be interrupted by the caller while speaking
Minimum speech duration (ms) before the caller's speech is registered as an interruption. Lower values make the agent easier to interrupt. Range: 100-2000, default 500.
100 <= x <= 2000Acknowledgment words or short phrases that never interrupt the agent while it is speaking (for example "okay", "yeah", "uh-huh"). Anything beyond a brief acknowledgment still interrupts normally, and these words behave normally when the agent is not speaking. null (default) uses the recommended platform list, [] disables the feature, and a list fully replaces the recommended list.
501 - 40Names or terms to boost in speech recognition, such as brand names, product names, or uncommon personal names. Merged with the stt_keyterms call variable and automatic boosting of name variables. Null means none.
501 - 60Background noise suppression on the caller's audio before the agent listens: background noise and competing voices are suppressed so the agent hears the person on the line. On by default for every agent; set off to disable for this agent.
on, off Number of transcribed words required before the caller's speech interrupts the agent while it is speaking. Default 1 keeps the agent responsive. Higher values make the agent harder to interrupt. 0 interrupts on any caller sound, including background noise.
0 <= x <= 10Transfer mode. cold disconnects the AI before connecting to the destination. warm keeps the AI on the line to introduce the caller.
cold, warm Configuration for warm transfers (only used when transferMode is warm)
Show child attributes
Show child attributes
Enable the keypad input (DTMF) tool, allowing callers to press phone keys during the conversation
Custom instructions for the keypad input tool behavior
2000How the agent queries linked knowledge bases. automatic retrieves context on every turn. query_tool lets the agent decide when to search.
automatic, query_tool Number of text chunks to retrieve per knowledge base query
1 <= x <= 20Minimum similarity score for retrieved chunks (0-1). Higher values return only highly relevant results.
0 <= x <= 1Voice and opening line per language code (e.g. es, pt-BR), used when a call runs in that language. See Language presets.
Show child attributes
Show child attributes
After each call, detect a caller's request not to be called again; when they asked, the call shows doNotCallRequested: true and their number goes on your do-not-call list. See Do-not-call list.
Response
Agent updated
AI Voice Agent configuration
Show child attributes
Show child attributes