The workflow_definition object passed to Create from Definition and Update Agent defines the full conversation graph. It is the same structure the dashboard’s visual workflow builder reads and writes — building an agent in the UI produces a workflow_definition under the hood, and anything you can configure visually can equally be expressed here as JSON.
{
"nodes": [...],
"edges": [...]
}
Nodes
Each node represents a step in the conversation.
{
"id": "uuid-string",
"type": "agentNode",
"position": { "x": 100, "y": 200 },
"data": { ... }
}
Field
Type
Description
id
string
Unique node ID (UUID recommended)
type
string
One of the node types below
position
object
Visual coordinates in the workflow builder
data
object
Node configuration — fields vary by type
Node types
Type
Description
startCall
Entry point for telephony calls
endCall
Terminates the call
agentNode
LLM-powered conversation step
globalNode
Global configuration applied across all agent nodes
trigger
Entry point for API-triggered (non-telephony) runs
webhook
Sends an HTTP request when reached
qa
Runs quality analysis on the completed call
Node data fields
Common fields (all node types)
Field
Type
Default
Description
name
string
required
Display name for the node
prompt
string
required*
LLM system prompt. *Not required for trigger, webhook, qa nodes
allow_interrupt
boolean
false
Allow the caller to interrupt the agent mid-speech
wait_for_user_response
boolean
false
Pause and wait for caller input before continuing
wait_for_user_response_timeout
number
null
Seconds to wait for input before timing out
detect_voicemail
boolean
false
Detect and handle voicemail on outbound calls
delayed_start
boolean
false
Delay execution of this node
delayed_start_duration
number
null
Delay in seconds
add_global_prompt
boolean
true
Merge the globalNode prompt into this node’s prompt
agentNode — data extraction
Field
Type
Default
Description
extraction_enabled
boolean
false
Extract structured data from the conversation
extraction_prompt
string
null
Custom prompt to guide extraction
extraction_variables
array
[]
Variables to extract (see below)
Extraction variable schema:
{
"name": "customer_intent",
"type": "string",
"prompt": "What did the customer want to achieve?"
}
type is one of string, number, or boolean.
agentNode — tools
Field
Type
Description
tool_uuids
string[]
IDs of tools (HTTP API, call transfer, etc.) to attach to this node
document_uuids
string[]
IDs of knowledge base documents available to this node
trigger node
Field
Type
Description
trigger_path
string
Unique UUID that becomes the API trigger endpoint path