import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.channels.create({
name: "twilio",
channelService: "sip",
supportedModes: "chat,voice",
isSystemChannel: false,
config: {
accountSid: "AC123...",
authToken: "sometoken",
providerCredentials: {
"api_key": "atk123",
"username": "test_username",
},
telephony: {
preInputTimeout: 1.2,
overallInputTimeout: 20,
interruptibility: "dtmf_only",
passiveSpeechInputEnabled: true,
passiveInputStart: 0.5,
asyncEnabled: true,
},
email: {
sendingDomain: "mail.example.com",
},
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK, models
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.channels.create(request={
"name": "twilio",
"channel_service": models.ChannelServices.SIP,
"supported_modes": "chat,voice",
"is_system_channel": False,
"config": {
"account_sid": "AC123...",
"auth_token": "sometoken",
"provider_credentials": {
"api_key": "atk123",
"username": "test_username",
},
"telephony": {
"pre_input_timeout": 1.2,
"overall_input_timeout": 20.0,
"interruptibility": "dtmf_only",
"passive_speech_input_enabled": True,
"passive_input_start": 0.5,
"async_enabled": True,
},
"email": {
"sending_domain": "mail.example.com",
},
},
})
# Handle response
print(res)curl --request POST \
--url https://api.syllable.cloud/api/v1/channels/ \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"name": "twilio",
"channel_service": "webchat",
"config": {
"account_sid": "AC123",
"auth_token": "sometoken",
"telephony": {
"async_enabled": true,
"interruptibility": "dtmf_only",
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 3
}
},
"supported_modes": "chat,voice",
"is_system_channel": false
}
'const options = {
method: 'POST',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'twilio',
channel_service: 'webchat',
config: {
account_sid: 'AC123',
auth_token: 'sometoken',
telephony: {
async_enabled: true,
interruptibility: 'dtmf_only',
passive_input_start: 0.5,
passive_speech_input_enabled: true,
pre_input_timeout: 3
}
},
supported_modes: 'chat,voice',
is_system_channel: false
})
};
fetch('https://api.syllable.cloud/api/v1/channels/', 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.syllable.cloud/api/v1/channels/",
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' => 'twilio',
'channel_service' => 'webchat',
'config' => [
'account_sid' => 'AC123',
'auth_token' => 'sometoken',
'telephony' => [
'async_enabled' => true,
'interruptibility' => 'dtmf_only',
'passive_input_start' => 0.5,
'passive_speech_input_enabled' => true,
'pre_input_timeout' => 3
]
],
'supported_modes' => 'chat,voice',
'is_system_channel' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Syllable-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.syllable.cloud/api/v1/channels/"
payload := strings.NewReader("{\n \"name\": \"twilio\",\n \"channel_service\": \"webchat\",\n \"config\": {\n \"account_sid\": \"AC123\",\n \"auth_token\": \"sometoken\",\n \"telephony\": {\n \"async_enabled\": true,\n \"interruptibility\": \"dtmf_only\",\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 3\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Syllable-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.syllable.cloud/api/v1/channels/")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"twilio\",\n \"channel_service\": \"webchat\",\n \"config\": {\n \"account_sid\": \"AC123\",\n \"auth_token\": \"sometoken\",\n \"telephony\": {\n \"async_enabled\": true,\n \"interruptibility\": \"dtmf_only\",\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 3\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/channels/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"twilio\",\n \"channel_service\": \"webchat\",\n \"config\": {\n \"account_sid\": \"AC123\",\n \"auth_token\": \"sometoken\",\n \"telephony\": {\n \"async_enabled\": true,\n \"interruptibility\": \"dtmf_only\",\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 3\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": false\n}"
response = http.request(request)
puts response.read_body{
"name": "syllable-webchat",
"channel_service": "webchat",
"id": 123,
"supported_modes": "chat,voice",
"is_system_channel": false,
"config": {
"telephony": {
"async_enabled": true,
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Channel
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.channels.create({
name: "twilio",
channelService: "sip",
supportedModes: "chat,voice",
isSystemChannel: false,
config: {
accountSid: "AC123...",
authToken: "sometoken",
providerCredentials: {
"api_key": "atk123",
"username": "test_username",
},
telephony: {
preInputTimeout: 1.2,
overallInputTimeout: 20,
interruptibility: "dtmf_only",
passiveSpeechInputEnabled: true,
passiveInputStart: 0.5,
asyncEnabled: true,
},
email: {
sendingDomain: "mail.example.com",
},
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK, models
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.channels.create(request={
"name": "twilio",
"channel_service": models.ChannelServices.SIP,
"supported_modes": "chat,voice",
"is_system_channel": False,
"config": {
"account_sid": "AC123...",
"auth_token": "sometoken",
"provider_credentials": {
"api_key": "atk123",
"username": "test_username",
},
"telephony": {
"pre_input_timeout": 1.2,
"overall_input_timeout": 20.0,
"interruptibility": "dtmf_only",
"passive_speech_input_enabled": True,
"passive_input_start": 0.5,
"async_enabled": True,
},
"email": {
"sending_domain": "mail.example.com",
},
},
})
# Handle response
print(res)curl --request POST \
--url https://api.syllable.cloud/api/v1/channels/ \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"name": "twilio",
"channel_service": "webchat",
"config": {
"account_sid": "AC123",
"auth_token": "sometoken",
"telephony": {
"async_enabled": true,
"interruptibility": "dtmf_only",
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 3
}
},
"supported_modes": "chat,voice",
"is_system_channel": false
}
'const options = {
method: 'POST',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'twilio',
channel_service: 'webchat',
config: {
account_sid: 'AC123',
auth_token: 'sometoken',
telephony: {
async_enabled: true,
interruptibility: 'dtmf_only',
passive_input_start: 0.5,
passive_speech_input_enabled: true,
pre_input_timeout: 3
}
},
supported_modes: 'chat,voice',
is_system_channel: false
})
};
fetch('https://api.syllable.cloud/api/v1/channels/', 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.syllable.cloud/api/v1/channels/",
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' => 'twilio',
'channel_service' => 'webchat',
'config' => [
'account_sid' => 'AC123',
'auth_token' => 'sometoken',
'telephony' => [
'async_enabled' => true,
'interruptibility' => 'dtmf_only',
'passive_input_start' => 0.5,
'passive_speech_input_enabled' => true,
'pre_input_timeout' => 3
]
],
'supported_modes' => 'chat,voice',
'is_system_channel' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Syllable-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.syllable.cloud/api/v1/channels/"
payload := strings.NewReader("{\n \"name\": \"twilio\",\n \"channel_service\": \"webchat\",\n \"config\": {\n \"account_sid\": \"AC123\",\n \"auth_token\": \"sometoken\",\n \"telephony\": {\n \"async_enabled\": true,\n \"interruptibility\": \"dtmf_only\",\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 3\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Syllable-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.syllable.cloud/api/v1/channels/")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"twilio\",\n \"channel_service\": \"webchat\",\n \"config\": {\n \"account_sid\": \"AC123\",\n \"auth_token\": \"sometoken\",\n \"telephony\": {\n \"async_enabled\": true,\n \"interruptibility\": \"dtmf_only\",\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 3\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/channels/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"twilio\",\n \"channel_service\": \"webchat\",\n \"config\": {\n \"account_sid\": \"AC123\",\n \"auth_token\": \"sometoken\",\n \"telephony\": {\n \"async_enabled\": true,\n \"interruptibility\": \"dtmf_only\",\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 3\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": false\n}"
response = http.request(request)
puts response.read_body{
"name": "syllable-webchat",
"channel_service": "webchat",
"id": 123,
"supported_modes": "chat,voice",
"is_system_channel": false,
"config": {
"telephony": {
"async_enabled": true,
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
Request model to create a channel through the organizations API
The channel name
"twilio"
The service that facilitates communication on the channel
sip, twilio, email, webchat, africastalking, whatsapp "webchat"
The configuration of the channel
Show child attributes
Show child attributes
{ "account_sid": "AC123", "auth_token": "sometoken", "telephony": { "async_enabled": true, "interruptibility": "dtmf_only", "passive_input_start": 0.5, "passive_speech_input_enabled": true, "pre_input_timeout": 3 } }
{ "provider_credentials": { "api_key": "atk123", "username": "test_username" }, "telephony": { "async_enabled": true, "interruptibility": "dtmf_only", "passive_input_start": 0.5, "passive_speech_input_enabled": true, "pre_input_timeout": 3 } }
The comma-delimited list of supported modes for the channel, which defines the possible communication methods for channel targets linked to it.
"chat,voice"
Whether the channel is a built-in system channel (i.e., is not customizable)
false
Response
Successful Response
The channel name
"syllable-webchat"
The service that facilitates communication on the channel
sip, twilio, email, webchat, africastalking, whatsapp "webchat"
The channel ID
The comma-delimited list of supported modes for the channel, which defines the possible communication methods for channel targets linked to it.
"chat,voice"
Whether the channel is a built-in system channel (i.e., is not customizable)
false
Configuration for the channel
Show child attributes
Show child attributes
{ "telephony": { "async_enabled": true, "interruptibility": "dtmf_only", "overall_input_timeout": 20, "passive_input_start": 0.5, "passive_speech_input_enabled": true, "pre_input_timeout": 1.2 } }

