{
"Name": "IVR Workgroup",
"TelegentPhone": "+1234567890",
"Type": "IVR",
"CallOrder": "1",
"AnnouncementText": "Hello, welcome to Telegent. Press 1 for Sales, Press 2 for Support.",
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6",
"RecordCalls": true,
"TranscribeRecordings": false
}curl -X POST https://api.telegent.com/v1.0/workgroups \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"Name": "IVR Workgroup",
"TelegentPhone": "+1234567890",
"Type": "IVR",
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6"
}'import requests
url = "https://api.telegent.com/v1.0/workgroups"
payload = {
"Name": "IVR Workgroup",
"Type": "IVR",
"TelegentPhone": "+1234567890",
"CallOrder": "1",
"AnnouncementText": "<string>",
"AnnouncementUrl": "<string>",
"InternalExtension": "<string>",
"CallerIdType": "<string>",
"CallerIdName": "<string>",
"RecordCalls": True,
"TranscribeRecordings": False,
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6",
"TimeZone": "<string>",
"HoldMusicId": "<string>",
"AiRecording": True,
"OffHoursType": "<string>",
"OffHoursId": "<string>",
"OnHoursType": "<string>",
"OnHoursId": "<string>",
"WaitBetween": "<string>",
"TollFreeNumber": "<string>",
"AccountId": "<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({
Name: 'IVR Workgroup',
Type: 'IVR',
TelegentPhone: '+1234567890',
CallOrder: '1',
AnnouncementText: '<string>',
AnnouncementUrl: '<string>',
InternalExtension: '<string>',
CallerIdType: '<string>',
CallerIdName: '<string>',
RecordCalls: true,
TranscribeRecordings: false,
ScheduleId: 'SID-3741d220-0663-4289-85df-c203f43db5a6',
TimeZone: '<string>',
HoldMusicId: '<string>',
AiRecording: true,
OffHoursType: '<string>',
OffHoursId: '<string>',
OnHoursType: '<string>',
OnHoursId: '<string>',
WaitBetween: '<string>',
TollFreeNumber: '<string>',
AccountId: '<string>'
})
};
fetch('https://api.telegent.com/v1.0/workgroups', 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.telegent.com/v1.0/workgroups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'Name' => 'IVR Workgroup',
'Type' => 'IVR',
'TelegentPhone' => '+1234567890',
'CallOrder' => '1',
'AnnouncementText' => '<string>',
'AnnouncementUrl' => '<string>',
'InternalExtension' => '<string>',
'CallerIdType' => '<string>',
'CallerIdName' => '<string>',
'RecordCalls' => true,
'TranscribeRecordings' => false,
'ScheduleId' => 'SID-3741d220-0663-4289-85df-c203f43db5a6',
'TimeZone' => '<string>',
'HoldMusicId' => '<string>',
'AiRecording' => true,
'OffHoursType' => '<string>',
'OffHoursId' => '<string>',
'OnHoursType' => '<string>',
'OnHoursId' => '<string>',
'WaitBetween' => '<string>',
'TollFreeNumber' => '<string>',
'AccountId' => '<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.telegent.com/v1.0/workgroups"
payload := strings.NewReader("{\n \"Name\": \"IVR Workgroup\",\n \"Type\": \"IVR\",\n \"TelegentPhone\": \"+1234567890\",\n \"CallOrder\": \"1\",\n \"AnnouncementText\": \"<string>\",\n \"AnnouncementUrl\": \"<string>\",\n \"InternalExtension\": \"<string>\",\n \"CallerIdType\": \"<string>\",\n \"CallerIdName\": \"<string>\",\n \"RecordCalls\": true,\n \"TranscribeRecordings\": false,\n \"ScheduleId\": \"SID-3741d220-0663-4289-85df-c203f43db5a6\",\n \"TimeZone\": \"<string>\",\n \"HoldMusicId\": \"<string>\",\n \"AiRecording\": true,\n \"OffHoursType\": \"<string>\",\n \"OffHoursId\": \"<string>\",\n \"OnHoursType\": \"<string>\",\n \"OnHoursId\": \"<string>\",\n \"WaitBetween\": \"<string>\",\n \"TollFreeNumber\": \"<string>\",\n \"AccountId\": \"<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.telegent.com/v1.0/workgroups")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"IVR Workgroup\",\n \"Type\": \"IVR\",\n \"TelegentPhone\": \"+1234567890\",\n \"CallOrder\": \"1\",\n \"AnnouncementText\": \"<string>\",\n \"AnnouncementUrl\": \"<string>\",\n \"InternalExtension\": \"<string>\",\n \"CallerIdType\": \"<string>\",\n \"CallerIdName\": \"<string>\",\n \"RecordCalls\": true,\n \"TranscribeRecordings\": false,\n \"ScheduleId\": \"SID-3741d220-0663-4289-85df-c203f43db5a6\",\n \"TimeZone\": \"<string>\",\n \"HoldMusicId\": \"<string>\",\n \"AiRecording\": true,\n \"OffHoursType\": \"<string>\",\n \"OffHoursId\": \"<string>\",\n \"OnHoursType\": \"<string>\",\n \"OnHoursId\": \"<string>\",\n \"WaitBetween\": \"<string>\",\n \"TollFreeNumber\": \"<string>\",\n \"AccountId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telegent.com/v1.0/workgroups")
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 \"Name\": \"IVR Workgroup\",\n \"Type\": \"IVR\",\n \"TelegentPhone\": \"+1234567890\",\n \"CallOrder\": \"1\",\n \"AnnouncementText\": \"<string>\",\n \"AnnouncementUrl\": \"<string>\",\n \"InternalExtension\": \"<string>\",\n \"CallerIdType\": \"<string>\",\n \"CallerIdName\": \"<string>\",\n \"RecordCalls\": true,\n \"TranscribeRecordings\": false,\n \"ScheduleId\": \"SID-3741d220-0663-4289-85df-c203f43db5a6\",\n \"TimeZone\": \"<string>\",\n \"HoldMusicId\": \"<string>\",\n \"AiRecording\": true,\n \"OffHoursType\": \"<string>\",\n \"OffHoursId\": \"<string>\",\n \"OnHoursType\": \"<string>\",\n \"OnHoursId\": \"<string>\",\n \"WaitBetween\": \"<string>\",\n \"TollFreeNumber\": \"<string>\",\n \"AccountId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"WorkgroupId": "WID-12345-abc-12345",
"Name": "IVR Workgroup",
"TelegentPhone": "+1234567890",
"Type": "IVR",
"CallOrder": "1",
"AnnouncementText": "Hello, welcome to Telegent. Press 1 for Sales, Press 2 for Support.",
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6",
"AccountId": "AID-ab12345-2725-45a1-bd5e-526ed19799xx"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}Create Workgroup
Prerequisites:
- Required: Bearer token —
POST /v1.0/oauth2/tokens - Required: Voice Route ID (CRID) —
POST /v1.0/voice/routes
Create a new workgroup for intelligent call routing. Workgroups support types such as IVR, simultaneous ring, and round-robin distribution. Returns a unique WorkgroupId.
What this does: Returns the new workgroup’s WorkgroupId (WG-) and full configuration. Once created, add members using POST /v1.0/workgroups/activity and assign the workgroup to a voice route.
Next steps:
- Add members —
POST /v1.0/workgroups/activity - View account workgroups —
GET /v1.0/account/workgroups
{
"Name": "IVR Workgroup",
"TelegentPhone": "+1234567890",
"Type": "IVR",
"CallOrder": "1",
"AnnouncementText": "Hello, welcome to Telegent. Press 1 for Sales, Press 2 for Support.",
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6",
"RecordCalls": true,
"TranscribeRecordings": false
}curl -X POST https://api.telegent.com/v1.0/workgroups \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"Name": "IVR Workgroup",
"TelegentPhone": "+1234567890",
"Type": "IVR",
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6"
}'import requests
url = "https://api.telegent.com/v1.0/workgroups"
payload = {
"Name": "IVR Workgroup",
"Type": "IVR",
"TelegentPhone": "+1234567890",
"CallOrder": "1",
"AnnouncementText": "<string>",
"AnnouncementUrl": "<string>",
"InternalExtension": "<string>",
"CallerIdType": "<string>",
"CallerIdName": "<string>",
"RecordCalls": True,
"TranscribeRecordings": False,
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6",
"TimeZone": "<string>",
"HoldMusicId": "<string>",
"AiRecording": True,
"OffHoursType": "<string>",
"OffHoursId": "<string>",
"OnHoursType": "<string>",
"OnHoursId": "<string>",
"WaitBetween": "<string>",
"TollFreeNumber": "<string>",
"AccountId": "<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({
Name: 'IVR Workgroup',
Type: 'IVR',
TelegentPhone: '+1234567890',
CallOrder: '1',
AnnouncementText: '<string>',
AnnouncementUrl: '<string>',
InternalExtension: '<string>',
CallerIdType: '<string>',
CallerIdName: '<string>',
RecordCalls: true,
TranscribeRecordings: false,
ScheduleId: 'SID-3741d220-0663-4289-85df-c203f43db5a6',
TimeZone: '<string>',
HoldMusicId: '<string>',
AiRecording: true,
OffHoursType: '<string>',
OffHoursId: '<string>',
OnHoursType: '<string>',
OnHoursId: '<string>',
WaitBetween: '<string>',
TollFreeNumber: '<string>',
AccountId: '<string>'
})
};
fetch('https://api.telegent.com/v1.0/workgroups', 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.telegent.com/v1.0/workgroups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'Name' => 'IVR Workgroup',
'Type' => 'IVR',
'TelegentPhone' => '+1234567890',
'CallOrder' => '1',
'AnnouncementText' => '<string>',
'AnnouncementUrl' => '<string>',
'InternalExtension' => '<string>',
'CallerIdType' => '<string>',
'CallerIdName' => '<string>',
'RecordCalls' => true,
'TranscribeRecordings' => false,
'ScheduleId' => 'SID-3741d220-0663-4289-85df-c203f43db5a6',
'TimeZone' => '<string>',
'HoldMusicId' => '<string>',
'AiRecording' => true,
'OffHoursType' => '<string>',
'OffHoursId' => '<string>',
'OnHoursType' => '<string>',
'OnHoursId' => '<string>',
'WaitBetween' => '<string>',
'TollFreeNumber' => '<string>',
'AccountId' => '<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.telegent.com/v1.0/workgroups"
payload := strings.NewReader("{\n \"Name\": \"IVR Workgroup\",\n \"Type\": \"IVR\",\n \"TelegentPhone\": \"+1234567890\",\n \"CallOrder\": \"1\",\n \"AnnouncementText\": \"<string>\",\n \"AnnouncementUrl\": \"<string>\",\n \"InternalExtension\": \"<string>\",\n \"CallerIdType\": \"<string>\",\n \"CallerIdName\": \"<string>\",\n \"RecordCalls\": true,\n \"TranscribeRecordings\": false,\n \"ScheduleId\": \"SID-3741d220-0663-4289-85df-c203f43db5a6\",\n \"TimeZone\": \"<string>\",\n \"HoldMusicId\": \"<string>\",\n \"AiRecording\": true,\n \"OffHoursType\": \"<string>\",\n \"OffHoursId\": \"<string>\",\n \"OnHoursType\": \"<string>\",\n \"OnHoursId\": \"<string>\",\n \"WaitBetween\": \"<string>\",\n \"TollFreeNumber\": \"<string>\",\n \"AccountId\": \"<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.telegent.com/v1.0/workgroups")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"IVR Workgroup\",\n \"Type\": \"IVR\",\n \"TelegentPhone\": \"+1234567890\",\n \"CallOrder\": \"1\",\n \"AnnouncementText\": \"<string>\",\n \"AnnouncementUrl\": \"<string>\",\n \"InternalExtension\": \"<string>\",\n \"CallerIdType\": \"<string>\",\n \"CallerIdName\": \"<string>\",\n \"RecordCalls\": true,\n \"TranscribeRecordings\": false,\n \"ScheduleId\": \"SID-3741d220-0663-4289-85df-c203f43db5a6\",\n \"TimeZone\": \"<string>\",\n \"HoldMusicId\": \"<string>\",\n \"AiRecording\": true,\n \"OffHoursType\": \"<string>\",\n \"OffHoursId\": \"<string>\",\n \"OnHoursType\": \"<string>\",\n \"OnHoursId\": \"<string>\",\n \"WaitBetween\": \"<string>\",\n \"TollFreeNumber\": \"<string>\",\n \"AccountId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telegent.com/v1.0/workgroups")
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 \"Name\": \"IVR Workgroup\",\n \"Type\": \"IVR\",\n \"TelegentPhone\": \"+1234567890\",\n \"CallOrder\": \"1\",\n \"AnnouncementText\": \"<string>\",\n \"AnnouncementUrl\": \"<string>\",\n \"InternalExtension\": \"<string>\",\n \"CallerIdType\": \"<string>\",\n \"CallerIdName\": \"<string>\",\n \"RecordCalls\": true,\n \"TranscribeRecordings\": false,\n \"ScheduleId\": \"SID-3741d220-0663-4289-85df-c203f43db5a6\",\n \"TimeZone\": \"<string>\",\n \"HoldMusicId\": \"<string>\",\n \"AiRecording\": true,\n \"OffHoursType\": \"<string>\",\n \"OffHoursId\": \"<string>\",\n \"OnHoursType\": \"<string>\",\n \"OnHoursId\": \"<string>\",\n \"WaitBetween\": \"<string>\",\n \"TollFreeNumber\": \"<string>\",\n \"AccountId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"WorkgroupId": "WID-12345-abc-12345",
"Name": "IVR Workgroup",
"TelegentPhone": "+1234567890",
"Type": "IVR",
"CallOrder": "1",
"AnnouncementText": "Hello, welcome to Telegent. Press 1 for Sales, Press 2 for Support.",
"ScheduleId": "SID-3741d220-0663-4289-85df-c203f43db5a6",
"AccountId": "AID-ab12345-2725-45a1-bd5e-526ed19799xx"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}{
"StatusCode": 123,
"Message": "<string>"
}Body
Friendly name for the workgroup
"IVR Workgroup"
Workgroup routing type
IVR, simultaneous, round-robin "IVR"
Phone number assigned to this workgroup (E.164 format)
"+1234567890"
Call distribution order
"1"
Text-to-speech announcement played to callers
URL of audio file for announcement
Internal extension number
Caller ID type configuration
Caller ID name
Enable call recording
true
Enable transcription of recordings
false
Schedule ID to associate with this workgroup
"SID-3741d220-0663-4289-85df-c203f43db5a6"
Timezone for schedule (e.g., America/New_York)
ID of hold music to play
Enable AI-enhanced recording
Off-hours routing type (User or Workgroup)
User ID or Workgroup ID for off-hours routing
On-hours routing type (User or Workgroup)
User ID or Workgroup ID for on-hours routing
Wait time between call attempts
Toll-free number associated with workgroup
Account ID to associate workgroup with
Response
Success — returns the new Workgroup ID (WID-) and configuration
The response is of type object.