Call flow settings
Transfers, office hours, call, speech, welcome message, code actions, background audio and security settings.
Transfers, office hours, call, speech, welcome message, code actions, background audio and security settings. 8 tools.
trillet_set_transfers
Set call transfers
Replace the flow's transfer destinations (COMPLETE array; arrays replace wholesale). Transfers let the agent hand the call to humans: method warm (announce first), cold (blind), whisper, or agent (another AI flow). To let the model trigger them, also mention each transfer's friendly_name in the prompt. Set enableTransferInstructions true on settings when transfers exist (this tool does it automatically when the list is non-empty).
Flags: writes destructive
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
transfers | object[] | yes | |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_office_hours
Set flow office hours
Set the flow-level office hours (settings.OfficeHoursSettings, perDay shape with FULL day names). SEMANTICS: this DEFERS OUTBOUND calls to the next open slot (call shows as scheduled with pendingReason office_hours); it does NOT block inbound calls. To gate transfers by time use officeHoursRestriction/businessHoursRouting on the transfer instead.
Flags: writes destructive idempotent
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
enabled | boolean | yes | |
timezone | string | yes | IANA timezone, e.g. Australia/Melbourne |
per_day | object (map) | yes | FULL day names as keys: {"Monday": {enabled, start "HH:MM", end "HH:MM"}, ...} |
blocked_dates | string[] | no | ["YYYY-MM-DD"] Default: []. |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_call_settings
Set call settings
Update call behavior settings (deep-merges; only sent keys change). Covers silence handling, duration limits, voicemail detection, IVR navigation, recording, LLM cache, transcript redaction, and post-call analysis model.
Flags: writes idempotent
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
end_call_on_silence | number | no | Seconds of caller silence before ending |
silence_reminder_retries | number | no | |
max_call_duration | number | no | Seconds (default 1800) |
max_call_duration_message | string | no | |
reminder_messages | string[] | no | |
post_call_analysis_model | string | no | Default "gemini-2.5-flash" |
disable_metadata | boolean | no | Stop auto-appending call metadata to in-call API requests (required for strict APIs) |
redact_transcription | boolean | no | |
enable_llm_cache | boolean | no | CAUTION: also defers {{var}} substitution to speak-time |
voicemail_detection | object | no | |
ivr_handling | object | no | Outbound IVR menu navigation. There is no separate dtmfSettings key; DTMF lives here. |
enable_recording | boolean | no | settings.enableRecording (flow-level) |
enable_public_recording | boolean | no | |
customer_location | string | no | IANA timezone used for time context and timestamps |
time_context_enabled | boolean | no | Agent knows current date/time (on unless explicitly false) |
utilize_prior_calls_context | boolean | no | |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_speech_settings
Set speech settings
Tune conversational feel: responsiveness (1-10, higher = replies faster), interruptionSensitivity (1-10, higher = easier for the caller to interrupt; 5.5 recommended), vadModel, preemptive generation, TTS pronunciation overrides, and welcome message behavior.
Flags: writes idempotent
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
responsiveness | number | no | |
interruption_sensitivity | number | no | |
vad_model | string | no | "stt" | "default" | "multilingualModel" |
enable_preemptive_generation | boolean | no | |
pronunciation | object[] | no | TTS pronunciation overrides (how the agent SAYS words) |
welcome_message_interruptible | boolean | no | |
welcome_message_delay_ms | number | no | 0-5000 ms |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_welcome_message
Set welcome message
Set the greeting for inbound and/or outbound (and web test) calls. selected 'customMessage' speaks the exact text; 'aiFirst' lets the model generate from aiGreetingPrompt. NEVER also script a greeting inside the prompt (causes double greeting). Web/dashboard test calls use the Outbound greeting.
Flags: writes idempotent
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
inbound_message | string | no | |
outbound_message | string | no | |
mode | "customMessage" | "aiFirst" | no | Default: "customMessage". |
ai_greeting_prompt | string | no | Only for mode aiFirst |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_code_actions
Set code actions (feature-gated)
Replace the flow's code actions: Python functions the agent can run mid-call ({name, description, code, variables[{name,description}]}). FEATURE-GATED per workspace: non-whitelisted workspaces get the codeActions SILENTLY STRIPPED (the save returns 200 without them), this tool verifies persistence and reports if the workspace lacks access.
Flags: writes destructive
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
code_actions | object[] | yes | |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_background_audio
Set background audio
Set the flow's background audio (settings.backgroundNoise, deep-merges; only sent keys change): an ambient soundscape played under the whole call, a thinking sound while the model generates, and hold music during transfers, each with its own 0-1 volume. Use ambient_sound "none" to switch ambience off.
Flags: writes idempotent
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
ambient_sound | string | no | Ambient background sound: "none", "call_center.mp3", or "quiet_office.mp3" |
thinking_sound | string | no | Sound played while the AI is thinking: "none" or "keyboard" |
hold_sound | string | no | Hold music during transfers: only "none" is available (plays the platform Lobby Hold Music) |
ambient_volume | number | no | Ambient volume 0-1 (default 0.5) |
thinking_volume | number | no | Thinking-sound volume 0-1 (default 0.5) |
hold_volume | number | no | Hold-music volume 0-1 (default 0.5) |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |
trillet_set_security_settings
Set security and access settings
Update the flow's security, access and memory settings (deep-merges; only sent keys change). Covers HIPAA compliance (settings.security.hipaaCompliance; enabling it also turns call recording off, as the dashboard does), public access for demo links (settings.security.publicAccess), redirect-incoming-calls-to-a-human (settings.redirectToHuman: forwards inbound calls straight to a number, optionally gated by conditions), and identifier-based web demo memory (settings.identifierBasedWebDemoMemory; needs utilizePriorCallsContext on, see trillet_set_call_settings).
Flags: writes idempotent
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
flow_id | string | yes | |
hipaa_compliance | boolean | no | Enable HIPAA compliance. Enabling also disables enableRecording and enablePublicRecording. |
public_access | boolean | no | Allow public (unauthenticated) access to this flow, e.g. for web demo links |
redirect_to_human | object | no | settings.redirectToHuman (the dashboard's Redirect incoming calls section) |
identifier_based_web_demo_memory | boolean | no | Remember web demo visitors by identifier across sessions (requires utilizePriorCallsContext) |
workspace_id | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |