import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.insights.workflows.update({
workflowId: 673493,
insightWorkflowInput: {
name: "summary-workflow",
source: "agent",
description: "Default workflow - generates a summary of the call",
insightToolIds: [
1,
],
conditions: {
minDuration: 120,
maxDuration: 600,
sampleRate: 0.1,
agentList: [
866324,
826325,
],
promptList: [
"123324",
],
folderList: [
16754,
67535,
],
sheetInfo: {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data",
},
},
startDatetime: new Date("2026-02-03T00:00:00Z"),
endDatetime: new Date("2026-02-04T00:00:00Z"),
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
from syllable_sdk.utils import parse_datetime
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.insights.workflows.update(workflow_id=766381, insight_workflow_input={
"name": "summary-workflow",
"source": "agent",
"description": "Default workflow - generates a summary of the call",
"insight_tool_ids": [
1,
],
"conditions": {
"min_duration": 120,
"max_duration": 600,
"sample_rate": 0.1,
"agent_list": [
866324,
826325,
],
"prompt_list": [
"123324",
],
"folder_list": [
16754,
67535,
],
"sheet_info": {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data",
},
},
"start_datetime": parse_datetime("2026-02-03T00:00:00Z"),
"end_datetime": parse_datetime("2026-02-04T00:00:00Z"),
})
# Handle response
print(res)curl --request PUT \
--url https://api.syllable.cloud/api/v1/insights/workflows/{workflow_id} \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"source": "<string>",
"description": "<string>",
"insight_tool_ids": [
123
],
"conditions": {
"min_duration": 120,
"max_duration": 600,
"sample_rate": 0.1,
"agent_list": [
866324,
826325
],
"prompt_list": [
"123324"
],
"folder_list": [
16754,
67535
],
"sheet_info": {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data"
}
},
"start_datetime": "2026-07-08T00:00:00Z",
"end_datetime": "2026-07-09T00:00:00Z"
}
'const options = {
method: 'PUT',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
source: '<string>',
description: '<string>',
insight_tool_ids: [123],
conditions: {
min_duration: 120,
max_duration: 600,
sample_rate: 0.1,
agent_list: [866324, 826325],
prompt_list: ['123324'],
folder_list: [16754, 67535],
sheet_info: {
sheet_id: '1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go',
sheet_name: 'Q1 Sales Data'
}
},
start_datetime: '2026-07-08T00:00:00Z',
end_datetime: '2026-07-09T00:00:00Z'
})
};
fetch('https://api.syllable.cloud/api/v1/insights/workflows/{workflow_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/workflows/{workflow_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' => '<string>',
'source' => '<string>',
'description' => '<string>',
'insight_tool_ids' => [
123
],
'conditions' => [
'min_duration' => 120,
'max_duration' => 600,
'sample_rate' => 0.1,
'agent_list' => [
866324,
826325
],
'prompt_list' => [
'123324'
],
'folder_list' => [
16754,
67535
],
'sheet_info' => [
'sheet_id' => '1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go',
'sheet_name' => 'Q1 Sales Data'
]
],
'start_datetime' => '2026-07-08T00:00:00Z',
'end_datetime' => '2026-07-09T00:00:00Z'
]),
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/workflows/{workflow_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"source\": \"<string>\",\n \"description\": \"<string>\",\n \"insight_tool_ids\": [\n 123\n ],\n \"conditions\": {\n \"min_duration\": 120,\n \"max_duration\": 600,\n \"sample_rate\": 0.1,\n \"agent_list\": [\n 866324,\n 826325\n ],\n \"prompt_list\": [\n \"123324\"\n ],\n \"folder_list\": [\n 16754,\n 67535\n ],\n \"sheet_info\": {\n \"sheet_id\": \"1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go\",\n \"sheet_name\": \"Q1 Sales Data\"\n }\n },\n \"start_datetime\": \"2026-07-08T00:00:00Z\",\n \"end_datetime\": \"2026-07-09T00:00:00Z\"\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/workflows/{workflow_id}")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"source\": \"<string>\",\n \"description\": \"<string>\",\n \"insight_tool_ids\": [\n 123\n ],\n \"conditions\": {\n \"min_duration\": 120,\n \"max_duration\": 600,\n \"sample_rate\": 0.1,\n \"agent_list\": [\n 866324,\n 826325\n ],\n \"prompt_list\": [\n \"123324\"\n ],\n \"folder_list\": [\n 16754,\n 67535\n ],\n \"sheet_info\": {\n \"sheet_id\": \"1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go\",\n \"sheet_name\": \"Q1 Sales Data\"\n }\n },\n \"start_datetime\": \"2026-07-08T00:00:00Z\",\n \"end_datetime\": \"2026-07-09T00:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/insights/workflows/{workflow_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\": \"<string>\",\n \"source\": \"<string>\",\n \"description\": \"<string>\",\n \"insight_tool_ids\": [\n 123\n ],\n \"conditions\": {\n \"min_duration\": 120,\n \"max_duration\": 600,\n \"sample_rate\": 0.1,\n \"agent_list\": [\n 866324,\n 826325\n ],\n \"prompt_list\": [\n \"123324\"\n ],\n \"folder_list\": [\n 16754,\n 67535\n ],\n \"sheet_info\": {\n \"sheet_id\": \"1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go\",\n \"sheet_name\": \"Q1 Sales Data\"\n }\n },\n \"start_datetime\": \"2026-07-08T00:00:00Z\",\n \"end_datetime\": \"2026-07-09T00:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"source": "<string>",
"description": "<string>",
"insight_tool_ids": [
123
],
"conditions": {
"min_duration": 120,
"max_duration": 600,
"sample_rate": 0.1,
"agent_list": [
866324,
826325
],
"prompt_list": [
"123324"
],
"folder_list": [
16754,
67535
],
"sheet_info": {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data"
}
},
"id": 123,
"insight_tools": [
{
"name": "<string>",
"description": "<string>",
"version": 123,
"tool_arguments": "<unknown>",
"insight_tool_definition_id": 123,
"id": 123,
"last_updated_by": "<string>",
"insight_tool_definition": {
"id": 123,
"name": "<string>",
"type": "<string>",
"description": "<string>",
"tool_parameters": "<unknown>",
"tool_result_set": "<unknown>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"status": "<string>",
"estimate": {
"backfill_count": 123,
"backfill_duration": 123,
"estimated_daily_count": 123,
"estimated_daily_duration": 123,
"estimated_daily_cost": 123,
"estimated_backfill_cost": 123
},
"last_updated_by": "<string>",
"start_datetime": "2026-07-08T00:00:00Z",
"end_datetime": "2026-07-09T00:00:00Z",
"queue_count": 10,
"failed_count": 2,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update Insights Workflow
Update a InsightWorkflow.
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.insights.workflows.update({
workflowId: 673493,
insightWorkflowInput: {
name: "summary-workflow",
source: "agent",
description: "Default workflow - generates a summary of the call",
insightToolIds: [
1,
],
conditions: {
minDuration: 120,
maxDuration: 600,
sampleRate: 0.1,
agentList: [
866324,
826325,
],
promptList: [
"123324",
],
folderList: [
16754,
67535,
],
sheetInfo: {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data",
},
},
startDatetime: new Date("2026-02-03T00:00:00Z"),
endDatetime: new Date("2026-02-04T00:00:00Z"),
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
from syllable_sdk.utils import parse_datetime
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.insights.workflows.update(workflow_id=766381, insight_workflow_input={
"name": "summary-workflow",
"source": "agent",
"description": "Default workflow - generates a summary of the call",
"insight_tool_ids": [
1,
],
"conditions": {
"min_duration": 120,
"max_duration": 600,
"sample_rate": 0.1,
"agent_list": [
866324,
826325,
],
"prompt_list": [
"123324",
],
"folder_list": [
16754,
67535,
],
"sheet_info": {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data",
},
},
"start_datetime": parse_datetime("2026-02-03T00:00:00Z"),
"end_datetime": parse_datetime("2026-02-04T00:00:00Z"),
})
# Handle response
print(res)curl --request PUT \
--url https://api.syllable.cloud/api/v1/insights/workflows/{workflow_id} \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"source": "<string>",
"description": "<string>",
"insight_tool_ids": [
123
],
"conditions": {
"min_duration": 120,
"max_duration": 600,
"sample_rate": 0.1,
"agent_list": [
866324,
826325
],
"prompt_list": [
"123324"
],
"folder_list": [
16754,
67535
],
"sheet_info": {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data"
}
},
"start_datetime": "2026-07-08T00:00:00Z",
"end_datetime": "2026-07-09T00:00:00Z"
}
'const options = {
method: 'PUT',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
source: '<string>',
description: '<string>',
insight_tool_ids: [123],
conditions: {
min_duration: 120,
max_duration: 600,
sample_rate: 0.1,
agent_list: [866324, 826325],
prompt_list: ['123324'],
folder_list: [16754, 67535],
sheet_info: {
sheet_id: '1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go',
sheet_name: 'Q1 Sales Data'
}
},
start_datetime: '2026-07-08T00:00:00Z',
end_datetime: '2026-07-09T00:00:00Z'
})
};
fetch('https://api.syllable.cloud/api/v1/insights/workflows/{workflow_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/workflows/{workflow_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' => '<string>',
'source' => '<string>',
'description' => '<string>',
'insight_tool_ids' => [
123
],
'conditions' => [
'min_duration' => 120,
'max_duration' => 600,
'sample_rate' => 0.1,
'agent_list' => [
866324,
826325
],
'prompt_list' => [
'123324'
],
'folder_list' => [
16754,
67535
],
'sheet_info' => [
'sheet_id' => '1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go',
'sheet_name' => 'Q1 Sales Data'
]
],
'start_datetime' => '2026-07-08T00:00:00Z',
'end_datetime' => '2026-07-09T00:00:00Z'
]),
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/workflows/{workflow_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"source\": \"<string>\",\n \"description\": \"<string>\",\n \"insight_tool_ids\": [\n 123\n ],\n \"conditions\": {\n \"min_duration\": 120,\n \"max_duration\": 600,\n \"sample_rate\": 0.1,\n \"agent_list\": [\n 866324,\n 826325\n ],\n \"prompt_list\": [\n \"123324\"\n ],\n \"folder_list\": [\n 16754,\n 67535\n ],\n \"sheet_info\": {\n \"sheet_id\": \"1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go\",\n \"sheet_name\": \"Q1 Sales Data\"\n }\n },\n \"start_datetime\": \"2026-07-08T00:00:00Z\",\n \"end_datetime\": \"2026-07-09T00:00:00Z\"\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/workflows/{workflow_id}")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"source\": \"<string>\",\n \"description\": \"<string>\",\n \"insight_tool_ids\": [\n 123\n ],\n \"conditions\": {\n \"min_duration\": 120,\n \"max_duration\": 600,\n \"sample_rate\": 0.1,\n \"agent_list\": [\n 866324,\n 826325\n ],\n \"prompt_list\": [\n \"123324\"\n ],\n \"folder_list\": [\n 16754,\n 67535\n ],\n \"sheet_info\": {\n \"sheet_id\": \"1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go\",\n \"sheet_name\": \"Q1 Sales Data\"\n }\n },\n \"start_datetime\": \"2026-07-08T00:00:00Z\",\n \"end_datetime\": \"2026-07-09T00:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/insights/workflows/{workflow_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\": \"<string>\",\n \"source\": \"<string>\",\n \"description\": \"<string>\",\n \"insight_tool_ids\": [\n 123\n ],\n \"conditions\": {\n \"min_duration\": 120,\n \"max_duration\": 600,\n \"sample_rate\": 0.1,\n \"agent_list\": [\n 866324,\n 826325\n ],\n \"prompt_list\": [\n \"123324\"\n ],\n \"folder_list\": [\n 16754,\n 67535\n ],\n \"sheet_info\": {\n \"sheet_id\": \"1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go\",\n \"sheet_name\": \"Q1 Sales Data\"\n }\n },\n \"start_datetime\": \"2026-07-08T00:00:00Z\",\n \"end_datetime\": \"2026-07-09T00:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"source": "<string>",
"description": "<string>",
"insight_tool_ids": [
123
],
"conditions": {
"min_duration": 120,
"max_duration": 600,
"sample_rate": 0.1,
"agent_list": [
866324,
826325
],
"prompt_list": [
"123324"
],
"folder_list": [
16754,
67535
],
"sheet_info": {
"sheet_id": "1AGOCYz05AZYYOMzow2EYlgdDXSXaWIhyA3-zCxBm4go",
"sheet_name": "Q1 Sales Data"
}
},
"id": 123,
"insight_tools": [
{
"name": "<string>",
"description": "<string>",
"version": 123,
"tool_arguments": "<unknown>",
"insight_tool_definition_id": 123,
"id": 123,
"last_updated_by": "<string>",
"insight_tool_definition": {
"id": 123,
"name": "<string>",
"type": "<string>",
"description": "<string>",
"tool_parameters": "<unknown>",
"tool_result_set": "<unknown>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"status": "<string>",
"estimate": {
"backfill_count": 123,
"backfill_duration": 123,
"estimated_daily_count": 123,
"estimated_daily_duration": 123,
"estimated_daily_cost": 123,
"estimated_backfill_cost": 123
},
"last_updated_by": "<string>",
"start_datetime": "2026-07-08T00:00:00Z",
"end_datetime": "2026-07-09T00:00:00Z",
"queue_count": 10,
"failed_count": 2,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Path Parameters
Body
Request model to create/update an insight workflow.
Human-readable name of insight workflow
"summary-workflow"
Source of the workflow
"agent"
"transfer"
"upload"
"sheet"
"manual"
Text description of workflow
"Default workflow - generates a summary of the call"
Ordered list of IDs of tool configurations to be executed in the workflow
[1]Conditions (filters) on which a workflow should be triggered.
Show child attributes
Show child attributes
Target session timestamp the workflow (backfill) should start. An empty value indicates start on activation - live sessions only
"2026-07-08T00:00:00Z"
Target session timestamp the workflow (backfill) should end. An empty value indicates no end, i.e., include live sessions until deactivation
"2026-07-09T00:00:00Z"
Response
Successful Response
Response model for an insight workflow.
Human-readable name of insight workflow
"summary-workflow"
Source of the workflow
"agent"
"transfer"
"upload"
"sheet"
"manual"
Text description of workflow
"Default workflow - generates a summary of the call"
Ordered list of IDs of tool configurations to be executed in the workflow
[1]Conditions (filters) on which a workflow should be triggered.
Show child attributes
Show child attributes
Internal ID of the insight workflow
1
List of insight tool configurations used in the workflow
Show child attributes
Show child attributes
Status of the insight workflow
"ACTIVE"
"INACTIVE"
Estimate of the number of calls that will be processed by the workflow and their cost
Show child attributes
Show child attributes
Email of user who last updated Insight Workflow
"user@email.com"
Target session timestamp the workflow (backfill) should start. An empty value indicates start on activation - live sessions only
"2026-07-08T00:00:00Z"
Target session timestamp the workflow (backfill) should end. An empty value indicates no end, i.e., include live sessions until deactivation
"2026-07-09T00:00:00Z"
Number of calls in the workflow queue (pending or processing)
10
Number of workflow executions currently in FAILED status
2
Timestamp at which the insight workflow was created
"2026-07-08T00:00:00Z"
Timestamp of most recent update to the insight workflow
"2026-07-09T00:00:00Z"

