> ## 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.

# Get Super Node Interface

> Return the full super node definition for a workflow version.

If version_number is omitted, resolves to the workflow's active_version_number.
The response includes the stored hydrated snapshot captured at publish time —
no live DB re-fetch of the workflow is required.



## OpenAPI

````yaml https://api-prod.interactly.ai/api-docs/workflows/api.json get /workflows/v1/super-nodes/{workflow_id}
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/super-nodes/{workflow_id}:
    get:
      tags:
        - Super Nodes
      summary: Get Super Node Interface
      description: >-
        Return the full super node definition for a workflow version.


        If version_number is omitted, resolves to the workflow's
        active_version_number.

        The response includes the stored hydrated snapshot captured at publish
        time —

        no live DB re-fetch of the workflow is required.
      operationId: >-
        workflow_service_get_super_node_interface_v1_super_nodes__workflow_id__get
      parameters:
        - name: workflow_id
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/PydanticObjectId'
        - name: version_number
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            title: Version Number
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuperNodeDetail'
        '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
    SuperNodeDetail:
      properties:
        workflow_id:
          type: string
          title: Workflow Id
        workflow_version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        super_node_interface:
          anyOf:
            - $ref: '#/components/schemas/SuperNodeInterface'
            - type: 'null'
        encapsulated_workflow_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowConfigFullyHydrated-Output'
              description: >-
                Fully-hydrated config with all super nodes inlined as flat
                nodes/edges
            - type: 'null'
      type: object
      required:
        - workflow_id
      title: SuperNodeDetail
      description: >-
        Full super node definition returned to callers who want to embed the
        super node.


        Contains the interface definition and a fresh hydrated snapshot of the
        sub-workflow

        config. Callers should store both in the SuperNodeConfig node they
        create in the

        parent workflow so the expander can run without a DB lookup at execution
        time.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SuperNodeInterface:
      properties:
        input_fields:
          items:
            $ref: '#/components/schemas/SuperNodeInputField'
          type: array
          title: Input Fields
          description: List of input fields exposed by this super node to calling workflows
      type: object
      title: SuperNodeInterface
      description: >-
        The interface definition of a super node.


        Describes what configuration fields callers must provide when
        instantiating this super node,

        and how those field values map into the encapsulated sub-workflow's
        nodes, edges, and dynamic variables.
    WorkflowConfigFullyHydrated-Output:
      properties:
        workflow_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowConfig-Output'
            - type: 'null'
          description: Workflow configuration for runtime
        node_configs:
          items:
            oneOf:
              - $ref: '#/components/schemas/WorkerLLMNodeConfig-Output'
              - $ref: '#/components/schemas/SayLLMNodeConfig-Output'
              - $ref: '#/components/schemas/SayStaticMessageNodeConfig-Output'
              - $ref: '#/components/schemas/SuperNodeConfig-Output'
              - $ref: '#/components/schemas/WorkflowRunFetchNodeConfig-Output'
              - $ref: '#/components/schemas/WorkflowRunEvalLLMNodeConfig-Output'
              - $ref: '#/components/schemas/ToolNodeConfig-Output'
              - $ref: '#/components/schemas/StartConversationNodeConfig-Output'
              - $ref: '#/components/schemas/EndConversationNodeConfig-Output'
              - $ref: '#/components/schemas/SendSMSNodeConfig-Output'
              - $ref: '#/components/schemas/GoogleDocsNodeConfig-Output'
              - $ref: '#/components/schemas/HttpRequestNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaPatientsSearchNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaPatientsCreateNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaPatientsUpdateNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaAppointmentsCreateNodeConfig-Output'
              - $ref: '#/components/schemas/DeduplicateNodeConfig-Output'
              - $ref: '#/components/schemas/FieldExtractorNodeConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                athena_appointments_create:
                  $ref: >-
                    #/components/schemas/AthenaAppointmentsCreateNodeConfig-Output
                athena_patients_create:
                  $ref: '#/components/schemas/AthenaPatientsCreateNodeConfig-Output'
                athena_patients_search:
                  $ref: '#/components/schemas/AthenaPatientsSearchNodeConfig-Output'
                athena_patients_update:
                  $ref: '#/components/schemas/AthenaPatientsUpdateNodeConfig-Output'
                deduplicate:
                  $ref: '#/components/schemas/DeduplicateNodeConfig-Output'
                end_conversation:
                  $ref: '#/components/schemas/EndConversationNodeConfig-Output'
                field_extractor:
                  $ref: '#/components/schemas/FieldExtractorNodeConfig-Output'
                google_docs:
                  $ref: '#/components/schemas/GoogleDocsNodeConfig-Output'
                http_request:
                  $ref: '#/components/schemas/HttpRequestNodeConfig-Output'
                say_llm:
                  $ref: '#/components/schemas/SayLLMNodeConfig-Output'
                say_static:
                  $ref: '#/components/schemas/SayStaticMessageNodeConfig-Output'
                send_sms:
                  $ref: '#/components/schemas/SendSMSNodeConfig-Output'
                start_conversation:
                  $ref: '#/components/schemas/StartConversationNodeConfig-Output'
                super_node:
                  $ref: '#/components/schemas/SuperNodeConfig-Output'
                tool_node:
                  $ref: '#/components/schemas/ToolNodeConfig-Output'
                worker_llm:
                  $ref: '#/components/schemas/WorkerLLMNodeConfig-Output'
                workflow_run_evaluator:
                  $ref: '#/components/schemas/WorkflowRunEvalLLMNodeConfig-Output'
                workflow_run_fetch:
                  $ref: '#/components/schemas/WorkflowRunFetchNodeConfig-Output'
          type: array
          title: Node Configs
          description: List of node configurations for runtime
        edge_configs:
          items:
            oneOf:
              - $ref: '#/components/schemas/DirectEdgeConfig-Output'
              - $ref: '#/components/schemas/ConditionalEdgeConfig-Output'
              - $ref: '#/components/schemas/CompanionEdgeConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                companion:
                  $ref: '#/components/schemas/CompanionEdgeConfig-Output'
                conditional:
                  $ref: '#/components/schemas/ConditionalEdgeConfig-Output'
                direct:
                  $ref: '#/components/schemas/DirectEdgeConfig-Output'
          type: array
          title: Edge Configs
          description: List of edge configurations for runtime
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: Dynamic variables that can be used across nodes and edges
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: Runtime variables that can be used across nodes and edges
      type: object
      title: WorkflowConfigFullyHydrated
    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
    SuperNodeInputField:
      properties:
        name:
          type: string
          title: Field Name
          description: >-
            Unique key for this field within the super node interface. Callers
            set field_values[name] = value.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Human-readable description of what this field controls
        required:
          type: boolean
          title: Required
          description: >-
            Whether this field must be provided by callers. If False and not
            provided, default_value is used.
          default: true
        default_value:
          anyOf:
            - {}
            - type: 'null'
          title: Default Value
          description: >-
            Default value used when required=False and the caller does not
            provide a value
        json_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: JSON Schema
          description: >-
            JSON Schema for this field, used by the UI to render and validate
            the config form
        mappings:
          items:
            $ref: '#/components/schemas/SuperNodeFieldMapping'
          type: array
          title: Mappings
          description: >-
            Where and how to inject the provided value into the sub-workflow
            (node/edge config fields or dynamic variables)
        value_type:
          $ref: '#/components/schemas/SuperNodeInputFieldValueType'
          title: Value Type
          description: >-
            Declared shape of the leaf value. Used at publish time to reject
            malformed field_values. Default 'any' preserves legacy behaviour (no
            shape check).
          default: any
        enum_values:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Enum Values
          description: >-
            Required when value_type='enum'. Caller's value must be in this
            list.
        min_value:
          anyOf:
            - type: number
            - type: 'null'
          title: Min Value
          description: Inclusive lower bound for integer/number value types.
        max_value:
          anyOf:
            - type: number
            - type: 'null'
          title: Max Value
          description: Inclusive upper bound for integer/number value types.
        min_length:
          anyOf:
            - type: integer
            - type: 'null'
          title: Min Length
          description: Inclusive lower length for string/array value types.
        max_length:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Length
          description: Inclusive upper length for string/array value types.
      type: object
      required:
        - name
      title: SuperNodeInputField
      description: >-
        Defines one configuration field that callers must provide when
        instantiating this super node.
    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
    WorkerLLMNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: LLM
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Main Response Configuration
          description: >-
            Main response configuration. Contains either a LLM system prompt or
            exact static messages
          input_field_type: single_field_object
          input_field_ui_order: 201
        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: LLM Configuration
          description: LLM or a group of LLMs to be used in this node
          default:
            logical_id: llm_41f18901-b860-4337-ade7-12525f991f46
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: global_default_llm
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Tools Configuration
          description: List of tools available for this node
        self_loop:
          type: boolean
          title: Self Loop
          description: >-
            Whether this node will execute again if not transitioned to another
            node
          default: false
          field_visibility_level: developer
        wait_for_user_message:
          type: boolean
          title: Wait for User Message
          description: Whether the node should wait for a user message before processing
          default: true
          field_visibility_level: developer
        max_consecutive_tool_calls:
          type: integer
          title: Max Consecutive Tool Calls
          description: >-
            Maximum number of consecutive tool calls allowed in a single node
            execution
          default: 1
          field_visibility_level: developer
        default_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Default Error Message
          description: Default error message to be returned if the LLM invocation fails
          default: I am sorry, there seems to be an issue. Could you please repeat?
        use_mcp_tools:
          type: boolean
          title: Use MCP Tools
          description: >-
            Whether this node should use tools discovered from workflow-level
            MCP server connections
          default: false
        ignore_default_prompt_prefix:
          type: boolean
          title: Ignore Default Prompt Prefix
          description: >-
            If true, the workflow's default_prompt_prefix will not be prepended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_default_prompt_suffix:
          type: boolean
          title: Ignore Default Prompt Suffix
          description: >-
            If true, the workflow's default_prompt_suffix will not be appended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        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 this node's LLM returns in the same
            response as one or more tool calls is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. Implies the tool-level flag for every
            tool call this node makes.
          default: false
        type:
          type: string
          const: worker_llm
          title: Node Type
          description: Type of the node. Must be 'worker_llm'
          default: worker_llm
          input_field_not_visible: true
        structured_output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Structured Output Schema
          description: |
            Schema for the structured output of the worker node. Example: 
            {
                    "name": "SearchQuery",
                    "description": "A search query with justification",
                    "input_schema": {
                        "title": "AnswerWithJustification",
                        "type": "object",
                        "properties": {
                            "search_query": {
                                "title": "Search Query",
                                "type": "string",
                                "description": "The field where search query is stored"
                            },
                            "justification": {
                                "title": "Justification",
                                "type": "string",
                                "description": "The field where justification string is stored"
                            }
                        },
                        "required": ["search_query", "justification"]
                    }
                }
          input_field_type: textarea
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Backchannel Response Configuration
          description: >-
            Backchannel response configuration. Contains either a LLM system
            prompt or exact static messages
      type: object
      title: Worker LLM Node
    SayLLMNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: LLM
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Main Response Configuration
          description: >-
            Main response configuration. Contains either a LLM system prompt or
            exact static messages
          input_field_type: single_field_object
          input_field_ui_order: 201
        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: LLM Configuration
          description: LLM or a group of LLMs to be used in this node
          default:
            logical_id: llm_41f18901-b860-4337-ade7-12525f991f46
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: global_default_llm
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Tools Configuration
          description: List of tools available for this node
        self_loop:
          type: boolean
          title: Self Loop
          description: >-
            Whether this node will execute again if not transitioned to another
            node
          default: true
          field_visibility_level: developer
        wait_for_user_message:
          type: boolean
          title: Wait for User Message
          description: Whether the node should wait for a user message before processing
          default: true
          field_visibility_level: developer
        max_consecutive_tool_calls:
          type: integer
          title: Max Consecutive Tool Calls
          description: >-
            Maximum number of consecutive tool calls allowed in a single node
            execution
          default: 1
          field_visibility_level: developer
        default_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Default Error Message
          description: Default error message to be returned if the LLM invocation fails
          default: I am sorry, there seems to be an issue. Could you please repeat?
        use_mcp_tools:
          type: boolean
          title: Use MCP Tools
          description: >-
            Whether this node should use tools discovered from workflow-level
            MCP server connections
          default: false
        ignore_default_prompt_prefix:
          type: boolean
          title: Ignore Default Prompt Prefix
          description: >-
            If true, the workflow's default_prompt_prefix will not be prepended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_default_prompt_suffix:
          type: boolean
          title: Ignore Default Prompt Suffix
          description: >-
            If true, the workflow's default_prompt_suffix will not be appended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        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 this node's LLM returns in the same
            response as one or more tool calls is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. Implies the tool-level flag for every
            tool call this node makes.
          default: false
        type:
          type: string
          const: say_llm
          title: Node Type
          description: Type of the node. Must be 'say_llm'
          default: say_llm
          input_field_not_visible: true
        structured_output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Structured Output Schema
          description: >
            Schema for the structured output requested from the say node after
            it produces a response. Example: 

            {
                    "name": "SearchQuery",
                    "description": "A search query with justification",
                    "input_schema": {
                        "title": "AnswerWithJustification",
                        "type": "object",
                        "properties": {
                            "search_query": {
                                "title": "Search Query",
                                "type": "string",
                                "description": "The field where search query is stored"
                            },
                            "justification": {
                                "title": "Justification",
                                "type": "string",
                                "description": "The field where justification string is stored"
                            }
                        },
                        "required": ["search_query", "justification"]
                    }
                }
          input_field_type: textarea
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Backchannel Response Configuration
          description: >-
            Backchannel response configuration. Contains either a LLM system
            prompt or exact static messages
      type: object
      title: LLM Node
    SayStaticMessageNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Static Message
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: say_static
          title: Node Type
          description: Type of the node. Must be 'say_static'
          default: say_static
          input_field_not_visible: true
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Configuration for static messages. Contains a list of pre-configured
            messages
          input_field_ui_order: 201
      type: object
      title: Static Messages Node
    SuperNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Super Node
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Super Node
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: super_node
          title: Node Type
          description: Type of the node. Must be 'super_node'
          default: super_node
          input_field_not_visible: true
        super_workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Super Workflow ID
          description: The ID of the workflow encapsulated by this super node
          input_field_not_visible: true
        super_workflow_version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Super Workflow Version Number
          description: >-
            Specific version of the encapsulated workflow. If None, the active
            version is used at execution time.
          input_field_not_visible: true
        field_values:
          additionalProperties: true
          type: object
          title: Field Values
          description: >-
            Values provided by the calling workflow for each of the super node's
            declared input fields. Keyed by SuperNodeInputField.name.
        override_llm_config:
          type: boolean
          title: Override LLM Configuration
          description: >-
            When true, LLM-based nodes inside this super node use the LLM
            configuration specified here (attachable_llm_config_id or
            llms_config) instead of their own authored config. When false (the
            default), interior nodes keep their authored LLM configuration.
          default: false
        override_only_workflow_default_nodes:
          type: boolean
          title: Only Override Workflow-Default Nodes
          description: >-
            Scopes the LLM override. When false (the default), every interior
            LLM node is overridden. When true, only interior LLM nodes that are
            themselves set to 'Workflow Default LLM' (i.e. had no explicit
            config of their own) are overridden; nodes with an explicit
            inline/named config are left untouched. Only relevant when
            override_llm_config is true.
          default: false
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to apply to the targeted interior
            LLM nodes. If provided, overrides the inline llms_config. Only
            relevant when override_llm_config is true.
          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: LLM Configuration
          description: >-
            Inline LLM configuration applied to the targeted interior LLM nodes.
            Use 'Workflow Default LLM' to fall back to the base workflow's
            workflow-level config. Only relevant when override_llm_config is
            true.
        reverse_edge_scope:
          anyOf:
            - $ref: '#/components/schemas/SuperNodeReverseEdgeScope'
            - type: 'null'
          title: Reverse Edge Scope
          description: >-
            Controls which inlined sub-workflow nodes receive this super node's
            global_node_config.reverse_conditional_edge during expansion. When
            None (the default), behaves as 'all_interior_llm_nodes': the reverse
            is stamped onto every interior LLM node so the user can return to
            the caller from anywhere inside the super node. 'terminal_nodes'
            restricts it to the sub-workflow's terminal LLM nodes only. Only
            relevant when global_node_config.reverse_conditional_edge is set.
            Kept Optional (None == default behaviour) so the field can be
            removed later without breaking existing configs.
        super_node_interface:
          anyOf:
            - $ref: '#/components/schemas/SuperNodeInterface'
            - type: 'null'
          title: Super Node Interface
          description: >-
            Interface definition for this super node. Copied from the super node
            entity at embedding time. Used by the expander at runtime to resolve
            field_values mappings. Not user-editable.
          input_field_not_visible: true
        encapsulated_workflow_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowConfigFullyHydrated-Output'
            - type: 'null'
          title: Encapsulated Workflow Config
          description: >-
            Snapshot of the fully-hydrated sub-workflow config at the time this
            super node was embedded. Used by the expander at runtime instead of
            a DB fetch. Not user-editable.
          input_field_not_visible: true
      type: object
      title: Super Node
    WorkflowRunFetchNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Evaluation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: workflow_run_fetch
          title: Node Type
          description: Type of the node. Must be 'workflow_run_fetch'
          default: workflow_run_fetch
          input_field_not_visible: true
        workflow_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run ID
          description: ID of the workflow run to fetch
          default: '{{workflow_run_id}}'
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result in
          default: workflow_run_object
      type: object
      title: Workflow Run Fetch Node Configuration
    WorkflowRunEvalLLMNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Evaluation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Main Response Configuration
          description: >-
            Main response configuration. Contains either a LLM system prompt or
            exact static messages
          input_field_type: single_field_object
          input_field_ui_order: 201
        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: LLM Configuration
          description: LLM or a group of LLMs to be used in this node
          default:
            logical_id: llm_41f18901-b860-4337-ade7-12525f991f46
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: global_default_llm
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Tools Configuration
          description: List of tools available for this node
        self_loop:
          type: boolean
          title: Self Loop
          description: >-
            Evaluator nodes should not have self-loops, so this option is
            disabled
          default: false
          input_field_not_visible: true
        wait_for_user_message:
          type: boolean
          title: Wait for User Message
          description: >-
            Evaluator nodes should not wait for user messages to proceed, so
            this option is disabled
          default: false
          input_field_not_visible: true
        max_consecutive_tool_calls:
          type: integer
          title: Max Consecutive Tool Calls
          description: >-
            Maximum number of consecutive tool calls allowed in a single node
            execution
          default: 1
          field_visibility_level: developer
        default_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Default Error Message
          description: >-
            Evaluator nodes should not have default error messages, so this
            option is disabled
          input_field_not_visible: true
        use_mcp_tools:
          type: boolean
          title: Use MCP Tools
          description: >-
            Whether this node should use tools discovered from workflow-level
            MCP server connections
          default: false
        ignore_default_prompt_prefix:
          type: boolean
          title: Ignore Default Prompt Prefix
          description: >-
            If true, the workflow's default_prompt_prefix will not be prepended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_default_prompt_suffix:
          type: boolean
          title: Ignore Default Prompt Suffix
          description: >-
            If true, the workflow's default_prompt_suffix will not be appended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        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 this node's LLM returns in the same
            response as one or more tool calls is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. Implies the tool-level flag for every
            tool call this node makes.
          default: false
        type:
          type: string
          const: workflow_run_evaluator
          title: Node Type
          description: Type of the node. Must be 'workflow_run_evaluator'
          default: workflow_run_evaluator
          input_field_not_visible: true
        structured_output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Structured Output Schema
          description: >-
            Schema for the structured evaluation output. If empty or None, no
            structured output is expected.
          input_field_type: textarea
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Backchannel Response Configuration
          description: >-
            Backchannel response configuration. Contains either a LLM system
            prompt or exact static messages
        input_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Runtime Variable Name
          description: >-
            Runtime variable name from which to read the input to be evaluated.
            It is expected to contain the 'WorkflowRun' object to be evaluated.
          default: workflow_run_object
        output_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Runtime Variable Name
          description: Runtime variable name to store the structured evaluation output
        is_turn_by_turn_evaluator:
          type: boolean
          title: Is Turn-by-Turn Evaluator
          description: >-
            Indicates if this evaluator is intended to evaluate each turn in a
            multi-turn workflow run
          default: false
      type: object
      title: Evaluator Node
      description: >-
        Configuration for nodes that evaluate workflow runs.


        Evaluator nodes are used to assess, summarize and score outputs from
        workflow runs.
    ToolNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Tool
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: tool_node
          title: Type
          description: Type of the node. Must be 'tool_node'
          default: tool_node
        tool_config:
          anyOf:
            - 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: 'null'
          title: Tool Configuration
          description: Configuration for the tool to be executed
        tool_arguments:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments
          description: >-
            Arguments to pass to the tool. Can contain dynamic/runtime variables
            as strings or inside nested structures.
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: >-
            Name of the runtime variable to store the result of the tool
            execution
          default: tool_result
      type: object
      title: ToolNodeConfig
    StartConversationNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Conversation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: start_conversation
          title: Node Type
          description: Type of the node. Must be 'start_conversation'
          default: start_conversation
          input_field_not_visible: true
        is_voice_conversation:
          type: boolean
          title: Is Voice Conversation
          description: Whether this conversation is a voice-based conversation
          default: false
          input_field_ui_order: 201
        is_outbound_call:
          type: boolean
          title: Is Outbound Call
          description: Whether this conversation is an outbound call
          default: true
          input_field_ui_order: 202
        bearer_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Bearer Token
          description: >-
            The bearer token used for authenticating with the outbound phone
            call service
          input_field_ui_order: 203
        assistant_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Assistant Phone Number
          description: >-
            The phone number assigned to the assistant to make the call from (in
            E.164 format)
          input_field_ui_order: 204
        assistant_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Assistant ID
          description: The ID of the assistant to use for the conversation
          input_field_ui_order: 205
        user_number:
          anyOf:
            - type: string
            - type: 'null'
          title: User Phone Number
          description: The phone number of the user to call (in E.164 format)
          input_field_ui_order: 206
        conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation ID
          description: >-
            The ID of the conversation to poll. If provided, an outbound call
            will not be initiated, and the system will instead poll for an
            existing conversation with this ID.
        polling_interval_seconds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Polling Interval Seconds
          description: >-
            If polling for an existing conversation, the interval (in seconds)
            at which to poll for updates
          default: 2
      type: object
      title: Start Conversation Node
    EndConversationNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Conversation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: end_conversation
          title: Node Type
          description: Type of the node. Must be 'end_conversation'
          default: end_conversation
          input_field_not_visible: true
        process_transcript_prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Process Transcript Prompt Configuration
          description: Prompt configuration for processing the conversation transcript
        process_transcript_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: Process Transcript LLM(s) Configuration
          description: >-
            LLM or a group of LLMs to be used for processing the conversation
            transcript
      type: object
      title: End Conversation Node
    SendSMSNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Communications
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: SMS
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: send_sms
          title: Node Type
          description: Type of the node. Must be 'send_sms'
          default: send_sms
          input_field_not_visible: true
        destination_phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Phone Number
          description: >-
            Destination phone number in E.164 format. Example of E.164 format:
            +1234567890
          input_field_ui_order: 201
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: SMS Message
          description: >-
            SMS message to be sent. Can include dynamic and runtime variable
            placeholders for dynamic content.
          input_field_ui_order: 202
      type: object
      title: Send SMS Node
    GoogleDocsNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Google Workspace
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Google Docs
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: google_docs
          title: Node Type
          description: Type of the node. Must be 'google_docs'
          default: google_docs
          input_field_not_visible: true
        credentials:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleWorkspaceOAuth2Credentials'
                - $ref: >-
                    #/components/schemas/GoogleWorkspaceServiceAccountCredentials
                - $ref: '#/components/schemas/GoogleWorkspaceAPIKeyCredentials'
              discriminator:
                propertyName: type
                mapping:
                  google_workspace_api_key:
                    $ref: '#/components/schemas/GoogleWorkspaceAPIKeyCredentials'
                  google_workspace_oauth2:
                    $ref: '#/components/schemas/GoogleWorkspaceOAuth2Credentials'
                  google_workspace_service_account:
                    $ref: >-
                      #/components/schemas/GoogleWorkspaceServiceAccountCredentials
            - type: 'null'
          title: Google Workspace Credentials
          description: >-
            Credentials for Google Workspace. If not provided, the default
            credentials will be used.
        operate_document:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleDocsCreateDocumentConfig'
                - $ref: '#/components/schemas/GoogleDocsGetDocumentConfig'
                - $ref: '#/components/schemas/GoogleDocsUpdateDocumentConfig'
              discriminator:
                propertyName: type
                mapping:
                  google_docs_create_document:
                    $ref: '#/components/schemas/GoogleDocsCreateDocumentConfig'
                  google_docs_get_document:
                    $ref: '#/components/schemas/GoogleDocsGetDocumentConfig'
                  google_docs_update_document:
                    $ref: '#/components/schemas/GoogleDocsUpdateDocumentConfig'
            - type: 'null'
          title: Document Operation
          description: >-
            Configuration for operating on a Google Docs document (create, get,
            or update).
      type: object
      title: Google Docs Node
    HttpRequestNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: REST API
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: HTTP Request
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: http_request
          title: Node Type
          description: Type of the node. Must be 'http_request'
          default: http_request
          input_field_not_visible: true
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: HTTP Request URL
          description: The URL to send the HTTP request to
          input_field_ui_order: 201
        method:
          anyOf:
            - $ref: '#/components/schemas/HttpMethodEnum'
            - type: 'null'
          title: HTTP Method
          description: HTTP method to use (GET, POST, PUT, PATCH, DELETE, etc.)
          default: GET
        headers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Headers
          description: Optional HTTP headers as a dictionary
        query_parameters:
          anyOf:
            - type: string
            - type: 'null'
          title: Query Parameters
          description: Query parameters as a dictionary
          input_field_type: textarea
        body_parameters:
          anyOf:
            - type: string
            - type: 'null'
          title: Body Parameters
          description: Body parameters as a dictionary (for POST, PUT, PATCH)
          input_field_type: textarea
        body_content_type:
          anyOf:
            - $ref: '#/components/schemas/BodyContentTypeEnum'
            - type: 'null'
          title: Body Content-Type
          description: >-
            Content-Type for the request body (e.g., application/json,
            form-data)
          default: application/json
        timeout:
          anyOf:
            - type: integer
              maximum: 300
              minimum: 0
            - type: 'null'
          title: Timeout (seconds)
          description: Timeout for the HTTP request in seconds
          default: 30
        response_format:
          anyOf:
            - $ref: '#/components/schemas/ResponseFormatEnum'
            - type: 'null'
          title: Response Format
          description: Expected response format (json, text, binary)
          default: json
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result
          default: http_request_result
      type: object
      title: HTTP Request Node
    AthenaPatientsSearchNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_patients_search
          title: Node Type
          description: Type of the node. Must be 'athena_patients_search'
          default: athena_patients_search
          input_field_not_visible: true
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Phone Number ex: home'
          description: Phone number of the patient to create
        full_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Full Name
          description: Full name of the patient to retrieve
        birthdate:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Birthdate
          description: Birthdate of the patient to retrieve
      type: object
      title: Athena Patients Search Node
    AthenaPatientsCreateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_patients_create
          title: Node Type
          description: Type of the node. Must be 'athena_patients_create'
          default: athena_patients_create
          input_field_not_visible: true
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient First Name
          description: First name of the patient to create
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Last Name
          description: Last name of the patient to create
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Phone Number ex: home'
          description: Phone number of the patient to create
        birthdate:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Birthdate
          description: Birthdate of the patient to retrieve
        gender:
          anyOf:
            - $ref: '#/components/schemas/Gender'
            - type: 'null'
          title: Patient Gender
          description: Gender of the patient to create
          default: Male
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Email
          description: Email of the patient to create
        notes:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Notes
          description: Notes about the patient to create
        mobile_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Mobile Number ex: mobile'
          description: Mobile number of the patient to create
      type: object
      title: Athena Patients Create Node
    AthenaPatientsUpdateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_patients_update
          title: Node Type
          description: Type of the node. Must be 'athena_patients_update'
          default: athena_patients_update
          input_field_not_visible: true
        patient_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient ID
          description: ID of the patient to update
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient First Name
          description: First name of the patient to update
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Last Name
          description: Last name of the patient to update
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Phone Number ex: home'
          description: Phone number of the patient to update
        birthdate:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Birthdate
          description: Birthdate of the patient to update (YYYY-MM-DD)
        gender:
          anyOf:
            - $ref: '#/components/schemas/Gender'
            - type: 'null'
          title: Patient Gender
          description: Gender of the patient to update
          default: Male
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Email
          description: Email of the patient to update
        notes:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Notes
          description: Notes about the patient to update
        notes_action:
          type: string
          enum:
            - append
            - replace
          title: Notes Action
          description: Action to perform on notes field
          default: append
        mobile_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Mobile Number ex: mobile'
          description: Mobile number of the patient to update
      type: object
      title: Athena Patients Update Node
    AthenaAppointmentsCreateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_appointments_create
          title: Node Type
          description: Type of the node. Must be 'athena_appointments_create'
          default: athena_appointments_create
          input_field_not_visible: true
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Appointment Title
          description: Title of the appointment
        patient_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient ID
          description: ID of the patient to create the appointment for
        practitioner_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Practitioner ID
          description: ID of the practitioner for the appointment
        start_time:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Time
          description: Start time of the appointment
        duration_in_minutes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Duration in Minutes
          description: Duration of the appointment in minutes
          default: 15
      type: object
      title: Athena Appointments Create Node
    DeduplicateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Data Transformation
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Deduplication
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: deduplicate
          title: Type
          description: Type of the node. Must be 'deduplicate'
          default: deduplicate
        input_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Variable Name
          description: >-
            Name of the runtime variable that holds the list of objects to
            deduplicate
        dedup_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Dedup Key
          description: >-
            Dot-notation key path used to identify duplicates (e.g. 'id',
            'user.email'). The first object with a given key value is kept;
            subsequent ones are removed. Objects missing the key are always
            kept. Ignored if dedup_key_runtime_variable_name is set.
        dedup_key_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Dedup Key Variable Name
          description: >-
            Name of the runtime variable holding the dot-notation key path. When
            set, this takes priority over the static dedup_key.
        output_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Variable Name
          description: >-
            Name of the runtime variable where the deduplicated list will be
            stored
          default: deduplicate_result
      type: object
      title: DeduplicateNodeConfig
    FieldExtractorNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Data Transformation
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Extraction
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: field_extractor
          title: Type
          description: Type of the node. Must be 'field_extractor'
          default: field_extractor
        input_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Variable Name
          description: >-
            Name of the runtime variable that holds the input JSON to be
            filtered
        keys_to_retain:
          items:
            type: string
          type: array
          title: Keys to Retain
          description: >-
            Static list of key paths to retain in the output. Supports dot
            notation for nested keys (e.g. 'address.city'), bracket notation for
            arrays (e.g. 'orders[].id' for all elements, 'orders[1].id' for a
            specific index). Ignored if keys_to_retain_runtime_variable_name is
            set.
        keys_to_retain_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Keys to Retain Variable Name
          description: >-
            Name of the runtime variable holding the list of key paths to
            retain. When set, this takes priority over the static keys_to_retain
            list.
        output_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Variable Name
          description: >-
            Name of the runtime variable where the extracted result will be
            stored
          default: field_extractor_result
      type: object
      title: FieldExtractorNodeConfig
    DirectEdgeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Logical ID
          description: Unique identifier for the edge
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Name
          description: Name of the edge
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Description
          description: Description of the edge
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        source_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Node Logical ID
          description: Logical ID of the source node for this edge
          input_field_not_visible: true
        destination_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Node Logical ID
          description: Logical ID of the target node for this edge
          input_field_not_visible: true
        type:
          type: string
          const: direct
          title: Edge Type
          description: >-
            Type of the edge. Expected to be always 'direct' for this base
            config
          default: direct
      type: object
      title: Direct Edge
    ConditionalEdgeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Logical ID
          description: Unique identifier for the edge
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Name
          description: Name of the edge
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Description
          description: Description of the edge
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        source_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Node Logical ID
          description: Logical ID of the source node for this edge
          input_field_not_visible: true
        destination_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Node Logical ID
          description: Logical ID of the target node for this edge
          input_field_not_visible: true
        type:
          type: string
          const: conditional
          title: Edge Type
          description: >-
            Type of the edge. Expected to be always 'conditional' for this
            config
          default: conditional
        condition:
          anyOf:
            - $ref: '#/components/schemas/ConditionConfig'
            - type: 'null'
          title: Edge Condition
          description: Condition that determines whether this edge is taken
      type: object
      title: Conditional Edge
    CompanionEdgeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Logical ID
          description: Unique identifier for the edge
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Name
          description: Name of the edge
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Description
          description: Description of the edge
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        source_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Node Logical ID
          description: Logical ID of the source node for this edge
          input_field_not_visible: true
        destination_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Node Logical ID
          description: Logical ID of the target node for this edge
          input_field_not_visible: true
        type:
          type: string
          const: companion
          title: Edge Type
          description: Type of the edge. Expected to be always 'companion' for this config
          default: companion
      type: object
      title: Companion Edge
    SuperNodeFieldMapping:
      properties:
        target_type:
          $ref: '#/components/schemas/SuperNodeFieldMappingTargetType'
          title: Target Type
          description: >-
            Where to inject the field value: into a node's config field
            ('node_config_field'), an edge's config field ('edge_config_field'),
            the sub-workflow's WorkflowConfig ('workflow_config_field'), a
            dynamic variable ('dynamic_variable'), or a runtime variable
            ('runtime_variable').
        target_node_or_edge_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Node or Edge Logical ID
          description: >-
            Logical ID of the node or edge in the sub-workflow whose config
            field should be set. Required when target_type is
            'node_config_field' or 'edge_config_field'.
        target_field_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Field Path
          description: >-
            Dot-separated path to the target field. For 'node_config_field':
            path within the target node's config, e.g.
            'main_response_config.prompt'. For 'edge_config_field': path within
            the target edge's config, e.g. 'condition.condition_string'. For
            'workflow_config_field': path within the sub-workflow's
            WorkflowConfig, e.g. 'default_prompt_prefix'. Required when
            target_type is 'node_config_field', 'edge_config_field', or
            'workflow_config_field'.
        target_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Variable Name
          description: >-
            Name of the variable to set. For 'dynamic_variable': sets a {{var}}
            dynamic variable, e.g. 'patient_name'. For 'runtime_variable':
            injects into the sub-workflow's runtime_variables dict. Required
            when target_type is 'dynamic_variable' or 'runtime_variable'.
      type: object
      required:
        - target_type
      title: SuperNodeFieldMapping
      description: Defines where a super node input field value should be injected.
    SuperNodeInputFieldValueType:
      type: string
      enum:
        - string
        - integer
        - number
        - boolean
        - object
        - array
        - enum
        - any
      title: SuperNodeInputFieldValueType
      description: >-
        Declared shape of a super node input field's leaf value.


        Used at parent-workflow publish time to validate
        ``SuperNodeConfig.field_values``

        against the interface declared by the sub-workflow.
    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
    GlobalNodeConfig:
      properties:
        is_global:
          type: boolean
          title: Is Global Node
          description: >-
            Whether this node is a global node available as a conditional
            pathway to all nodes in the workflow
          default: false
        condition:
          anyOf:
            - $ref: '#/components/schemas/ConditionConfig'
            - type: 'null'
          title: Global Node Condition
          description: Condition that determines whether this global node is navigated to
        global_condition_edge_evaluation_method:
          anyOf:
            - $ref: >-
                #/components/schemas/agentic_workflow_framework__configs__nodes__node__GlobalConditionEdgeEvaluationMethod
            - type: 'null'
          title: Global Condition Edge Evaluation Method
          description: Method used to evaluate global condition edges going into this node.
          default: workflow_default
        reverse_conditional_edge:
          anyOf:
            - $ref: '#/components/schemas/ConditionConfig'
            - type: 'null'
          title: Reverse Conditional Edge
          description: >-
            Condition and message configuration for navigating back to the node
            that preceded this global node. When the condition is satisfied
            while this global node is executing, the workflow returns control to
            whichever node originally transitioned into this global node.
            Supports freeform condition, args schema, static messages, and
            dynamic messages — identical to a regular conditional edge.
      type: object
      title: GlobalNodeConfig
    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
    SuperNodeReverseEdgeScope:
      type: string
      enum:
        - all_interior_llm_nodes
        - terminal_nodes
      title: SuperNodeReverseEdgeScope
      description: >-
        Controls which inlined sub-workflow nodes receive the super node
        placeholder's

        ``global_node_config.reverse_conditional_edge`` when the super node is
        expanded.


        The reverse edge is surfaced to the model as a per-turn LLM tool, so in
        BOTH modes

        only LLM-capable nodes are targeted — a static / HTTP / EndConversation
        node could

        never fire it.
    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.
    GoogleWorkspaceOAuth2Credentials:
      properties:
        type:
          type: string
          const: google_workspace_oauth2
          title: Credentials Type
          description: Type of the credentials. Must be 'google_workspace_oauth2'
          default: google_workspace_oauth2
          input_field_not_visible: true
        oauth_redirect_uri:
          anyOf:
            - type: string
            - type: 'null'
          title: OAuth Redirect URI
          description: >-
            OAuth redirect URI for Google Workspace. If not provided, the
            default value at os.environ['GOOGLE_OAUTH_REDIRECT_URI'] will be
            used.
        client_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Client ID
          description: >-
            Client ID for Google Workspace. If not provided, the default value
            at os.environ['GOOGLE_CLIENT_ID'] will be used.
        client_secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Client Secret
          description: >-
            Client Secret for Google Workspace. If not provided, the default
            value at os.environ['GOOGLE_CLIENT_SECRET'] will be used.
      type: object
      title: OAuth2 Credentials
      description: Configuration for Google Workspace OAuth2 credentials.
    GoogleWorkspaceServiceAccountCredentials:
      properties:
        type:
          type: string
          const: google_workspace_service_account
          title: Credentials Type
          description: Type of the credentials. Must be 'google_workspace_service_account'
          default: google_workspace_service_account
          input_field_not_visible: true
        service_account_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Service Account Email
          description: >-
            Service account email for Google Workspace. If not provided, the
            default value at os.environ['GOOGLE_SERVICE_ACCOUNT_EMAIL'] will be
            used.
        private_key_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Private Key ID
          description: >-
            Private key ID for Google Workspace. If not provided, the default
            value at os.environ['GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY_ID'] will be
            used.
        private_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Private Key
          description: >-
            Private key for Google Workspace. If not provided, the default value
            at os.environ['GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY'] will be used.
        impersonation_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Impersonation Email
          description: >-
            Email to impersonate for Google Workspace. If not provided, the
            default value at
            os.environ['GOOGLE_SERVICE_ACCOUNT_IMPERSONATION_EMAIL'] will be
            used.
      type: object
      title: Service Account Credentials
      description: Configuration for Google Workspace service account credentials.
    GoogleWorkspaceAPIKeyCredentials:
      properties:
        type:
          type: string
          const: google_workspace_api_key
          title: Credentials Type
          description: Type of the credentials. Must be 'google_workspace_api_key'
          default: google_workspace_api_key
          input_field_not_visible: true
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: >-
            API Key for Google Workspace, used to access public APIs. If not
            provided, the default value at os.environ['GOOGLE_API_KEY'] will be
            used.
      type: object
      title: API Key Credentials
      description: Configuration for Google Workspace API Key credentials.
    GoogleDocsCreateDocumentConfig:
      properties:
        type:
          type: string
          const: google_docs_create_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_create_document'
          default: google_docs_create_document
          input_field_not_visible: true
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Document Title
          description: Title of the Google Docs document to be created.
        drive_name_or_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Drive Name or ID
          description: >-
            Name or ID of the Google Drive where the document will be created.
            If not provided, the document will be created in the user's default
            drive.
        folder_name_or_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Folder Name or ID
          description: >-
            Name or ID of the folder where the document will be created. If not
            provided, the document will be created in the root of the drive.
      type: object
      title: Google Docs Create Document Node
      description: Configuration for creating a Google Docs document.
    GoogleDocsGetDocumentConfig:
      properties:
        type:
          type: string
          const: google_docs_get_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_get_document'
          default: google_docs_get_document
          input_field_not_visible: true
        document_id_or_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Document ID or URL
          description: ID or URL of the Google Docs document to be retrieved.
        return_full_model:
          type: boolean
          title: Return Full Model
          description: >-
            Whether to return the full document model or just the plain text
            content.
          default: false
      type: object
      title: Google Docs Get Document Node
      description: Configuration for getting a Google Docs document.
    GoogleDocsUpdateDocumentConfig:
      properties:
        type:
          type: string
          const: google_docs_update_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_update_document'
          default: google_docs_update_document
          input_field_not_visible: true
        document_id_or_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Document ID or URL
          description: ID or URL of the Google Docs document to be updated.
        updates:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleDocsUpdateWithTextConfig'
              discriminator:
                propertyName: type
                mapping:
                  google_docs_update_with_text:
                    $ref: '#/components/schemas/GoogleDocsUpdateWithTextConfig'
            - type: 'null'
          title: Document Updates
          description: >-
            Updates to be applied to the Google Docs document. If not provided,
            no updates will be made.
      type: object
      title: Google Docs Update Document Node
      description: Configuration for updating a Google Docs document.
    HttpMethodEnum:
      type: string
      enum:
        - GET
        - POST
        - PUT
        - PATCH
        - DELETE
        - HEAD
        - OPTIONS
      title: HttpMethodEnum
    BodyContentTypeEnum:
      type: string
      enum:
        - application/json
        - application/x-www-form-urlencoded
        - multipart/form-data
        - text/plain
      title: BodyContentTypeEnum
    ResponseFormatEnum:
      type: string
      enum:
        - json
        - text
        - binary
      title: ResponseFormatEnum
    WorkingHours:
      properties:
        monday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Monday
        tuesday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Tuesday
        wednesday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Wednesday
        thursday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Thursday
        friday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Friday
        saturday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Saturday
        sunday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Sunday
      type: object
      required:
        - monday
        - tuesday
        - wednesday
        - thursday
        - friday
        - saturday
        - sunday
      title: WorkingHours
    UseCase:
      type: string
      enum:
        - appointment_scheduling
        - appointment_cancellation
        - appointment_rescheduling
        - appointment_scheduling_with_waitlist
        - medication_refill
        - invoice_billing
      title: UseCase
    Gender:
      type: string
      enum:
        - ''
        - Female
        - Male
        - Non-binary gender identity
        - Additional gender category or other
        - Choose not to disclose
        - Genderqueer (neither exclusively male nor female)
        - Unknown
      title: Gender
    ConditionConfig:
      properties:
        condition_freeform:
          anyOf:
            - type: string
            - type: 'null'
          title: Freeform condition string
          description: >-
            Condition (expressed in natural language) that determines whether
            this path is taken
          input_field_type: textarea
        condition_expression:
          anyOf:
            - type: string
            - type: 'null'
          title: Expression condition string
          description: >-
            Condition (expressed in a structured equation with variables) that
            determines whether this path is taken
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Arguments JSON Schema
          description: >-
            JSON Schema describing the arguments that will be passed when
            condition_freeform is evaluated
          input_field_type: textarea
        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
        dynamic_messages_config:
          anyOf:
            - $ref: '#/components/schemas/DynamicMessagesConfig'
            - type: 'null'
          title: Dynamic Messages Configuration
          description: >-
            Dynamic message configuration. When set, the LLM will generate a
            message to say when this edge is taken, guided by the provided
            prompt.
      type: object
      title: ConditionConfig
    SuperNodeFieldMappingTargetType:
      type: string
      enum:
        - node_config_field
        - dynamic_variable
        - edge_config_field
        - workflow_config_field
        - runtime_variable
      title: SuperNodeFieldMappingTargetType
    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
    AccessControlLevel:
      type: string
      enum:
        - personal
        - team
        - system
      title: AccessControlLevel
      description: Enum representing different access control levels.
    agentic_workflow_framework__configs__nodes__node__GlobalConditionEdgeEvaluationMethod:
      type: string
      enum:
        - workflow_default
        - tool_call
        - independent_llm_evaluations
      title: GlobalConditionEdgeEvaluationMethod
    APIMethodType:
      type: string
      enum:
        - GET
        - POST
        - PUT
        - DELETE
      title: APIMethodType
      description: Enumeration of HTTP methods for API calls.
    GoogleDocsUpdateWithTextConfig:
      properties:
        type:
          type: string
          const: google_docs_update_with_text
          title: Node Type
          description: Type of the node. Must be 'google_docs_update_with_text'
          default: google_docs_update_with_text
          input_field_not_visible: true
        content:
          anyOf:
            - type: string
            - type: 'null'
          title: Document Content
          description: Content to update the Google Docs document with.
        insert_index:
          anyOf:
            - type: integer
            - type: 'null'
          title: Insert Index
          description: >-
            Index at which to insert the content in the Google Docs document. If
            not provided, the content will be appended to the end of the
            document.
      type: object
      title: Google Docs Update With Text Node
      description: Configuration for updating a Google Docs document with text.
    StartEndTimings:
      properties:
        start:
          type: string
          title: Start Time
          description: Start time in HH:MM format
        end:
          type: string
          title: End Time
          description: End time in HH:MM format
      type: object
      required:
        - start
        - end
      title: StartEndTimings
    DynamicMessagesConfig:
      properties:
        dynamic_message_prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Dynamic Message Prompt
          description: >-
            A prompt describing what the LLM should say when this conditional
            edge is taken. The LLM will be asked to fill in a value based on
            this prompt, and the result will be emitted as an assistant
            response.
          input_field_type: textarea
      type: object
      title: DynamicMessagesConfig
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: >-
        Retrieve your API Key from [Dashboard API Keys
        Section](https://dashboard.interactly.ai/api-keys).

````