> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interactly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Workflow Version Name



## OpenAPI

````yaml https://api-prod.interactly.ai/api-docs/workflows/api.json patch /workflows/v1/workflows/{workflow_id}/versions/{version_number}
openapi: 3.1.0
info:
  title: Interactly API
  description: API for building interactly.ai services
  version: 1.1.0
  contact:
    name: Interactly
    url: https://interactly.ai
    email: developers@interactly.ai
servers:
  - url: https://api-prod.interactly.ai
    description: API Server
security: []
paths:
  /workflows/v1/workflows/{workflow_id}/versions/{version_number}:
    patch:
      tags:
        - Workflow Versions
      summary: Update Workflow Version Name
      operationId: >-
        workflow_service_update_workflow_version_name_v1_workflows__workflow_id__versions__version_number__patch
      parameters:
        - name: workflow_id
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/PydanticObjectId'
        - name: version_number
          in: path
          required: true
          schema:
            type: integer
            title: Version Number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVersionNameRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowVersionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - bearer: []
components:
  schemas:
    PydanticObjectId:
      type: string
      maxLength: 24
      minLength: 24
      pattern: ^[0-9a-f]{24}$
      example: 5eb7cf5a86d9755df3a6c593
    UpdateVersionNameRequest:
      properties:
        version_name:
          type: string
          minLength: 1
          title: Version Name
          description: New version name for the version
      type: object
      required:
        - version_name
      title: UpdateVersionNameRequest
    WorkflowVersionResponse:
      properties:
        version:
          $ref: '#/components/schemas/WorkflowVersionModel'
          description: Single workflow version object
        parent_active_version:
          anyOf:
            - type: integer
            - type: 'null'
          title: Parent Active Version
          description: Active version number from parent workflow
      type: object
      required:
        - version
      title: WorkflowVersionResponse
      description: |-
        Response model for a single workflow version.
        Contains a WorkflowVersionModel object.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    WorkflowVersionModel:
      properties:
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the team that owns this edge
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the user who created this edge
        updated_by:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the user who last updated this edge
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        _id:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
          description: MongoDB document ObjectID
        workflow_id:
          $ref: '#/components/schemas/PydanticObjectId'
          description: ID of the parent workflow
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Version Number
          description: Version number of the workflow
          default: 0
        version_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Version Name
          description: Version name of the workflow
          default: Initial Version
        workflow_config:
          $ref: '#/components/schemas/WorkflowConfig-Output'
          description: Snapshot of the Workflow Configuration
      type: object
      required:
        - workflow_id
        - workflow_config
      title: WorkflowVersionModel
      description: >-
        Stores a snapshot of a workflow version.

        Contains the workflow configuration and references to the specific
        nodes/edges for this version.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    WorkflowConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Logical ID
          description: Unique identifier for the workflow
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Name
          description: Name of the workflow
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Description
          description: Description of the workflow
          input_field_type: textarea
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Category
          description: >-
            Category of the workflow (e.g. 'User Created', 'System Examples',
            'System Internal')
          default: User Created
          input_field_not_visible: true
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to use. If provided, overrides
            inline configuration.
          input_field_type: llm_config_selection
        llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: Workflow LLM Configuration
          description: >-
            Workflow level configuration for LLM based nodes used in the
            workflow. This will be used if no specific LLM configuration is
            provided for a node
          default:
            logical_id: llm_29ddb936-6fcd-4122-a362-69048416bcf1
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: no_llm
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Global Main Response Configuration
          description: >-
            Global main response configuration. Contains either a LLM system
            prompt or exact static messages. This will be used if no specific
            prompt config is provided for a node
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Global Backchannel Response Configuration
          description: >-
            Global backchannel response configuration. Contains either a LLM
            system prompt or exact static messages. This will be used if no
            specific backchannel prompt config is provided for a node
        default_prompt_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Global Default Prompt Prefix
          description: >-
            If present, this string will be added as prefix to every node's
            system prompt
          input_field_type: textarea
        default_prompt_suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Global Default Prompt Suffix
          description: >-
            If present, this string will be added as suffix to every node's
            system prompt
          input_field_type: textarea
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, every LLM node in this workflow behaves as if
            ignore_content_received_during_llm_tool_call_specification is true,
            and every tool behaves as if
            ignore_content_received_during_llm_tool_call_specification is true:
            free-text content the LLM returns in the same response as one or
            more tool calls is ignored and treated as empty.
          default: false
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Global Tools Configuration
          description: >-
            Global list of tools available to all LLM based nodes in the
            workflow
        mcp_servers:
          anyOf:
            - items:
                $ref: '#/components/schemas/MCPServerConfig'
              type: array
            - type: 'null'
          title: MCP Server Configurations
          description: >-
            List of MCP server connections. Tools discovered from these servers
            are available to nodes with use_mcp_tools enabled.
        global_condition_evaluation_method:
          anyOf:
            - $ref: >-
                #/components/schemas/agentic_workflow_framework__configs__workflow__GlobalConditionEdgeEvaluationMethod
            - type: 'null'
          title: Global Condition Evaluation Method
          description: >-
            Method used to evaluate global conditions for all nodes in this
            workflow.
          default: tool_call
        nodes:
          items:
            type: string
          type: array
          title: Node Configurations
          description: List of node configurations in the workflow
          input_field_not_visible: true
        edges:
          items:
            type: string
          type: array
          title: Edge Configurations
          description: List of edge configurations in the workflow
          input_field_not_visible: true
        evaluation_config:
          anyOf:
            - $ref: '#/components/schemas/EvaluationConfig-Output'
            - type: 'null'
          title: Evaluation Configuration
          description: >-
            Configuration for evaluating the workflow execution. If not
            provided, no evaluation will be performed
        guardrail_strikes_config:
          anyOf:
            - $ref: '#/components/schemas/GuardrailStrikesConfig'
            - type: 'null'
          title: Guardrail Strikes Configuration
          description: Configuration for guardrail-node strike counting and escalation.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the workflow
          field_visibility_level: developer
        access_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowAccessConfig-Output'
            - type: 'null'
          title: Access Config
          description: Access control configuration for the workflow
          input_field_not_visible: true
      type: object
      title: WorkflowConfig
    AzureOpenAILLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: azure_openai
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/AZUREOPENAIModel'
            - type: 'null'
          title: Azure OpenAI Model
          description: Name of the Azure OpenAI model to use
          default: gpt-5-mini
        type:
          type: string
          const: azure_openai_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: azure_openai_llm
          field_visibility_level: developer
          input_field_not_visible: true
        endpoint:
          anyOf:
            - type: string
            - type: 'null'
          title: Azure OpenAI Endpoint
          description: >-
            Endpoint URL for Azure OpenAI API requests. Automatically inferred
            from env var `AZURE_OPENAI_ENDPOINT` if not provided.
          field_visibility_level: developer
        api_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Azure OpenAI API Version
          description: >-
            Azure OpenAI API version. Falls back to `OPENAI_API_VERSION` env var
            if not provided.
          field_visibility_level: developer
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'low',
            'medium', 'high'.
          default: low
      type: object
      title: Azure OpenAI
    OpenAILLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: openai
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/OPENAIModel'
            - type: 'null'
          title: OpenAI Model
          description: Name of the OpenAI model to use
          default: gpt-5.4-mini
        type:
          type: string
          const: openai_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: openai_llm
          field_visibility_level: developer
          input_field_not_visible: true
        base_url:
          anyOf:
            - type: string
            - type: 'null'
          title: OpenAI Base URL
          description: >-
            Base URL path for OpenAI API requests, leave blank if not using a
            proxy or service emulator.
          field_visibility_level: developer
        organization:
          anyOf:
            - type: string
            - type: 'null'
          title: OpenAI Organization ID
          description: >-
            Organization ID for OpenAI API requests, Automatically inferred from
            env var `OPENAI_ORG_ID` if not provided.
          field_visibility_level: developer
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'minimal',
            'low', 'medium', 'high'.
          default: low
      type: object
      title: OpenAI
    GoogleLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: google
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/GOOGLEModel'
            - type: 'null'
          title: Google Model
          description: Name of the Google model to use
          default: gemini-3-flash-preview
        type:
          type: string
          const: google_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: google_llm
          field_visibility_level: developer
          input_field_not_visible: true
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget (tokens)
          description: Indicates the thinking budget in tokens. By default, it is set to 0.
          default: 0
      type: object
      title: Google
    AnthropicLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: anthropic
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/ANTHROPICModel'
            - type: 'null'
          title: Anthropic Model
          description: Name of the Anthropic Claude model to use
          default: claude-sonnet-4-6
        type:
          type: string
          const: anthropic_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: anthropic_llm
          input_field_not_visible: true
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget (tokens)
          description: >-
            Token budget for Claude's extended thinking feature. Set to 0 to
            disable. When enabled, Claude will show its reasoning process before
            providing a final answer.
          default: 0
      type: object
      title: Anthropic
    CustomLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: custom
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Model Name
          description: >-
            Name of the model served behind the custom LLM gateway (free-form
            string, e.g. 'gpt-4.1-mini', 'llama-3-70b', 'mistral-large').
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'minimal',
            'low', 'medium', 'high'.
        type:
          type: string
          const: custom_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: custom_llm
          field_visibility_level: developer
          input_field_not_visible: true
        base_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Gateway Base URL
          description: >-
            Base URL of the custom OpenAI-compatible LLM gateway (e.g.
            'http://api.interactly.ai/workflows/llm-proxy').
        default_headers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Headers
          description: >-
            Optional HTTP headers to include in every request to the gateway
            (e.g. routing keys, tenant IDs).
        rewrite_base_url:
          type: boolean
          title: Rewrite Base URL
          description: >-
            When True, uses an httpx event hook to rewrite every request URL to
            the exact base_url. Use this for gateways that don't accept the
            /chat/completions suffix the SDK appends.
          default: false
        verify_ssl:
          type: boolean
          title: Verify SSL
          description: >-
            Whether to verify SSL certificates. Set to False for gateways with
            self-signed certificates.
          default: true
        response_unwrap_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Response Unwrap Key
          description: >-
            When set, the gateway response JSON is expected to wrap the standard
            OpenAI response inside this key (e.g. 'result'). The runtime will
            extract the nested object before passing it to the OpenAI SDK. Leave
            empty for gateways that already return standard format.
        okta_auth:
          anyOf:
            - $ref: '#/components/schemas/OktaAuthConfig'
            - type: 'null'
          title: Okta Auth
          description: Okta authentication configuration for bearer-token injection.
        use_responses_api:
          type: boolean
          title: Use Responses API
          description: >-
            Whether to use the GPT 5.x+ style Responses API, instead of Chat
            Completions API for this Custom LLM. See
            https://developers.openai.com/api/reference/resources/responses
          default: false
      type: object
      title: Custom LLM
    WorkflowDefaultLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: default_provider
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        type:
          type: string
          const: global_default_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: global_default_llm
          input_field_not_visible: true
      type: object
      title: Workflow Default LLM
      hidden_in_contexts:
        - workflow_settings
        - llm_config
      hide_all_fields: true
    NoLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: default_provider
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        type:
          type: string
          const: no_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: no_llm
          input_field_not_visible: true
      type: object
      title: No LLM
      hidden_in_contexts:
        - node_settings
        - llm_config
      hide_all_fields: true
    LLMGroupConfig-Output:
      properties:
        type:
          type: string
          const: llm_group
          title: Type
          description: Discriminator field which must always be 'llm_group'
          default: llm_group
          field_visibility_level: super_admin
          input_field_not_visible: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Group Logical ID
          description: Unique identifier for the LLM Group
          input_field_disallowed: true
        llms:
          items:
            oneOf:
              - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
              - $ref: '#/components/schemas/OpenAILLMConfig-Output'
              - $ref: '#/components/schemas/GoogleLLMConfig-Output'
              - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
              - $ref: '#/components/schemas/CustomLLMConfig-Output'
              - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
              - $ref: '#/components/schemas/NoLLMConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                anthropic_llm:
                  $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                azure_openai_llm:
                  $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                custom_llm:
                  $ref: '#/components/schemas/CustomLLMConfig-Output'
                global_default_llm:
                  $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                google_llm:
                  $ref: '#/components/schemas/GoogleLLMConfig-Output'
                no_llm:
                  $ref: '#/components/schemas/NoLLMConfig-Output'
                openai_llm:
                  $ref: '#/components/schemas/OpenAILLMConfig-Output'
          type: array
          title: LLM Group
          description: List of LLM configurations, in preferred order of use.
        operation_mode:
          anyOf:
            - $ref: '#/components/schemas/OperationMode'
            - type: 'null'
          title: Operation Mode
          description: Operation mode for the LLM group
          default: sequential_with_proactive
        min_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Minimum Patience Time
          description: >-
            Grace period in milliseconds until which we will unconditionally
            wait, unless all LLMs have responded.
          default: 1500
          field_visibility_level: developer
        max_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Maximum Patience Time
          description: >-
            Threshold milliseconds after which we will stop waiting. If no LLM
            has responded by this time, we will return None.
          field_visibility_level: developer
      type: object
      title: Group of LLMs
    LLMGroupWithBackchannelConfig-Output:
      properties:
        type:
          type: string
          const: llm_group_with_backchannel
          title: Type
          description: >-
            Discriminator field which must always be
            'llm_group_with_backchannel'
          default: llm_group_with_backchannel
          field_visibility_level: developer
          input_field_not_visible: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Group With Backchannel ID
          description: Unique identifier for the LLM Group
          input_field_not_visible: true
        main_llm_config:
          anyOf:
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - type: 'null'
          title: Main LLM Configuration
          description: Configuration for the main LLM
        non_backchannel_response_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Non Backchannel Response Prefix
          description: >-
            If back channel response is being sent, only the LLM output
            following this prefix will follow the backchannel response
        backchannel_llm_config:
          anyOf:
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - type: 'null'
          title: Backchannel LLM Configuration
          description: Configuration for the back channel LLM
        backchannel_static_responses:
          items:
            type: string
          type: array
          title: Backchannel Static Responses
          description: >-
            List of static responses from which one will be selected as a
            backchannel response.
        backchannel_static_responses_selection_mode:
          anyOf:
            - $ref: '#/components/schemas/SelectionMode'
            - type: 'null'
          title: Backchannel Static Responses Selection Mode
          description: Selection mode for backchannel static responses
          default: random
        backchannel_min_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Backchannel Minimum Patience Time
          description: >-
            Grace period in milliseconds until which we will unconditionally
            wait for the main LLM to respond, unless it has already responded.
          default: 2000
      type: object
      title: Group of regular and backchanneling LLMs
    PromptConfig:
      properties:
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: System Prompt
          description: System prompt for the LLM
          input_field_type: prompts_selection
      type: object
      title: PromptConfig
    ToolsConfig:
      properties:
        tools:
          items:
            oneOf:
              - $ref: '#/components/schemas/InlinePythonToolConfig'
              - $ref: '#/components/schemas/InbuiltFunctionToolConfig'
              - $ref: '#/components/schemas/ExternalAPIToolConfig'
              - $ref: '#/components/schemas/KnowledgeBaseToolConfig'
            discriminator:
              propertyName: type
              mapping:
                external_api:
                  $ref: '#/components/schemas/ExternalAPIToolConfig'
                inbuilt_function:
                  $ref: '#/components/schemas/InbuiltFunctionToolConfig'
                inline_python:
                  $ref: '#/components/schemas/InlinePythonToolConfig'
                knowledge_base:
                  $ref: '#/components/schemas/KnowledgeBaseToolConfig'
          type: array
          title: Tools Configuration
          description: List of tool configurations
      type: object
      title: Tools Configuration
    MCPServerConfig:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Server Name
          description: Display name for this MCP server connection
        server_url:
          type: string
          title: Server URL
          description: MCP server URL (e.g. 'https://mcp.example.com/mcp')
        api_headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: API Headers
          description: >-
            HTTP headers to include when connecting to the MCP server (e.g.
            {'Authorization': 'Bearer ...'})
      type: object
      required:
        - server_url
      title: MCP Server Configuration
      description: |-
        Configuration for an MCP (Model Context Protocol) server connection.
        Defined at the workflow level. Connects to an MCP server and
        exposes discovered tools to nodes that have use_mcp_tools enabled.
    agentic_workflow_framework__configs__workflow__GlobalConditionEdgeEvaluationMethod:
      type: string
      enum:
        - tool_call
        - independent_llm_evaluations
      title: GlobalConditionEdgeEvaluationMethod
    EvaluationConfig-Output:
      properties:
        evaluator_workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Evaluator Workflow ID
          description: ID of the workflow to be used as the evaluator
          input_field_type: workflow_selection_with_workflow_id
        evaluator_workflow_version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Evaluator Workflow Version Number
          description: >-
            Version number of the evaluator workflow to be used. If not
            specified, the active version will be used.
          input_field_type: workflow_selection_with_version_number
        enable_turn_by_turn_evaluation:
          type: boolean
          title: Enable Turn-by-Turn Evaluation
          description: If true, enables turn-by-turn evaluation of the workflow execution
          default: false
      type: object
      title: EvaluationConfig
    GuardrailStrikesConfig:
      properties:
        max_guardrail_nodes_before_escalation:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Guardrail Nodes Before Escalation
          description: >-
            Maximum number of times guardrail nodes may be entered (from a
            non-guardrail node) before the workflow escalates. None disables the
            feature.
        escalation_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Escalation Node Logical ID
          description: >-
            Logical ID of the node to transition to when the escalation
            threshold is reached. If None (or it does not resolve to a node),
            the workflow finishes instead.
        escalation_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Escalation Message
          description: >-
            Message sent to the user just before the workflow finishes when the
            escalation threshold is reached and no escalation node is
            configured. Supports dynamic/runtime variable templating. If None,
            the workflow finishes silently.
          input_field_type: textarea
      type: object
      title: GuardrailStrikesConfig
    WorkflowAccessConfig-Output:
      properties:
        access_level:
          anyOf:
            - $ref: '#/components/schemas/AccessControlLevel'
            - type: 'null'
          title: Access Level
          description: Access level for the workflow
        access_list:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Access List
          description: List of user IDs that have access to this workflow
          input_field_not_visible: true
      type: object
      title: WorkflowAccessConfig
    LLMProvider:
      type: string
      enum:
        - default_provider
        - azure_openai
        - openai
        - google
        - anthropic
        - bedrock
        - custom
      title: LLMProvider
    AZUREOPENAIModel:
      type: string
      enum:
        - gpt-5-chat
        - gpt-5-mini
        - gpt-5-nano
        - gpt-4.1-nano
        - gpt-4.1-mini
        - gpt-4.1
      title: AZUREOPENAIModel
    OPENAIModel:
      type: string
      enum:
        - gpt-5.4
        - gpt-5.4-mini
        - gpt-5.4-nano
        - gpt-5.2
        - gpt-5.1
        - gpt-5-chat-latest
        - gpt-5.1-chat-latest
        - gpt-5.2-chat-latest
        - gpt-5.3-chat-latest
        - gpt-5-nano
        - gpt-5-mini
        - gpt-5
        - gpt-4.1-nano
        - gpt-4.1-mini
        - gpt-4.1
        - gpt-4
        - gpt-4o-mini
        - gpt-4o
        - gpt-3.5-turbo
      title: OPENAIModel
    GOOGLEModel:
      type: string
      enum:
        - gemini-flash-latest
        - gemini-flash-lite-latest
        - gemini-3.1-pro-preview
        - gemini-3.5-flash
        - gemini-3-flash-preview
        - gemini-2.5-pro
        - gemini-2.5-flash
        - gemini-2.0-flash
        - gemini-2.0-flash-lite
        - gemini-1.5-pro
        - gemini-1.5-flash
        - gemini-1.5-flash-8b
      title: GOOGLEModel
    ANTHROPICModel:
      type: string
      enum:
        - claude-opus-4-6
        - claude-opus-4-5-20251101
        - claude-opus-4-1-20250805
        - claude-opus-4-20250514
        - claude-sonnet-4-6
        - claude-sonnet-4-5-20250929
        - claude-sonnet-4-20250514
        - claude-haiku-4-5-20251001
      title: ANTHROPICModel
    OktaAuthConfig:
      properties:
        integration_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Okta Integration ID
          description: >-
            ID of an Okta integration to use for bearer-token authentication.
            When set, the runtime fetches a cached OAuth token from this
            integration and injects it as the Authorization header. Ignored when
            api_key or an Authorization default_header is already provided.
      type: object
      title: OktaAuthConfig
      description: Configuration for Okta-based bearer-token authentication.
    OperationMode:
      type: string
      enum:
        - parallel_select_one
        - sequential_with_proactive
      title: OperationMode
    SelectionMode:
      type: string
      enum:
        - random
        - sequence
      title: SelectionMode
    InlinePythonToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: inline_python_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: inline_python
          title: Tool Type
          description: Type of the tool. Must be 'inline_python'
          default: inline_python
          input_field_not_visible: true
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Code
          description: >-
            Python code to be executed by the tool. It should define a function
            with proper signature and descriptions for its parameters.
          input_field_type: textarea
      type: object
      title: Inline Python Tool
      description: >-
        Configuration for an inline Python tool.

        The "code" field should contain a self-contained executable Python
        function.

        Example value of "code" string could be:
                def add(
                    a: float,
                    b: float,
                ) -> float:
                    return float(a + b)
    InbuiltFunctionToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: inbuilt_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: inbuilt_function
          title: Tool Type
          description: Type of the tool. Must be 'inbuilt_function'
          default: inbuilt_function
          input_field_not_visible: true
        configurable_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Configurable Tool Key
          description: >-
            Stable key identifying which configurable inbuilt tool this is (e.g.
            'call_forward'). None for plain static inbuilt references.
          input_field_not_visible: true
        extra_config:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Extra Configuration
          description: >-
            Tool-specific user configuration values. Schema is defined per
            configurable key.
          input_field_not_visible: true
      type: object
      title: Inbuilt Function Tool
      description: >-
        Configuration for an inbuilt function tool.

        This tool type refers to functions that are already registered in the
        tools registry.

        The "tool_id" field must match the ID (decorated with "@tool_id") of a
        registered tool.
    ExternalAPIToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: external_api_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: external_api
          title: Tool Type
          description: Type of the tool. Must be 'external_api'
          default: external_api
          input_field_not_visible: true
        api_endpoint:
          anyOf:
            - type: string
            - type: 'null'
          title: API Endpoint
          description: The endpoint URL of the external API
        api_method:
          anyOf:
            - $ref: '#/components/schemas/APIMethodType'
            - type: 'null'
          title: API Method
          description: HTTP method to use for the API call (e.g., GET, POST)
          default: GET
        api_headers:
          additionalProperties:
            type: string
          type: object
          title: API Headers
          description: >-
            HTTP headers to include with the API request (e.g., authorization,
            content-type)
          default: {}
        api_body:
          anyOf:
            - additionalProperties: true
              type: object
            - type: string
            - type: 'null'
          title: API Request Body
          description: >-
            The request body payload for the API call. Usually applicable for
            POST/PUT methods.
          input_field_type: textarea
      type: object
      title: External API Tool
      description: >-
        Configuration for an external API tool.

        This tool type represents an external API endpoint that the LLM can
        call.
    KnowledgeBaseToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: kb_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
          default: Knowledge Base
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          default: >-
            Searches the knowledge bases given a natural language query and
            retrieves relevant chunks of information matching the query.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
          field_visibility_level: super_admin
          input_field_not_visible: true
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: kb_tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: knowledge_base
          title: Tool Type
          description: Type of the tool. Must be 'knowledge_base'
          default: knowledge_base
          input_field_not_visible: true
        target_knowledge_base_ids:
          items:
            type: string
          type: array
          title: Target Knowledge Base IDs
          description: The IDs of the knowledge bases to query
          input_field_type: knowledge_base_selection
      type: object
      title: Knowledge Base Tool
      description: >-
        Configuration for a knowledge base tool.

        This tool type represents a knowledge base endpoint that the LLM can
        call.
    AccessControlLevel:
      type: string
      enum:
        - personal
        - team
        - system
      title: AccessControlLevel
      description: Enum representing different access control levels.
    StaticMessagesConfig:
      properties:
        static_messages:
          items:
            type: string
          type: array
          title: Static Messages
          description: List of pre-configured messages from which one will be emitted
        static_messages_selection_mode:
          anyOf:
            - $ref: '#/components/schemas/SelectionMode'
            - type: 'null'
          title: Static Messages Selection Mode
          description: Selection mode for static messages
          default: random
      type: object
      title: StaticMessagesConfig
    APIMethodType:
      type: string
      enum:
        - GET
        - POST
        - PUT
        - DELETE
      title: APIMethodType
      description: Enumeration of HTTP methods for API calls.
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: >-
        Retrieve your API Key from [Dashboard API Keys
        Section](https://dashboard.interactly.ai/api-keys).

````