import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.insights.tools.update({
toolId: 368362,
insightToolInput: {
name: "summary-tool",
description: "This tool uses GPT4.1 to generate a summary of the call",
version: 1,
toolArguments: {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded",
},
insightToolDefinitionId: 1,
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.insights.tools.update(tool_id=368362, insight_tool_input={
"name": "summary-tool",
"description": "This tool uses GPT4.1 to generate a summary of the call",
"version": 1,
"tool_arguments": {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded",
},
"insight_tool_definition_id": 1,
})
# Handle response
print(res)curl --request PUT \
--url https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_id} \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data @- <<EOF
{
"name": "summary-tool",
"description": "This tool uses GPT4.1 to generate a summary of the call",
"version": 1,
"tool_arguments": {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded"
},
"insight_tool_definition_id": 1
}
EOFconst options = {
method: 'PUT',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'summary-tool',
description: 'This tool uses GPT4.1 to generate a summary of the call',
version: 1,
tool_arguments: {
prompt: 'Provide a concise, accurate summary of the conversation\'s key points, focusing on the user\'s goal and how the agent responded'
},
insight_tool_definition_id: 1
})
};
fetch('https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_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.syllable.cloud/api/v1/insights/tool-configurations/{tool_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'summary-tool',
'description' => 'This tool uses GPT4.1 to generate a summary of the call',
'version' => 1,
'tool_arguments' => [
'prompt' => 'Provide a concise, accurate summary of the conversation\'s key points, focusing on the user\'s goal and how the agent responded'
],
'insight_tool_definition_id' => 1
]),
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/insights/tool-configurations/{tool_id}"
payload := strings.NewReader("{\n \"name\": \"summary-tool\",\n \"description\": \"This tool uses GPT4.1 to generate a summary of the call\",\n \"version\": 1,\n \"tool_arguments\": {\n \"prompt\": \"Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded\"\n },\n \"insight_tool_definition_id\": 1\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_id}")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"summary-tool\",\n \"description\": \"This tool uses GPT4.1 to generate a summary of the call\",\n \"version\": 1,\n \"tool_arguments\": {\n \"prompt\": \"Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded\"\n },\n \"insight_tool_definition_id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"summary-tool\",\n \"description\": \"This tool uses GPT4.1 to generate a summary of the call\",\n \"version\": 1,\n \"tool_arguments\": {\n \"prompt\": \"Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded\"\n },\n \"insight_tool_definition_id\": 1\n}"
response = http.request(request)
puts response.read_body{
"name": "summary-tool",
"description": "This tool uses GPT4.1 to generate a summary of the call",
"version": 1,
"tool_arguments": {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded"
},
"insight_tool_definition_id": 1,
"id": 1,
"last_updated_by": "user@email.com",
"insight_tool_definition": {
"id": 1,
"name": "llm_tool",
"type": "<string>",
"description": "An LLM tool evaluates a transcript with a given prompt",
"tool_parameters": {
"prompt": "string"
},
"tool_result_set": {
"summary": "string"
}
},
"created_at": "2026-09-16T00:00:00Z",
"updated_at": "2026-09-17T00:00:00Z",
"validation_issues": [
{
"id": "<string>",
"message": "<string>",
"severity": "error",
"path": "<string>",
"value": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update Insights Tool Configuration
Update an Insights tool.
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.insights.tools.update({
toolId: 368362,
insightToolInput: {
name: "summary-tool",
description: "This tool uses GPT4.1 to generate a summary of the call",
version: 1,
toolArguments: {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded",
},
insightToolDefinitionId: 1,
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.insights.tools.update(tool_id=368362, insight_tool_input={
"name": "summary-tool",
"description": "This tool uses GPT4.1 to generate a summary of the call",
"version": 1,
"tool_arguments": {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded",
},
"insight_tool_definition_id": 1,
})
# Handle response
print(res)curl --request PUT \
--url https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_id} \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data @- <<EOF
{
"name": "summary-tool",
"description": "This tool uses GPT4.1 to generate a summary of the call",
"version": 1,
"tool_arguments": {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded"
},
"insight_tool_definition_id": 1
}
EOFconst options = {
method: 'PUT',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'summary-tool',
description: 'This tool uses GPT4.1 to generate a summary of the call',
version: 1,
tool_arguments: {
prompt: 'Provide a concise, accurate summary of the conversation\'s key points, focusing on the user\'s goal and how the agent responded'
},
insight_tool_definition_id: 1
})
};
fetch('https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_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.syllable.cloud/api/v1/insights/tool-configurations/{tool_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'summary-tool',
'description' => 'This tool uses GPT4.1 to generate a summary of the call',
'version' => 1,
'tool_arguments' => [
'prompt' => 'Provide a concise, accurate summary of the conversation\'s key points, focusing on the user\'s goal and how the agent responded'
],
'insight_tool_definition_id' => 1
]),
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/insights/tool-configurations/{tool_id}"
payload := strings.NewReader("{\n \"name\": \"summary-tool\",\n \"description\": \"This tool uses GPT4.1 to generate a summary of the call\",\n \"version\": 1,\n \"tool_arguments\": {\n \"prompt\": \"Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded\"\n },\n \"insight_tool_definition_id\": 1\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_id}")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"summary-tool\",\n \"description\": \"This tool uses GPT4.1 to generate a summary of the call\",\n \"version\": 1,\n \"tool_arguments\": {\n \"prompt\": \"Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded\"\n },\n \"insight_tool_definition_id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/insights/tool-configurations/{tool_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"summary-tool\",\n \"description\": \"This tool uses GPT4.1 to generate a summary of the call\",\n \"version\": 1,\n \"tool_arguments\": {\n \"prompt\": \"Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded\"\n },\n \"insight_tool_definition_id\": 1\n}"
response = http.request(request)
puts response.read_body{
"name": "summary-tool",
"description": "This tool uses GPT4.1 to generate a summary of the call",
"version": 1,
"tool_arguments": {
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded"
},
"insight_tool_definition_id": 1,
"id": 1,
"last_updated_by": "user@email.com",
"insight_tool_definition": {
"id": 1,
"name": "llm_tool",
"type": "<string>",
"description": "An LLM tool evaluates a transcript with a given prompt",
"tool_parameters": {
"prompt": "string"
},
"tool_result_set": {
"summary": "string"
}
},
"created_at": "2026-09-16T00:00:00Z",
"updated_at": "2026-09-17T00:00:00Z",
"validation_issues": [
{
"id": "<string>",
"message": "<string>",
"severity": "error",
"path": "<string>",
"value": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Path Parameters
Body
Request model to create/update an insight tool configuration.
Human readable name of insight tool
"summary-tool"
Text description of insight tool configuration
"This tool uses GPT4.1 to generate a summary of the call"
Version number of insight tool configuration
1
Arguments for calling the insight tool
{
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded"
}
Internal ID for the definition used by the insight tool configuration
1
Response
Successful Response
Response model for insight tool saves, carrying any non-blocking findings.
Human readable name of insight tool
"summary-tool"
Text description of insight tool configuration
"This tool uses GPT4.1 to generate a summary of the call"
Version of insight tool
1
Arguments for calling the insight tool
{
"prompt": "Provide a concise, accurate summary of the conversation's key points, focusing on the user's goal and how the agent responded"
}
Unique ID for insight tool definition used by this tool configuration
1
Unique ID for insight tool
1
Email of user who last updated insight tool configuration
"user@email.com"
Insight Tool Definition
Show child attributes
Show child attributes
Timestamp of at which insight tool configuration was created
"2026-09-16T00:00:00Z"
Timestamp at which insight tool configuration was last updated
"2026-09-17T00:00:00Z"
Non-blocking findings for the saved insight tool (e.g. a deprecated model warning). Warnings and infos are informational; errors block the save.
Show child attributes
Show child attributes

