cURL
curl --request GET \
--url https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions', 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.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"definitions": [
{
"description": "Select this ONLY if:\n- User explicitly agrees to the product or service\n- User gives clear confirmation to proceed\n- User accepts the offer\nIMPORTANT: General engagement, neutral responses, or inability to act immediately should NOT be counted as interest without explicit agreement to the product/service",
"format": "outcome: interested\nreason: (why you think the user is interested)"
},
{
"description": "Select this ONLY if:\n- User does not have enough money",
"format": "outcome: not_qualified\nreason: (why you think the user is not qualified)"
},
{
"description": "Select this ONLY if:\n- User mentions a bad experience with the product/service\n- User expresses frustration or disappointment with the product/service\n- User shares a negative story or feedback about the product/service\nIMPORTANT: DO NOT select if the user is interested or explicitly declines",
"format": "outcome: burned_experience\nreason: (why you think the user had a burned experience)"
},
{
"description": "Select this ONLY if HAVE AT LEAST 3 TURNS IN THE CONVERSATION AND :\nDO NOT SELECT IF CONVERSATION IS SHORT OR USER DID NOT EXPRESS ANY EXPLICIT INTEREST OR DISINTEREST\n- MUST HAVE AT LEAST 3 TURNS IN THE CONVERSATION\n- User explicitly says they're not interested\n- DO NOT select if the user said \"I'm busy\" or \"call me later\" without further engagement\n- DO NOT select if user only had 2 turns (\"user:\") or less! f.e: \"user: This is..\" is not not_interested outcome\n",
"format": "outcome: not_interested\nreason: (why you think the user is not interested)"
},
{
"description": "Select quick_hangup ONLY IF ANY OF FOLLOWING CONDITIONS ARE MET:\n- SELECT IF USER HANGS UP QUICKLY AFTER AGENT STARTED SPEAKING\n- IF the user hangs up without saying anything meaningful and agent spoke - it's probably quick_hangup\n\n**ONLY USE THIS quick_hangup outcome if \"user:\" AND \"agent:\" exist in transcript**\n\nDO NOT SELECT quick_hangup if you do not see \"agent:\" in transcript!\n\nexample for quick_hangup outcome:\n1. user: Hello\nagent: Hi, I'm calling you about...\n<end of call, user hangs up quickly>\n\n\n",
"format": "outcome: quick_hangup\nreason: (why you think the user hung up quickly)"
},
{
"description": "Select this ONLY if:\n- The user speaks and theres no \"agent:\" at all in transcript!!.\n- Only for cases where there might be a technical issue with agent. if the agent didnt have a good sales pitch its not agent_issue!\n- if the user repeatedly says \"hello\" or \"are you there?\" theres an agent issue.\nIF USER HANGS UP ON AGENT AFTER AGENT STARTED SPEAKING INITITALLY DO NOT SELECT agent_issue.\n\nEXAMPLE for agent_issue outcome:\n1. user: Hello\n<end of call, agent did not respond at all, user hangs up quickly before agent speaks>\n",
"format": "outcome: agent_issue\nreason: (why you think the user hung up quickly)"
},
{
"description": "Select this if ANY of these occur:\n- The call reaches an automated voicemail or messaging system.\n- The call is answered by an automated system or machine response (not a human).\n- You hear a pre-recorded menu options or instructions.\n- If the user said hello or similar, it can't be a voice mail.\n- The speaker is primarily pronouncing numbers (e.g., leaving a phone number).\n- The user said \"I'm not available right now\" or \"Answer machine..\" or similar without further engagement.\nIMPORTANT:\n- DO NOT select if the user answering and taking messages\n- DO NOT select if the user said ONLY greetings or \"hello\" without further engagement\n\nExamples of voice_mail outcome:\n- Es el servicio de contestador para 3...\n- Encuentra disponible.\n",
"format": "outcome: voice_mail\nreason: (why you think the call reached voicemail)"
},
{
"description": "Select this ONLY if:\n- User explicitly requests a callback\n- User suggests a specific time for future contact\n- User says something like \"call me tomorrow/next week/etc.\"\n- User says he's busy right now.\n- Call ended reason is not \"customer-did-not-answer\"\nIMPORTANT:\n - DO NOT select night hours (after 9 PM or before 9 AM) for callback\n - Must include specific date/time information when user provides it\n - You need to provide date and time in the user's timezone\nNote: If only date is provided without time, use format YYYY-MM-DD",
"format": "outcome: call_me_later\ncall_me_back_at: YYYY-MM-DD HH:mm:ss\nreason: (why you think the user wants a callback)"
},
{
"description": "Select this ONLY if:\n- User explicitly asks to not be called again\n- User requests removal from call list\n- User states they don't want to receive any future calls\nIMPORTANT: Must be an explicit request, not just current rejection",
"format": "outcome: do_not_call\nreason: (why you think the user doesn't want to be called)"
},
{
"description": "Select this ONLY if:\n- User shows some interest but is not fully committed\n- User asks for more information or details\n- User expresses uncertainty or hesitation\n- User asks for a follow-up or more time to think\nIMPORTANT:\n- DO NOT select if the user explicitly declines or says they're not interested",
"format": "outcome: maybe_interested\nreason: (why you think the user is maybe interested)"
},
{
"description": "Select this ONLY if:\n- User mentions any audio issues\n- User complains about not hearing the agent\n- User expresses frustration about the call quality\nIMPORTANT: DO NOT select if the user is not interested or explicitly declines",
"format": "outcome: audio_issue\nreason: (why you think the user had an audio issue)"
},
null,
null,
null,
null
]
}{
"message": "<string>"
}CallOutcomeClassifiers
Get v1voiceagentsclassifierscall outcomedefinitions
GET
/
v1
/
voice
/
agents
/
classifiers
/
call-outcome
/
definitions
cURL
curl --request GET \
--url https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions', 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.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.comm.com/api/v1/voice/agents/classifiers/call-outcome/definitions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"definitions": [
{
"description": "Select this ONLY if:\n- User explicitly agrees to the product or service\n- User gives clear confirmation to proceed\n- User accepts the offer\nIMPORTANT: General engagement, neutral responses, or inability to act immediately should NOT be counted as interest without explicit agreement to the product/service",
"format": "outcome: interested\nreason: (why you think the user is interested)"
},
{
"description": "Select this ONLY if:\n- User does not have enough money",
"format": "outcome: not_qualified\nreason: (why you think the user is not qualified)"
},
{
"description": "Select this ONLY if:\n- User mentions a bad experience with the product/service\n- User expresses frustration or disappointment with the product/service\n- User shares a negative story or feedback about the product/service\nIMPORTANT: DO NOT select if the user is interested or explicitly declines",
"format": "outcome: burned_experience\nreason: (why you think the user had a burned experience)"
},
{
"description": "Select this ONLY if HAVE AT LEAST 3 TURNS IN THE CONVERSATION AND :\nDO NOT SELECT IF CONVERSATION IS SHORT OR USER DID NOT EXPRESS ANY EXPLICIT INTEREST OR DISINTEREST\n- MUST HAVE AT LEAST 3 TURNS IN THE CONVERSATION\n- User explicitly says they're not interested\n- DO NOT select if the user said \"I'm busy\" or \"call me later\" without further engagement\n- DO NOT select if user only had 2 turns (\"user:\") or less! f.e: \"user: This is..\" is not not_interested outcome\n",
"format": "outcome: not_interested\nreason: (why you think the user is not interested)"
},
{
"description": "Select quick_hangup ONLY IF ANY OF FOLLOWING CONDITIONS ARE MET:\n- SELECT IF USER HANGS UP QUICKLY AFTER AGENT STARTED SPEAKING\n- IF the user hangs up without saying anything meaningful and agent spoke - it's probably quick_hangup\n\n**ONLY USE THIS quick_hangup outcome if \"user:\" AND \"agent:\" exist in transcript**\n\nDO NOT SELECT quick_hangup if you do not see \"agent:\" in transcript!\n\nexample for quick_hangup outcome:\n1. user: Hello\nagent: Hi, I'm calling you about...\n<end of call, user hangs up quickly>\n\n\n",
"format": "outcome: quick_hangup\nreason: (why you think the user hung up quickly)"
},
{
"description": "Select this ONLY if:\n- The user speaks and theres no \"agent:\" at all in transcript!!.\n- Only for cases where there might be a technical issue with agent. if the agent didnt have a good sales pitch its not agent_issue!\n- if the user repeatedly says \"hello\" or \"are you there?\" theres an agent issue.\nIF USER HANGS UP ON AGENT AFTER AGENT STARTED SPEAKING INITITALLY DO NOT SELECT agent_issue.\n\nEXAMPLE for agent_issue outcome:\n1. user: Hello\n<end of call, agent did not respond at all, user hangs up quickly before agent speaks>\n",
"format": "outcome: agent_issue\nreason: (why you think the user hung up quickly)"
},
{
"description": "Select this if ANY of these occur:\n- The call reaches an automated voicemail or messaging system.\n- The call is answered by an automated system or machine response (not a human).\n- You hear a pre-recorded menu options or instructions.\n- If the user said hello or similar, it can't be a voice mail.\n- The speaker is primarily pronouncing numbers (e.g., leaving a phone number).\n- The user said \"I'm not available right now\" or \"Answer machine..\" or similar without further engagement.\nIMPORTANT:\n- DO NOT select if the user answering and taking messages\n- DO NOT select if the user said ONLY greetings or \"hello\" without further engagement\n\nExamples of voice_mail outcome:\n- Es el servicio de contestador para 3...\n- Encuentra disponible.\n",
"format": "outcome: voice_mail\nreason: (why you think the call reached voicemail)"
},
{
"description": "Select this ONLY if:\n- User explicitly requests a callback\n- User suggests a specific time for future contact\n- User says something like \"call me tomorrow/next week/etc.\"\n- User says he's busy right now.\n- Call ended reason is not \"customer-did-not-answer\"\nIMPORTANT:\n - DO NOT select night hours (after 9 PM or before 9 AM) for callback\n - Must include specific date/time information when user provides it\n - You need to provide date and time in the user's timezone\nNote: If only date is provided without time, use format YYYY-MM-DD",
"format": "outcome: call_me_later\ncall_me_back_at: YYYY-MM-DD HH:mm:ss\nreason: (why you think the user wants a callback)"
},
{
"description": "Select this ONLY if:\n- User explicitly asks to not be called again\n- User requests removal from call list\n- User states they don't want to receive any future calls\nIMPORTANT: Must be an explicit request, not just current rejection",
"format": "outcome: do_not_call\nreason: (why you think the user doesn't want to be called)"
},
{
"description": "Select this ONLY if:\n- User shows some interest but is not fully committed\n- User asks for more information or details\n- User expresses uncertainty or hesitation\n- User asks for a follow-up or more time to think\nIMPORTANT:\n- DO NOT select if the user explicitly declines or says they're not interested",
"format": "outcome: maybe_interested\nreason: (why you think the user is maybe interested)"
},
{
"description": "Select this ONLY if:\n- User mentions any audio issues\n- User complains about not hearing the agent\n- User expresses frustration about the call quality\nIMPORTANT: DO NOT select if the user is not interested or explicitly declines",
"format": "outcome: audio_issue\nreason: (why you think the user had an audio issue)"
},
null,
null,
null,
null
]
}{
"message": "<string>"
}⌘I