Create flow
POST /api/v1/flows
Definition is optional — omit to create an empty draft for the builder UI, or provide it to create a flow with initial content.
Authentication
Pass a JWT access token or an API key (prefixed with tif_live_) as a Bearer token.
Request
Display name of the flow (1-255 characters)
Call analysis behavior override: “use_account_default”, “enabled”, or “disabled”
The canonical flow definition — single source of truth for flow logic, shared by the API and the visual builder.
Visual nodes (LLM, TTS, STT, prompt, end_call) collapse into properties:
- Service nodes ->
services.* - Prompt nodes ->
agent.prompt - Action nodes ->
agent.functions[] - Edges are implicit — relationships expressed as data, not connections
Description of the flow’s purpose (max 1000 characters)
Visual builder layout (node positions, viewport). Opaque to the API. When present it is stored as-is; when omitted, a default layout is generated from the definition.
Hard call-duration cap settings for a flow.
Omitting this block leaves the cap OFF. Sending it fully replaces the flow’s cap config.
Recording behavior override: “use_account_default”, “enabled”, or “disabled”
User-idle hangup settings for a flow.
Sending this block fully replaces the flow’s idle config. Omitting it on
update leaves the existing config untouched; sending it with only enabled
resets the other fields to their defaults. A flow that was never configured
has idle hangup ON.
Enable voicemail detection for this flow (outbound Twilio calls only)
Static voicemail message spoken verbatim (skips the composer LLM call)
Instruction for composing the voicemail message (ignored if message is set)
Response
Call analysis behavior override: “use_account_default”, “enabled”, or “disabled”
Recording behavior override: “use_account_default”, “enabled”, or “disabled”
Current semantic version (X.Y.Z)
Available published versions (newest first)
Whether voicemail detection is enabled (outbound Twilio calls only)
The canonical flow definition — single source of truth for flow logic, shared by the API and the visual builder.
Visual nodes (LLM, TTS, STT, prompt, end_call) collapse into properties:
- Service nodes ->
services.* - Prompt nodes ->
agent.prompt - Action nodes ->
agent.functions[] - Edges are implicit — relationships expressed as data, not connections
Visual builder layout (positions, viewport, UI state). Opaque to the API: stored and returned as-is.
Hard call-duration cap settings for a flow.
Omitting this block leaves the cap OFF. Sending it fully replaces the flow’s cap config.
User-idle hangup settings for a flow.
Sending this block fully replaces the flow’s idle config. Omitting it on
update leaves the existing config untouched; sending it with only enabled
resets the other fields to their defaults. A flow that was never configured
has idle hangup ON.
Static voicemail message spoken verbatim (skips the composer LLM call)
Instruction for composing the voicemail message (ignored if message is set)