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

# Add Workflow Node

> Add a node to a workflow DAG (action, agent, or advanced) and wire its edges. Cycles are rejected.



## OpenAPI

````yaml POST /v1/workflows/{workflow_id}/nodes
openapi: 3.1.0
info:
  title: xpander.ai API Service
  description: |2-

        The xpander.ai API Service provides a unified REST API for managing AI agents,
        executing tasks, managing knowledge bases, and integrating with external systems.
        
        Features:
        - Agent Management: Create, update, deploy, and delete AI agents
        - Task Execution: Invoke agents with support for sync, async, and streaming modes
        - Knowledge Bases: Manage knowledge bases and documents for RAG workflows
        - Tools: Discover, connect, and attach tools (connectors, custom functions, MCP servers, sub-agents, workflows) to agents and workflows
        - MCP Integration: Model Context Protocol support for standardized AI interactions
        
        Authentication: All endpoints require authentication via either an API key (`x-api-key`) or an OAuth2 JWT (`Authorization: Bearer <jwt>`).
        
  version: '0.001'
servers:
  - url: https://api.xpander.ai
security: []
paths:
  /v1/workflows/{workflow_id}/nodes:
    post:
      tags:
        - API v1
        - Workflows
        - Workflow Nodes
      summary: Add Workflow Node
      description: >-
        Add a node to a workflow DAG (action, agent, or advanced) and wire its
        edges. Cycles are rejected.
      operationId: Add_workflow_node_v1_workflows__workflow_id__nodes_post
      parameters:
        - name: workflow_id
          in: path
          required: true
          schema:
            type: string
            title: Workflow Id
        - name: deploy
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Deploy the workflow after adding so the change takes effect
              immediately.
            default: true
            title: Deploy
          description: >-
            Deploy the workflow after adding so the change takes effect
            immediately.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddWorkflowNodeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkflowNodeView'
                title: >-
                  Response Add Workflow Node V1 Workflows  Workflow Id  Nodes
                  Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    AddWorkflowNodeRequest:
      properties:
        type:
          type: string
          enum:
            - action
            - agent
            - advanced
          title: Type
          description: Node kind to add.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Node name.
        connection_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Connection Id
          description: Connection id. Required for type=action.
        operation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Operation Id
          description: Operation catalog id. Required for type=action.
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
          description: Instructions for the action/agent node.
        agent_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Id
          description: Agent id. Required for type=agent.
        advanced:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationNode-Input'
            - type: 'null'
          description: A full OrchestrationNode. Required for type=advanced.
        after_node_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: After Node Ids
          description: Append the new node id to the next_node_ids of these existing nodes.
          default: []
        next_node_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Next Node Ids
          description: Ids of nodes to run after the new node.
          default: []
      type: object
      required:
        - type
      title: AddWorkflowNodeRequest
      description: >-
        Add a node to a workflow DAG. Use `action`/`agent` for the common cases,
        or `advanced` for full control.
    WorkflowNodeView:
      properties:
        id:
          type: string
          title: Id
          description: Node id (use to update/remove the node).
        type:
          type: string
          title: Type
          description: Node type (action, agent, classifier, ...).
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Node name.
        next_node_ids:
          items:
            type: string
          type: array
          title: Next Node Ids
          description: Ids of nodes that run after this one.
          default: []
        asset_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Asset Id
          description: Referenced asset id for action/agent nodes.
        connection_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Connection Id
          description: Connection id parsed from an action node's asset_id.
        operation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Operation Id
          description: Operation catalog id parsed from an action node's asset_id.
        target_agent_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Agent Id
          description: Agent id for agent nodes.
      type: object
      required:
        - id
        - type
      title: WorkflowNodeView
      description: Simplified view of one orchestration node.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    OrchestrationNode-Input:
      properties:
        type:
          $ref: '#/components/schemas/OrchestrationNodeType'
        id:
          type: string
          title: Id
        next_node_ids:
          items:
            type: string
          type: array
          title: Next Node Ids
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        condition:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationCondition'
            - type: 'null'
        retry_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationRetryStrategy'
            - type: 'null'
        iterative_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationIterativeStrategy-Input'
            - type: 'null'
        stop_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationStopStrategy-Input'
            - type: 'null'
        definition:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationCodeNode'
            - $ref: '#/components/schemas/OrchestrationClassifierNode-Input'
            - $ref: '#/components/schemas/OrchestrationPointerNode'
            - $ref: '#/components/schemas/OrchestrationWaitNode-Input'
            - $ref: '#/components/schemas/OrchestrationGuardrailNode-Input'
            - $ref: '#/components/schemas/OrchestrationSummarizerNode-Input'
            - $ref: '#/components/schemas/OrchestrationSendToEndNode'
            - $ref: '#/components/schemas/OrchestrationSelfScheduleNode'
            - $ref: '#/components/schemas/OrchestrationNodePointerDefinition'
            - $ref: '#/components/schemas/OrchestrationParallelNode-Input'
          title: Definition
        input_type:
          anyOf:
            - $ref: '#/components/schemas/OutputFormat'
            - type: 'null'
          default: text
        input_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Input Schema
        input_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Instructions
        agentic_context_input_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Agentic Context Input Instructions
        agentic_context_output_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Agentic Context Output Instructions
        return_this:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Return This
          default: false
      type: object
      required:
        - type
        - definition
      title: OrchestrationNode
      description: >-
        A node in an orchestration workflow.


        Represents a single execution unit in an orchestration with control
        flow,

        execution strategies, and a specific node type definition.


        Attributes:
            type: Type of the node (must match the definition type).
            id: Unique identifier for the node. Auto-generated if not provided.
            next_node_ids: List of IDs of the next nodes to execute.
            name: Human-readable name for the node.
            description: Detailed description of the node's purpose.
            condition: Conditional logic for executing this node.
            retry_strategy: Strategy for retrying failed executions.
            iterative_strategy: Strategy for iterative execution.
            stop_strategy: Strategy for stopping the workflow.
            definition: The actual node implementation (code, classifier, pointer, or wait).
            input_type: Expected input format. Defaults to Text.
            input_schema: JSON schema for structured input validation.
            input_instructions: Instructions to use for structured input.
            agentic_context_input_instructions: Instructions to use for agentic context injection.
            agentic_context_output_instructions: Instructions to use for agentic context update.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    OrchestrationNodeType:
      type: string
      enum:
        - custom_function
        - code
        - agent
        - orchestration
        - classifier
        - wait
        - action
        - guardrail
        - summarizer
        - send_to_end
        - node_pointer
        - parallel
        - self_schedule
      title: OrchestrationNodeType
      description: |-
        Types of nodes available in an orchestration workflow.

        Attributes:
            CustomFunction: Node that executes a custom function.
            Code: Node that executes arbitrary code.
            Agent: Node that invokes an AI agent.
            Orchestration: Node that references another orchestration.
            Classifier: Node that classifies inputs using LLM.
            Wait: Node that pauses execution until a condition is met.
            Action: Node that triggers an action (api).
            Guardrail: Node that enforces guardrails on inputs using LLM.
            Summarizer: Node that summarizes or extracts information from inputs using LLM.
    OrchestrationCondition:
      properties:
        type:
          $ref: '#/components/schemas/OrchestrationConditionType'
        term:
          anyOf:
            - type: string
            - type: 'null'
          title: Term
        group_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Group Id
        path:
          anyOf:
            - type: string
            - type: 'null'
          title: Path
        value:
          anyOf:
            - {}
            - type: 'null'
          title: Value
      type: object
      required:
        - type
      title: OrchestrationCondition
      description: |-
        Condition for controlling orchestration flow.

        Attributes:
            type: Type of condition (regex, contains, else, or comparison operators).
            term: The pattern or string to match against. Used for 'regex' and 'contains' types.
            group_id: Optional group ID for group-based classifier routing.
                     When set, routing matches by group ID instead of term matching.
            path: Path to extract value from input data (e.g., "input.client_id" or "client_id").
                  Used for comparison operators (equal, not_equal, gt, lt, gte, lte, not_empty).
            value: Value to compare against. Used with comparison operators.
                   Not required for 'not_empty' type.
    OrchestrationRetryStrategy:
      properties:
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
          default: false
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          default: 3
      type: object
      title: OrchestrationRetryStrategy
      description: |-
        Strategy for retrying failed orchestration nodes.

        Attributes:
            enabled: Whether retry is enabled for this node.
            max_retries: Maximum number of retry attempts. Defaults to 3.
    OrchestrationIterativeStrategy-Input:
      properties:
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
          default: false
        max_iterations:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Iterations
          default: 3
        end_condition:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationCondition'
            - type: 'null'
      type: object
      title: OrchestrationIterativeStrategy
      description: |-
        Strategy for iteratively executing orchestration nodes.

        Attributes:
            enabled: Whether iterative execution is enabled.
            max_iterations: Maximum number of iterations. Defaults to 3.
            end_condition: Optional condition to stop iteration early.
    OrchestrationStopStrategy-Input:
      properties:
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
          default: false
        stop_on_failure:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Stop On Failure
          default: true
        stop_on_condition:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationCondition'
            - type: 'null'
      type: object
      title: OrchestrationStopStrategy
      description: |-
        Strategy for stopping orchestration execution.

        Attributes:
            enabled: Whether the stop strategy is enabled.
            stop_on_failure: Whether to stop the entire orchestration on node failure.
            stop_on_condition: Optional condition that will stop execution if met.
    OrchestrationCodeNode:
      properties:
        code:
          type: string
          title: Code
      type: object
      required:
        - code
      title: OrchestrationCodeNode
      description: |-
        Node that executes arbitrary code.

        Attributes:
            code: The code string to execute.
    OrchestrationClassifierNode-Input:
      properties:
        groups:
          items:
            $ref: '#/components/schemas/ClassificationGroup'
          type: array
          title: Groups
        output_type:
          anyOf:
            - $ref: '#/components/schemas/OutputFormat'
            - type: 'null'
          default: text
        output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Output Schema
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
        examples:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Examples
          default: []
        settings:
          $ref: '#/components/schemas/OrchestrationClassifierNodeLLMSettings'
      type: object
      required:
        - groups
        - settings
      title: OrchestrationClassifierNode
      description: |-
        Node that uses LLM to classify inputs into groups.

        Attributes:
            groups: List of classification groups to evaluate against.
            output_type: Expected output format. Defaults to Text.
            output_schema: JSON schema for structured output validation.
            instructions: Classification or transformation instructions for the LLM.
            examples: Example inputs/outputs to guide the LLM behavior.
            settings: LLM configuration settings.
    OrchestrationPointerNode:
      properties:
        asset_id:
          type: string
          title: Asset Id
        type:
          type: string
          enum:
            - agent
            - custom_function
            - orchestration
            - action
          title: Type
        output_type:
          anyOf:
            - $ref: '#/components/schemas/OutputFormat'
            - type: 'null'
          default: text
        output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Output Schema
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
        instructions_mode:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationPointerNodeInstructionsMode'
            - type: 'null'
          default: append
        ignore_response:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Ignore Response
          default: false
        persist_thread_id:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Persist Thread Id
          default: true
        schema_override:
          anyOf:
            - $ref: '#/components/schemas/SchemaOverride'
            - type: 'null'
      type: object
      required:
        - asset_id
        - type
      title: OrchestrationPointerNode
      description: >-
        Node that references an external asset (agent, function, or
        orchestration).


        Attributes:
            asset_id: Unique identifier of the asset to execute.
            type: Type of asset being referenced.
            output_type: Expected output format. Defaults to Text.
            output_schema: JSON schema for structured output validation.
            instructions: Optional instructions for the pointer node (Action only).
            instructions_mode: Mode to use for pointer node, specifically for agent nodes.
            ignore_response: Should ignore the node result and proceed with previous result?.
            persist_thread_id: Should persist the thread in agent nodes? default (True).
            schema_override: Optional schema override with permanentValue fields for fixed values.
    OrchestrationWaitNode-Input:
      properties:
        type:
          type: string
          enum:
            - webhook
            - hitl
          title: Type
        definition:
          anyOf:
            - $ref: '#/components/schemas/EmailNotificationSettings'
            - $ref: '#/components/schemas/SlackNotificationSettings'
            - $ref: '#/components/schemas/WebhookNotificationSettings'
          title: Definition
      type: object
      required:
        - type
        - definition
      title: OrchestrationWaitNode
      description: |-
        Node that pauses execution until an external event occurs.

        Attributes:
            type: Type of wait event (webhook or human-in-the-loop).
            definition: Notification configuration for triggering continuation.
    OrchestrationGuardrailNode-Input:
      properties:
        groups:
          items:
            $ref: '#/components/schemas/ClassificationGroup'
          type: array
          title: Groups
        examples:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Examples
          default: []
        settings:
          $ref: '#/components/schemas/OrchestrationClassifierNodeLLMSettings'
      type: object
      required:
        - groups
        - settings
      title: OrchestrationGuardrailNode
      description: >-
        Node that uses LLM to evaluate input against pass/fail criteria.


        This node works like a classifier with exactly 2 groups: "pass" and
        "fail".

        The user defines evaluation_criteria for each group.


        Routing behavior:

        - If guardrail passes: routes to downstream node with condition
        group_id="pass"

        - If guardrail fails: routes to downstream node with condition
        group_id="fail"

        - If no fail route exists: falls back to end nodes (end-summarizer or
        end-classifier)

        - A pass route is REQUIRED; fail route is optional.


        Attributes:
            groups: List of 2 ClassificationGroup objects with IDs "pass" and "fail".
                    Each group has evaluation_criteria defined by the user.
            examples: Example inputs/outputs to guide the LLM behavior.
            settings: LLM configuration settings.
    OrchestrationSummarizerNode-Input:
      properties:
        instructions:
          type: string
          title: Instructions
        examples:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Examples
          default: []
        settings:
          $ref: '#/components/schemas/OrchestrationClassifierNodeLLMSettings'
      type: object
      required:
        - instructions
        - settings
      title: OrchestrationSummarizerNode
      description: >-
        Node that processes large payloads and answers specific questions.


        This node uses an LLM to summarize or extract information from large
        inputs.


        Attributes:
            instructions: Summarization or question-answering instructions for the LLM.
            examples: Example inputs/outputs to guide the LLM behavior.
            settings: LLM configuration settings.
    OrchestrationSendToEndNode:
      properties:
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
      type: object
      title: OrchestrationSendToEndNode
      description: |-
        Node that routes execution to end nodes or finishes the workflow.

        When triggered, this node will:
        1. Route to end nodes (end-summarizer, end-classifier) if they exist
        2. Finish workflow execution immediately if no end nodes exist

        Attributes:
            message: Optional message or reason for finishing the workflow.
    OrchestrationSelfScheduleNode:
      properties:
        when:
          type: string
          title: When
        target_node_id:
          type: string
          title: Target Node Id
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt
        max_reschedules:
          type: integer
          maximum: 100
          minimum: 1
          title: Max Reschedules
          default: 1
      type: object
      required:
        - when
        - target_node_id
      title: OrchestrationSelfScheduleNode
      description: >-
        Node that pauses the workflow and schedules itself to resume at a later
        time.


        At runtime the worker's self-schedule executor:
          1. LLM-parses ``when`` (free-text like "in 1 hour", "next Monday 9am") into an
             absolute ISO-8601 ``run_at`` using the current datetime / user timezone.
          2. Creates a row in ``ai_agents_self_schedules`` with the current ``task_id``
             and ``workflow_next_node = target_node_id``.
          3. Pauses the task.

        When APScheduler fires the row, the same task is re-invoked with

        ``payload_extension={"workflow_next_node": target_node_id}`` and the
        worker

        resumes execution starting from the target node, re-running target + its

        forward cone and skipping everything outside that cone.


        ``target_node_id`` may point to ANY node in the orchestration (forward,

        backward, or sibling). Backward jumps are bounded by ``max_reschedules``
        so

        loops cannot run away.


        Attributes:
            when: Free-text schedule expression, parsed by the worker via an LLM.
            target_node_id: The id of the node to resume at. Must exist in the
                orchestration; no topological constraint.
            prompt: Optional instruction appended to the upstream node's result
                before being sent as the scheduled run's prompt. If both the upstream
                result and this prompt are empty, the node fails rather than creating
                an empty row.
            max_reschedules: Maximum number of times this node may fire during a
                single task lifecycle. Once reached, the executor falls through and
                the graph proceeds via ``next_node_ids``. Defaults to 1.
    OrchestrationNodePointerDefinition:
      properties:
        source_node_id:
          type: string
          title: Source Node Id
      type: object
      required:
        - source_node_id
      title: OrchestrationNodePointerDefinition
      description: >-
        Definition for a NodePointer node that acts as a graph-position jump.


        A NodePointer jumps execution to another node's position in the graph.

        At resolution time, the pointer adopts the source node's definition,
        type,

        AND next_node_ids — so after executing the source's logic, the flow

        continues to the source's original downstream targets.

        The pointer keeps its own id, name, condition, and strategies.


        Attributes:
            source_node_id: ID of the node to jump to.
    OrchestrationParallelNode-Input:
      properties:
        nodes:
          items:
            $ref: '#/components/schemas/OrchestrationNode-Input'
          type: array
          title: Nodes
        output_type:
          anyOf:
            - $ref: '#/components/schemas/OutputFormat'
            - type: 'null'
          default: text
        output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Output Schema
        output_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Instructions
      type: object
      required:
        - nodes
      title: OrchestrationParallelNode
      description: >-
        Node that executes multiple child nodes in parallel.


        All child nodes receive the same input (the output of the preceding
        node).

        When all child nodes complete, their results are combined:

        - JSON outputs are merged into a single JSON object keyed by node name.

        - String outputs are concatenated with node name headers.


        Attributes:
            nodes: List of child OrchestrationNode objects to execute in parallel.
            output_type: Expected output format for the combined result. Defaults to Text.
            output_schema: JSON schema for structured output validation of the combined result.
            output_instructions: Instructions for transforming the combined output into the schema.
    OutputFormat:
      type: string
      enum:
        - text
        - markdown
        - json
        - voice
      title: OutputFormat
    OrchestrationConditionType:
      type: string
      enum:
        - regex
        - contains
        - else
        - equal
        - not_equal
        - gt
        - lt
        - gte
        - lte
        - not_empty
      title: OrchestrationConditionType
      description: |-
        Types of conditions for orchestration control flow.

        Attributes:
            Regex: Condition based on regular expression matching.
            Contains: Condition based on substring containment.
            Else: Fallback condition that always matches (executed when no other conditions match).
            Equal: Condition based on equality comparison (path == value).
            NotEqual: Condition based on inequality comparison (path != value).
            GreaterThan: Condition based on greater than comparison (path > value).
            LessThan: Condition based on less than comparison (path < value).
            GreaterThanOrEqual: Condition based on greater than or equal comparison (path >= value).
            LessThanOrEqual: Condition based on less than or equal comparison (path <= value).
            NotEmpty: Condition that checks if a path value is not empty/null.
    ClassificationGroup:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        evaluation_criteria:
          type: string
          title: Evaluation Criteria
        auto_extract_relevant_data:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Auto Extract Relevant Data
          default: false
        data_extraction_keys:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Data Extraction Keys
      type: object
      required:
        - name
        - evaluation_criteria
      title: ClassificationGroup
      description: >-
        A classification group with evaluation criteria and data extraction
        settings.


        Attributes:
            id: Unique identifier for the group (UUID).
            name: Human-readable name for the group.
            evaluation_criteria: Instructions for when this group should match.
            auto_extract_relevant_data: Whether to automatically extract relevant data for this group.
            data_extraction_keys: Specific JSON paths/keys to extract from input (alternative to auto_extract).
    OrchestrationClassifierNodeLLMSettings:
      properties:
        model_provider:
          anyOf:
            - $ref: '#/components/schemas/LLMModelProvider'
            - type: 'null'
          default: anthropic
        model_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Name
          default: claude-sonnet-4-6
        llm_credentials_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Llm Credentials Key
        llm_credentials_key_type:
          anyOf:
            - $ref: '#/components/schemas/LLMCredentialsKeyType'
            - type: 'null'
          default: xpander
        llm_credentials:
          anyOf:
            - $ref: '#/components/schemas/LLMCredentials'
            - type: 'null'
        llm_api_base:
          anyOf:
            - type: string
            - type: 'null'
          title: Llm Api Base
        llm_extra_headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Llm Extra Headers
          default: {}
      type: object
      title: OrchestrationClassifierNodeLLMSettings
      description: |-
        LLM configuration for classifier nodes.

        Attributes:
            model_provider: The LLM provider to use. Defaults to Anthropic.
            model_name: Specific model identifier. Defaults to "claude-sonnet-4-6".
            llm_credentials_key: Key identifier for stored credentials.
            llm_credentials_key_type: Type of credential key storage. Defaults to XPander.
            llm_credentials: Direct credential object if not using stored credentials.
            llm_api_base: Alternative API Base for the LLM.
            llm_extra_headers: Extra headers to be set to LLM Requests.
    OrchestrationPointerNodeInstructionsMode:
      type: string
      enum:
        - replace
        - append
      title: OrchestrationPointerNodeInstructionsMode
      description: |-
        Modes for instruction usage in pointer node.

        Attributes:
            Replace: Replaces the traget asset instructions.
            Append: Appends to the traget asset instructions.
    SchemaOverride:
      properties:
        input:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Input
      type: object
      title: SchemaOverride
      description: >-
        Schema override for workflow action nodes.


        Allows setting permanent (fixed) values for tool input properties.

        Fields with permanentValue will be removed from the schema sent to the
        LLM

        and the permanent values will be applied to the payload before
        execution.


        Attributes:
            input: Input schema with permanentValue fields to override LLM-generated values.
    EmailNotificationSettings:
      properties:
        subject:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject
        body:
          anyOf:
            - type: string
            - type: 'null'
          title: Body
        approve_button_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Approve Button Text
          default: Approve
        deny_button_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Deny Button Text
          default: Deny
        logo_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Logo Url
          default: https://assets.xpanderai.io/xpander-logo.png
        to:
          items:
            type: string
          type: array
          title: To
      type: object
      required:
        - to
      title: EmailNotificationSettings
      description: |-
        Configuration for email notifications.

        Attributes:
            to: List of recipient email addresses.
    SlackNotificationSettings:
      properties:
        subject:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject
        body:
          anyOf:
            - type: string
            - type: 'null'
          title: Body
        approve_button_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Approve Button Text
          default: Approve
        deny_button_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Deny Button Text
          default: Deny
        logo_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Logo Url
          default: https://assets.xpanderai.io/xpander-logo.png
        channels:
          items:
            type: string
          type: array
          title: Channels
        credentials:
          $ref: '#/components/schemas/SlackCredentials'
      type: object
      required:
        - channels
        - credentials
      title: SlackNotificationSettings
      description: |-
        Configuration for Slack notifications.

        Attributes:
            channels: List of Slack channel IDs or names to post to.
            credentials: Slack API authentication credentials.
    WebhookNotificationSettings:
      properties:
        subject:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject
        body:
          anyOf:
            - type: string
            - type: 'null'
          title: Body
        approve_button_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Approve Button Text
          default: Approve
        deny_button_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Deny Button Text
          default: Deny
        logo_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Logo Url
          default: https://assets.xpanderai.io/xpander-logo.png
        url:
          type: string
          title: Url
        headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Headers
          default: {}
      type: object
      required:
        - url
      title: WebhookNotificationSettings
      description: |-
        Configuration for webhook notifications.

        Attributes:
            url: Target webhook URL to POST notification data.
            headers: Optional HTTP headers to include in the webhook request.
    LLMModelProvider:
      type: string
      enum:
        - openai
        - nim
        - amazon_bedrock
        - azure_ai_foundary
        - huggingFace
        - friendlyAI
        - anthropic
        - gemini
        - fireworks
        - google_ai_studio
        - helicone
        - bytedance
        - tzafon_lightcone
        - open_router
        - nebius
        - cloudflare_ai_gw
      title: LLMModelProvider
    LLMCredentialsKeyType:
      type: string
      enum:
        - xpander
        - custom
      title: LLMCredentialsKeyType
    LLMCredentials:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        value:
          type: string
          title: Value
      type: object
      required:
        - name
        - value
      title: LLMCredentials
    SlackCredentials:
      properties:
        authed_user_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Authed User Id
        access_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Access Token
        client_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Client Id
        client_secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Client Secret
        verification_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Verification Token
        signing_secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Signing Secret
        app_configuration_token:
          anyOf:
            - type: string
            - type: 'null'
          title: App Configuration Token
        app_configuration_refresh_token:
          anyOf:
            - type: string
            - type: 'null'
          title: App Configuration Refresh Token
      type: object
      title: SlackCredentials
      description: |-
        Slack API authentication credentials.

        Attributes:
            authed_user_id: Authenticated user's Slack ID.
            access_token: OAuth access token for API calls.
            client_id: Slack app client ID.
            client_secret: Slack app client secret.
            verification_token: Token for verifying requests from Slack.
            signing_secret: Secret for validating webhook signatures.
            app_configuration_token: Token for app configuration.
            app_configuration_refresh_token: Refresh token for app configuration.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: API Key for authentication
      in: header
      name: x-api-key

````