---
title: "PATCH /update-conversation-flow-component/{conversation_flow_component_id}"
method: PATCH
path: "/update-conversation-flow-component/{conversation_flow_component_id}"
---

# PATCH /update-conversation-flow-component/{conversation_flow_component_id}

`PATCH /update-conversation-flow-component/{conversation_flow_component_id}`

Update an existing shared conversation flow component

## Path parameters

- `conversation_flow_component_id` string, required

## Request body

- ConversationFlowComponent
  - `name` string — Name of the component
  - `tools` NodeTool[], nullable — Tools available within the component
    - union
      - object
        - `type` 'custom', required — Type of the tool
        - `name` string, required — Name of the tool
        - `description` string — Description of the tool
        - `parameters` ToolParameter — The parameters the functions accepts, described as a JSON Schema object. See [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting parameters defines a function with an empty parameter list.
          - `type` 'object', required — Type must be "object" for a JSON Schema object.
          - `properties` object, required — The value of properties is an object, where each key is the name of a property and each value is a schema used to validate that property.
          - `required` string[] — List of names of required property when generating this parameter. LLM will do its best to generate the required properties in its function arguments. Property must exist in properties.
        - `url` string, required — Server URL to call the tool. Dynamic variables can be used in the URL.
        - `headers` object — Headers to add to the request
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method to use for the request, defaults to POST
        - `timeout_ms` integer — Timeout in milliseconds for the function call, defaults to 2 min
        - `query_params` object — Query parameters to add to the request
        - `response_variables` object — Response variables to add to the dynamic variables, key is the variable name, value is the path to the variable in the response
        - `args_at_root` boolean — If true, the tool arguments will be passed at the root level of the request body. If false, they will be nested under "args".
        - `tool_id` string, required — Unique identifier for the tool
      - object
        - `type` 'check_availability_cal', required
        - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state transitions). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
        - `description` string — Describes what the tool does, sometimes can also include information about when to call the tool.
        - `cal_api_key` string, required — Cal.com Api key that have access to the cal.com event you want to check availability for.
        - `event_type_id` number, required — Cal.com event type id number for the cal.com event you want to check availability for.
        - `timezone` string — Timezone to be used when checking availability, must be in [IANA timezone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If not specified, will check if user specified timezone in call, and if not, will use the timezone of the Retell servers.
        - `tool_id` string, required — Unique identifier for the tool
      - object
        - `type` 'book_appointment_cal', required
        - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state transitions). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
        - `description` string — Describes what the tool does, sometimes can also include information about when to call the tool.
        - `cal_api_key` string, required — Cal.com Api key that have access to the cal.com event you want to book appointment.
        - `event_type_id` number, required — Cal.com event type id number for the cal.com event you want to book appointment.
        - `timezone` string — Timezone to be used when booking appointment, must be in [IANA timezone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If not specified, will check if user specified timezone in call, and if not, will use the timezone of the Retell servers.
        - `tool_id` string, required — Unique identifier for the tool
  - `mcps` MCP[], nullable — A list of MCP server configurations to use for this component
    - `name` string, required
    - `url` string, required — The URL of the MCP server.
    - `headers` object — Headers to add to the MCP connection request.
    - `query_params` object — Query parameters to append to the MCP connection request URL.
    - `timeout_ms` integer — Maximum time to wait for a connection to be established (in milliseconds). Default to 120,000 ms (2 minutes).
  - `nodes` ConversationFlowNode[] — Nodes that make up the component
    - union
      - ConversationNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'conversation', required — Type of the node
        - `instruction` union, required
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `skip_response_edge` SkipResponseEdge
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Skip response', required — Must be "Skip response" for skip response edge
          - `destination_node_id` string — ID of the destination node
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `finetune_conversation_examples` NodeFinetuneConversationExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the conversation should be.
            - union
              - …
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
        - `interruption_sensitivity` number, nullable
        - `knowledge_base_ids` string[], nullable — Knowledge base IDs for RAG (Retrieval-Augmented Generation).
      - EndNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'end', required — Type of the node
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
      - FunctionNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'function', required — Type of the node
        - `tool_id` string, required — Tool ID for function nodes
        - `tool_type` 'local' | 'shared', required — Tool type for function nodes
        - `speak_during_execution` boolean — Whether to speak during tool execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `wait_for_result` boolean, required — Whether to wait for tool result
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
        - `interruption_sensitivity` number, nullable
      - TransferCallNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'transfer_call', required — Type of the node
        - `transfer_destination` union, required
          - TransferDestinationPredefined
            - `type` 'predefined', required — The type of transfer destination.
            - `number` string, required — The number to transfer to in E.164 format or a dynamic variable like {{transfer_number}}.
            - `extension` string — Extension digits to dial after the main number connects. Sent via DTMF. Allow digits, '*', '#', or a dynamic variable like {{extension}}.
          - TransferDestinationInferred
            - `type` 'inferred', required — The type of transfer destination.
            - `prompt` string, required — The prompt to be used to help infer the transfer destination. The model will take the global prompt, the call transcript, and this prompt together to deduce the right number to transfer to. Can contain dynamic variables.
        - `ignore_e164_validation` boolean — If true, the e.164 validation will be ignored for the from_number. This can be useful when you want to dial to internal pseudo numbers. This only applies when you are using custom telephony and does not apply when you are using Retell Telephony. If omitted, the default value is false.
        - `custom_sip_headers` object — Custom SIP headers for transfer calls
        - `transfer_option` union, required
          - object
            - `type` 'cold_transfer', required — The type of the transfer.
            - `show_transferee_as_caller` boolean — If set to true, will show transferee (the user, not the AI agent) as caller when transferring, requires the telephony side to support caller id override. Retell Twilio numbers support this option.
          - object
            - `type` 'warm_transfer', required — The type of the transfer.
            - `show_transferee_as_caller` boolean — If set to true, will show transferee (the user, not the AI agent) as caller when transferring, requires the telephony side to support caller id override. Retell Twilio numbers support this option.
            - `agent_detection_timeout_ms` number — The time to wait before considering transfer fails.
            - `on_hold_music` 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone' — The music to play while the caller is being transferred.
            - `public_handoff_option` union — If set, when transfer is successful, will say the handoff message to both the transferee and the agent receiving the transfer. Can leave either a static message or a dynamic one based on prompt. Set to null to disable warm handoff.
              - …
            - `private_handoff_option` union — If set, when transfer is connected, will say the handoff message only to the agent receiving the transfer. Can leave either a static message or a dynamic one based on prompt. Set to null to disable warm handoff.
              - …
            - `ivr_option` WarmTransferPrompt
              - …
            - `opt_out_human_detection` boolean — If set to true, will not perform human detection for the transfer. Default to false.
            - `opt_out_initial_message` boolean — If set to true, AI will not say "Hello" after connecting the call. Default to false.
            - `enable_bridge_audio_cue` boolean — Whether to play an audio cue when bridging the call. Defaults to true.
          - object
            - `type` 'agentic_warm_transfer', required — The type of the transfer.
            - `show_transferee_as_caller` boolean — If set to true, will show transferee (the user, not the AI agent) as caller when transferring, requires the telephony side to support caller id override. Retell Twilio numbers support this option.
            - `on_hold_music` 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone' — The music to play while the caller is being transferred.
            - `public_handoff_option` union — If set, when transfer is successful, will say the handoff message to both the transferee and the agent receiving the transfer. Can leave either a static message or a dynamic one based on prompt. Set to null to disable warm handoff.
              - …
            - `agentic_transfer_config` object, required — Configuration for agentic warm transfer. Required for agentic warm transfer.
              - …
            - `enable_bridge_audio_cue` boolean — Whether to play an audio cue when bridging the call. Defaults to true.
        - `edge` TransferFailedEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Transfer failed', required — Must be "Transfer failed" for transfer failed edge
          - `destination_node_id` string — ID of the destination node
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
      - PressDigitNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'press_digit', required — Type of the node
        - `instruction` NodeInstructionPrompt, required
          - `type` 'prompt', required — Type of instruction
          - `text` string, required — The prompt text for the instruction
        - `delay_ms` integer — Delay in milliseconds before pressing the digit
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
      - BranchNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'branch', required — Type of the node
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `else_edge` ElseEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Else', required — Must be "Else" for else edge
          - `destination_node_id` string — ID of the destination node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
      - SmsNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'sms', required — Type of the node
        - `instruction` union, required
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `success_edge` SmsSuccessEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Sent successfully', required — Must be "sent successfully" for SMS success edge
          - `destination_node_id` string — ID of the destination node
        - `failed_edge` SmsFailedEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Failed to send', required — Must be "failed to send" for SMS failed edge
          - `destination_node_id` string — ID of the destination node
      - ExtractDynamicVariablesNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'extract_dynamic_variables', required — Type of the node
        - `variables` AnalysisData[], required
          - union
            - StringAnalysisData
              - …
            - EnumAnalysisData
              - …
            - BooleanAnalysisData
              - …
            - NumberAnalysisData
              - …
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
      - AgentSwapNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'agent_swap', required — Type of the node
        - `agent_id` string, required — The ID of the agent to swap to
        - `agent_version` number — The version of the agent to swap to. If not specified, will use the latest version
        - `post_call_analysis_setting` 'both_agents' | 'only_destination_agent', required
        - `webhook_setting` 'both_agents' | 'only_destination_agent' | 'only_source_agent'
        - `edge` TransferFailedEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Transfer failed', required — Must be "Transfer failed" for transfer failed edge
          - `destination_node_id` string — ID of the destination node
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
      - MCPNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'mcp', required — Type of the node
        - `mcp_id` string, required — Unique ID of the MCP server
        - `mcp_tool_name` string, required — Name of the MCP tool to call
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `response_variables` object — Response variables to add to dynamic variables, key is the variable name, value is the path to the variable in the response
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `wait_for_result` boolean, required — If true, will wait for result before transitioning to next node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `interruption_sensitivity` number, nullable
      - ComponentNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'component', required — Type of the node
        - `component_id` string, required — The reference ID of the component
        - `component_type` 'local' | 'shared', required — Type of component: - local: stored in conversation flow's components array - shared: stored in stand-alone conversation-flow-component table
        - `edges` NodeEdge[] — Array of edges for conditional transitions
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `else_edge` ElseEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Else', required — Must be "Else" for else edge
          - `destination_node_id` string — ID of the destination node
      - BridgeTransferNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'bridge_transfer', required — Type of the node - initiates a warm transfer by bridging the call
      - CancelTransferNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'cancel_transfer', required — Type of the node - cancels the warm transfer and ends the transfer agent call
  - `start_node_id` string, nullable — ID of the starting node
  - `begin_tag_display_position` object, nullable — Display position for the begin tag in the frontend
    - `x` number
    - `y` number

## Response `200`

Successfully updated conversation flow component

- ConversationFlowComponentResponse
  - `name` string, required — Name of the component
  - `tools` NodeTool[], nullable — Tools available within the component
    - union
      - object
        - `type` 'custom', required — Type of the tool
        - `name` string, required — Name of the tool
        - `description` string — Description of the tool
        - `parameters` ToolParameter — The parameters the functions accepts, described as a JSON Schema object. See [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting parameters defines a function with an empty parameter list.
          - `type` 'object', required — Type must be "object" for a JSON Schema object.
          - `properties` object, required — The value of properties is an object, where each key is the name of a property and each value is a schema used to validate that property.
          - `required` string[] — List of names of required property when generating this parameter. LLM will do its best to generate the required properties in its function arguments. Property must exist in properties.
        - `url` string, required — Server URL to call the tool. Dynamic variables can be used in the URL.
        - `headers` object — Headers to add to the request
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method to use for the request, defaults to POST
        - `timeout_ms` integer — Timeout in milliseconds for the function call, defaults to 2 min
        - `query_params` object — Query parameters to add to the request
        - `response_variables` object — Response variables to add to the dynamic variables, key is the variable name, value is the path to the variable in the response
        - `args_at_root` boolean — If true, the tool arguments will be passed at the root level of the request body. If false, they will be nested under "args".
        - `tool_id` string, required — Unique identifier for the tool
      - object
        - `type` 'check_availability_cal', required
        - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state transitions). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
        - `description` string — Describes what the tool does, sometimes can also include information about when to call the tool.
        - `cal_api_key` string, required — Cal.com Api key that have access to the cal.com event you want to check availability for.
        - `event_type_id` number, required — Cal.com event type id number for the cal.com event you want to check availability for.
        - `timezone` string — Timezone to be used when checking availability, must be in [IANA timezone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If not specified, will check if user specified timezone in call, and if not, will use the timezone of the Retell servers.
        - `tool_id` string, required — Unique identifier for the tool
      - object
        - `type` 'book_appointment_cal', required
        - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state transitions). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
        - `description` string — Describes what the tool does, sometimes can also include information about when to call the tool.
        - `cal_api_key` string, required — Cal.com Api key that have access to the cal.com event you want to book appointment.
        - `event_type_id` number, required — Cal.com event type id number for the cal.com event you want to book appointment.
        - `timezone` string — Timezone to be used when booking appointment, must be in [IANA timezone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If not specified, will check if user specified timezone in call, and if not, will use the timezone of the Retell servers.
        - `tool_id` string, required — Unique identifier for the tool
  - `mcps` MCP[], nullable — A list of MCP server configurations to use for this component
    - `name` string, required
    - `url` string, required — The URL of the MCP server.
    - `headers` object — Headers to add to the MCP connection request.
    - `query_params` object — Query parameters to append to the MCP connection request URL.
    - `timeout_ms` integer — Maximum time to wait for a connection to be established (in milliseconds). Default to 120,000 ms (2 minutes).
  - `nodes` ConversationFlowNode[], required — Nodes that make up the component
    - union
      - ConversationNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'conversation', required — Type of the node
        - `instruction` union, required
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `skip_response_edge` SkipResponseEdge
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Skip response', required — Must be "Skip response" for skip response edge
          - `destination_node_id` string — ID of the destination node
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `finetune_conversation_examples` NodeFinetuneConversationExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the conversation should be.
            - union
              - …
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
        - `interruption_sensitivity` number, nullable
        - `knowledge_base_ids` string[], nullable — Knowledge base IDs for RAG (Retrieval-Augmented Generation).
      - EndNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'end', required — Type of the node
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
      - FunctionNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'function', required — Type of the node
        - `tool_id` string, required — Tool ID for function nodes
        - `tool_type` 'local' | 'shared', required — Tool type for function nodes
        - `speak_during_execution` boolean — Whether to speak during tool execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `wait_for_result` boolean, required — Whether to wait for tool result
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
        - `interruption_sensitivity` number, nullable
      - TransferCallNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'transfer_call', required — Type of the node
        - `transfer_destination` union, required
          - TransferDestinationPredefined
            - `type` 'predefined', required — The type of transfer destination.
            - `number` string, required — The number to transfer to in E.164 format or a dynamic variable like {{transfer_number}}.
            - `extension` string — Extension digits to dial after the main number connects. Sent via DTMF. Allow digits, '*', '#', or a dynamic variable like {{extension}}.
          - TransferDestinationInferred
            - `type` 'inferred', required — The type of transfer destination.
            - `prompt` string, required — The prompt to be used to help infer the transfer destination. The model will take the global prompt, the call transcript, and this prompt together to deduce the right number to transfer to. Can contain dynamic variables.
        - `ignore_e164_validation` boolean — If true, the e.164 validation will be ignored for the from_number. This can be useful when you want to dial to internal pseudo numbers. This only applies when you are using custom telephony and does not apply when you are using Retell Telephony. If omitted, the default value is false.
        - `custom_sip_headers` object — Custom SIP headers for transfer calls
        - `transfer_option` union, required
          - object
            - `type` 'cold_transfer', required — The type of the transfer.
            - `show_transferee_as_caller` boolean — If set to true, will show transferee (the user, not the AI agent) as caller when transferring, requires the telephony side to support caller id override. Retell Twilio numbers support this option.
          - object
            - `type` 'warm_transfer', required — The type of the transfer.
            - `show_transferee_as_caller` boolean — If set to true, will show transferee (the user, not the AI agent) as caller when transferring, requires the telephony side to support caller id override. Retell Twilio numbers support this option.
            - `agent_detection_timeout_ms` number — The time to wait before considering transfer fails.
            - `on_hold_music` 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone' — The music to play while the caller is being transferred.
            - `public_handoff_option` union — If set, when transfer is successful, will say the handoff message to both the transferee and the agent receiving the transfer. Can leave either a static message or a dynamic one based on prompt. Set to null to disable warm handoff.
              - …
            - `private_handoff_option` union — If set, when transfer is connected, will say the handoff message only to the agent receiving the transfer. Can leave either a static message or a dynamic one based on prompt. Set to null to disable warm handoff.
              - …
            - `ivr_option` WarmTransferPrompt
              - …
            - `opt_out_human_detection` boolean — If set to true, will not perform human detection for the transfer. Default to false.
            - `opt_out_initial_message` boolean — If set to true, AI will not say "Hello" after connecting the call. Default to false.
            - `enable_bridge_audio_cue` boolean — Whether to play an audio cue when bridging the call. Defaults to true.
          - object
            - `type` 'agentic_warm_transfer', required — The type of the transfer.
            - `show_transferee_as_caller` boolean — If set to true, will show transferee (the user, not the AI agent) as caller when transferring, requires the telephony side to support caller id override. Retell Twilio numbers support this option.
            - `on_hold_music` 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone' — The music to play while the caller is being transferred.
            - `public_handoff_option` union — If set, when transfer is successful, will say the handoff message to both the transferee and the agent receiving the transfer. Can leave either a static message or a dynamic one based on prompt. Set to null to disable warm handoff.
              - …
            - `agentic_transfer_config` object, required — Configuration for agentic warm transfer. Required for agentic warm transfer.
              - …
            - `enable_bridge_audio_cue` boolean — Whether to play an audio cue when bridging the call. Defaults to true.
        - `edge` TransferFailedEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Transfer failed', required — Must be "Transfer failed" for transfer failed edge
          - `destination_node_id` string — ID of the destination node
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
      - PressDigitNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'press_digit', required — Type of the node
        - `instruction` NodeInstructionPrompt, required
          - `type` 'prompt', required — Type of instruction
          - `text` string, required — The prompt text for the instruction
        - `delay_ms` integer — Delay in milliseconds before pressing the digit
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
      - BranchNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'branch', required — Type of the node
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `else_edge` ElseEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Else', required — Must be "Else" for else edge
          - `destination_node_id` string — ID of the destination node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
      - SmsNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'sms', required — Type of the node
        - `instruction` union, required
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `success_edge` SmsSuccessEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Sent successfully', required — Must be "sent successfully" for SMS success edge
          - `destination_node_id` string — ID of the destination node
        - `failed_edge` SmsFailedEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Failed to send', required — Must be "failed to send" for SMS failed edge
          - `destination_node_id` string — ID of the destination node
      - ExtractDynamicVariablesNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'extract_dynamic_variables', required — Type of the node
        - `variables` AnalysisData[], required
          - union
            - StringAnalysisData
              - …
            - EnumAnalysisData
              - …
            - BooleanAnalysisData
              - …
            - NumberAnalysisData
              - …
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `model_choice` ModelChoice
          - `type` 'cascading', required — Type of model choice
          - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5-mini' | 'gpt-5-nano' | 'claude-4.5-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash', required — Available LLM models for agents.
          - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
      - AgentSwapNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'agent_swap', required — Type of the node
        - `agent_id` string, required — The ID of the agent to swap to
        - `agent_version` number — The version of the agent to swap to. If not specified, will use the latest version
        - `post_call_analysis_setting` 'both_agents' | 'only_destination_agent', required
        - `webhook_setting` 'both_agents' | 'only_destination_agent' | 'only_source_agent'
        - `edge` TransferFailedEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Transfer failed', required — Must be "Transfer failed" for transfer failed edge
          - `destination_node_id` string — ID of the destination node
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
      - MCPNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'mcp', required — Type of the node
        - `mcp_id` string, required — Unique ID of the MCP server
        - `mcp_tool_name` string, required — Name of the MCP tool to call
        - `edges` NodeEdge[]
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `response_variables` object — Response variables to add to dynamic variables, key is the variable name, value is the path to the variable in the response
        - `speak_during_execution` boolean — If true, will speak during execution
        - `instruction` union
          - NodeInstructionPrompt
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - NodeInstructionStaticText
            - `type` 'static_text', required — Type of instruction
            - `text` string, required — The static text for the instruction
        - `wait_for_result` boolean, required — If true, will wait for result before transitioning to next node
        - `finetune_transition_examples` NodeFinetuneTransitionExample[]
          - `id` string, required — Unique identifier for the example
          - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
            - union
              - …
          - `destination_node_id` string — Optional destination node ID
        - `interruption_sensitivity` number, nullable
      - ComponentNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'component', required — Type of the node
        - `component_id` string, required — The reference ID of the component
        - `component_type` 'local' | 'shared', required — Type of component: - local: stored in conversation flow's components array - shared: stored in stand-alone conversation-flow-component table
        - `edges` NodeEdge[] — Array of edges for conditional transitions
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` union, required
            - PromptCondition
              - …
            - EquationCondition
              - …
          - `destination_node_id` string — ID of the destination node
        - `else_edge` ElseEdge, required
          - `id` string, required — Unique identifier for the edge
          - `transition_condition` object, required
            - `type` 'prompt', required
            - `prompt` 'Else', required — Must be "Else" for else edge
          - `destination_node_id` string — ID of the destination node
      - BridgeTransferNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'bridge_transfer', required — Type of the node - initiates a warm transfer by bridging the call
      - CancelTransferNode
        - `id` string, required — Unique identifier for the node
        - `name` string — Optional name for display purposes
        - `global_node_setting` GlobalNodeSetting
          - `condition` string, required — Condition for global node activation, cannot be empty
          - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
          - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
            - `transcript` FinetuneExampleUtterance[], required — Find tune the transition condition to this global node
              - …
        - `display_position` object — Position for frontend display
          - `x` number
          - `y` number
        - `type` 'cancel_transfer', required — Type of the node - cancels the warm transfer and ends the transfer agent call
  - `start_node_id` string, nullable — ID of the starting node
  - `begin_tag_display_position` object, nullable — Display position for the begin tag in the frontend
    - `x` number
    - `y` number
  - `conversation_flow_component_id` string, required — Unique identifier for the component
  - `user_modified_timestamp` integer, required — Timestamp of last user modification
  - `linked_conversation_flow_ids` string[] — IDs of conversation flows linked to this shared component

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.dev/retellai/apis/retell-sdk.md) · [All operations](https://skmtc.dev/retellai/apis/retell-sdk/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/retellai/retell-sdk/revisions/9dbbdaf34f4b/schema)
