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

# Deploy Workflow

> Deploy a workflow to make it active and available for execution

Deploy a workflow to activate it for task execution. Validates the node graph, provisions necessary resources, and increments the version number. After deployment, the workflow is ready to receive triggers (webhook, API, chat, or schedule).

## Path Parameters

<ParamField path="workflow_id" type="string" required>
  Unique identifier of the workflow (UUID)
</ParamField>

## Response

Returns the deployed `WorkflowResponse` object with updated status.

## Example Request

```bash theme={"dark"}
curl -X PUT -H "x-api-key: <your-api-key>" \
  "https://api.xpander.ai/v1/workflows/<workflow-id>"
```

## Notes

* Validates the node graph before deploying
* Increments the workflow version number
* The workflow must have a valid canvas with properly connected nodes to deploy successfully
* After deployment, all four trigger types become available (webhook, API, chat, schedule)


## OpenAPI

````yaml PUT /v1/workflows/{workflow_id}
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}:
    put:
      tags:
        - API v1
        - Workflows
        - Workflows CRUD
      summary: Deploy Workflow
      description: >-
        Deploy a workflow to make it active and available for execution.
        Validates the workflow configuration and provisions necessary resources.
      operationId: Deploy_Workflow_v1_workflows__workflow_id__put
      parameters:
        - name: workflow_id
          in: path
          required: true
          schema:
            type: string
            title: Workflow Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    WorkflowResponse:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        unique_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Unique Name
        origin_template:
          anyOf:
            - type: string
            - type: 'null'
          title: Origin Template
        environment_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Environment Id
        deployment_type:
          anyOf:
            - $ref: '#/components/schemas/AIAgentDeploymentType'
            - type: 'null'
          default: serverless
        prompts:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Prompts
          default: []
        is_latest:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Latest
          default: false
        has_pending_changes:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Has Pending Changes
          default: false
        deep_planning:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Deep Planning
          default: true
        enforce_deep_planning:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enforce Deep Planning
          default: true
        use_agent_gateway:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Agent Gateway
          default: false
        name:
          type: string
          title: Name
        connectivity_details:
          anyOf:
            - $ref: '#/components/schemas/AIAgentConnectivityDetailsA2A'
            - $ref: '#/components/schemas/AIAgentConnectivityDetailsCurl'
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Connectivity Details
          default: {}
        framework:
          anyOf:
            - type: string
            - type: 'null'
          title: Framework
          default: agno
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          default: ''
        tools:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Tools
          default: []
        icon:
          anyOf:
            - type: string
            - type: 'null'
          title: Icon
          default: 🚀
        avatar:
          anyOf:
            - type: string
            - type: 'null'
          title: Avatar
          default: male-avatar
        source_nodes:
          anyOf:
            - items:
                $ref: '#/components/schemas/AIAgentSourceNode'
              type: array
            - type: 'null'
          title: Source Nodes
          default: []
        attached_tools:
          anyOf:
            - items:
                $ref: '#/components/schemas/Connector'
              type: array
            - type: 'null'
          title: Attached Tools
          default: []
        access_scope:
          anyOf:
            - $ref: '#/components/schemas/AIAgentAccessScope'
            - type: 'null'
          default: personal
        instructions:
          anyOf:
            - $ref: '#/components/schemas/AIAgentInstructions'
            - type: 'null'
          default:
            role: []
            goal: []
            general: ''
        oas:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Oas
          default: {}
        graph:
          anyOf:
            - items:
                $ref: '#/components/schemas/AIAgentGraphItem-Output'
              type: array
            - type: 'null'
          title: Graph
          default: []
        is_omni:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Omni
          default: false
        skills:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Skills
          default: []
        status:
          anyOf:
            - $ref: '#/components/schemas/AgentStatus'
            - type: 'null'
          default: ACTIVE
        knowledge_bases:
          anyOf:
            - items:
                $ref: '#/components/schemas/AgentKnowledgeBase'
              type: array
            - type: 'null'
          title: Knowledge Bases
          default: []
        version:
          anyOf:
            - type: integer
            - type: 'null'
          title: Version
          default: 1
        organization_id:
          type: string
          title: Organization Id
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        type:
          anyOf:
            - $ref: '#/components/schemas/AgentType'
            - type: 'null'
        using_nemo:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Using Nemo
          default: false
        deletable:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Deletable
          default: true
        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_reasoning_effort:
          anyOf:
            - $ref: '#/components/schemas/LLMReasoningEffort'
            - type: 'null'
          default: medium
        llm_api_base:
          anyOf:
            - type: string
            - type: 'null'
          title: Llm Api Base
        output_format:
          anyOf:
            - $ref: '#/components/schemas/OutputFormat'
            - type: 'null'
          default: markdown
        voice_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Voice Id
        output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Output Schema
        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_extra_headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Llm Extra Headers
          default: {}
        expected_output:
          anyOf:
            - type: string
            - type: 'null'
          title: Expected Output
          default: ''
        agno_settings:
          anyOf:
            - $ref: '#/components/schemas/AgnoSettings'
            - type: 'null'
          default:
            session_storage: true
            learning: false
            agent_memories: false
            agentic_culture: false
            user_memories: false
            agentic_memory: false
            session_summaries: false
            num_history_runs: 50
            max_tool_calls_from_history: 0
            tool_call_limit: 0
            coordinate_mode: true
            pii_detection_enabled: false
            pii_detection_mask: true
            prompt_injection_detection_enabled: false
            openai_moderation_enabled: false
            reasoning_tools_enabled: true
            max_plan_retries: 15
        on_prem_event_streaming:
          anyOf:
            - type: boolean
            - type: 'null'
          title: On Prem Event Streaming
          default: true
        is_supervised:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Supervised
          default: false
        orchestration_nodes:
          anyOf:
            - items:
                $ref: '#/components/schemas/OrchestrationNode-Output'
              type: array
            - type: 'null'
          title: Orchestration Nodes
          default: []
        notification_settings:
          anyOf:
            - $ref: '#/components/schemas/NotificationSettings-Output'
            - type: 'null'
          default: {}
        task_level_strategies:
          anyOf:
            - $ref: '#/components/schemas/TaskLevelStrategies-Output'
            - type: 'null'
        use_oidc_pre_auth:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Oidc Pre Auth
          default: false
        pre_auth_audiences:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Pre Auth Audiences
          default: []
        use_oidc_pre_auth_token_for_llm:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Oidc Pre Auth Token For Llm
          default: false
        oidc_pre_auth_token_llm_audience:
          anyOf:
            - type: string
            - type: 'null'
          title: Oidc Pre Auth Token Llm Audience
        oidc_pre_auth_token_mcp_audience:
          anyOf:
            - type: string
            - type: 'null'
          title: Oidc Pre Auth Token Mcp Audience
        can_self_schedule:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Can Self Schedule
          default: false
        max_self_schedules:
          anyOf:
            - type: integer
              maximum: 1000
              minimum: 1
            - type: 'null'
          title: Max Self Schedules
          default: 3
        use_dynamic_tools:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Dynamic Tools
          default: false
        workspace_tools_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Workspace Tools Enabled
          default: true
        webhook_url:
          type: string
          title: Webhook Url
          readOnly: true
      type: object
      required:
        - name
        - organization_id
        - webhook_url
      title: WorkflowResponse
      description: >-
        Response model for workflow endpoints.


        Inherits from AIAgent but excludes agent-specific fields that are not

        relevant to workflows (orchestrations). This provides a clean API
        surface

        for workflow consumers without exposing confusing agent-only concepts.


        The workflow's execution logic is defined in `orchestration_nodes` — a
        DAG

        of typed nodes. Agent-specific fields like `graph`, `attached_tools`,

        `delegation_*`, `framework`, and `agno_settings` are hidden.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AIAgentDeploymentType:
      type: string
      enum:
        - serverless
        - container
      title: AIAgentDeploymentType
    AIAgentConnectivityDetailsA2A:
      properties:
        custom_headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Custom Headers
          default: {}
        auth_type:
          anyOf:
            - $ref: '#/components/schemas/AIAgentConnectivityDetailsA2AAuthType'
            - type: 'null'
          default: none
        api_key_header_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Api Key Header Name
          default: X-API-Key
        auth_value:
          anyOf:
            - type: string
            - type: 'null'
          title: Auth Value
        agent_url:
          type: string
          title: Agent Url
      type: object
      required:
        - agent_url
      title: AIAgentConnectivityDetailsA2A
    AIAgentConnectivityDetailsCurl:
      properties:
        custom_headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Custom Headers
          default: {}
        auth_type:
          anyOf:
            - $ref: '#/components/schemas/AIAgentConnectivityDetailsA2AAuthType'
            - type: 'null'
          default: none
        api_key_header_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Api Key Header Name
          default: X-API-Key
        auth_value:
          anyOf:
            - type: string
            - type: 'null'
          title: Auth Value
        curl_command:
          type: string
          title: Curl Command
        invoke_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Invoke Url
        method:
          anyOf:
            - type: string
            - type: 'null'
          title: Method
          default: POST
        prompt_field_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt Field Name
          default: ''
        files_field_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Files Field Name
          default: ''
        task_id_field_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Task Id Field Name
          default: ''
      type: object
      required:
        - curl_command
      title: AIAgentConnectivityDetailsCurl
    AIAgentSourceNode:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        type:
          $ref: '#/components/schemas/SourceNodeType'
        targets:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Targets
        metadata:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Metadata
          default: {}
      type: object
      required:
        - type
      title: AIAgentSourceNode
    Connector:
      properties:
        id:
          type: string
          title: Id
        operation_ids:
          items:
            type: string
          type: array
          title: Operation Ids
      type: object
      required:
        - id
        - operation_ids
      title: Connector
      description: >-
        Connector model representing the structure of a connector with an ID and
        associated operation IDs.


        Attributes:
            id (str): The unique identifier for the connector.
            operation_ids (list[str]): A list of operation IDs associated with the connector.
    AIAgentAccessScope:
      type: string
      enum:
        - personal
        - organizational
      title: AIAgentAccessScope
    AIAgentInstructions:
      properties:
        role:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Role
          default: []
        goal:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Goal
          default: []
        general:
          anyOf:
            - type: string
            - type: 'null'
          title: General
          default: ''
      type: object
      title: AIAgentInstructions
    AIAgentGraphItem-Output:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        item_id:
          type: string
          title: Item Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        type:
          $ref: '#/components/schemas/AIAgentGraphItemType'
        sub_type:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemSubType'
            - type: 'null'
        targets:
          items:
            type: string
          type: array
          title: Targets
        settings:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemSettings-Output'
            - type: 'null'
        is_first:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is First
          default: false
      type: object
      required:
        - item_id
        - type
        - targets
      title: AIAgentGraphItem
    AgentStatus:
      type: string
      enum:
        - DRAFT
        - ACTIVE
        - INACTIVE
      title: AgentStatus
      description: |-
        Enumeration of possible agent statuses.

        Attributes:
            DRAFT: Agent is in a draft state.
            ACTIVE: Agent is active and operational.
            INACTIVE: Agent is inactive and not operational.
    AgentKnowledgeBase:
      properties:
        id:
          type: string
          title: Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        strategy:
          $ref: '#/components/schemas/KnowledgeBaseStrategy'
        rw:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Rw
          default: false
        documents:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Documents
          default: []
      type: object
      required:
        - id
        - strategy
      title: AgentKnowledgeBase
    AgentType:
      type: string
      enum:
        - manager
        - regular
        - a2a
        - curl
        - orchestration
      title: AgentType
      description: |-
        Enumeration of the agent types.

        Attributes:
            Manager: marks the agent as a Managing agent.
            Regular: marks the agent as a regular agent.
            A2A: marks the agent as an external agent used via A2A protocol.
            Curl: marks the agent as an external agent used via a CURL.
            Orchestration: marks the agent as an Orchestration object.
    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
    LLMReasoningEffort:
      type: string
      enum:
        - low
        - medium
        - high
        - xhigh
      title: LLMReasoningEffort
    OutputFormat:
      type: string
      enum:
        - text
        - markdown
        - json
        - voice
      title: OutputFormat
    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
    AgnoSettings:
      properties:
        session_storage:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Session Storage
          default: true
        learning:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Learning
          default: false
        agent_memories:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Agent Memories
          default: false
        agentic_culture:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Agentic Culture
          default: false
        user_memories:
          anyOf:
            - type: boolean
            - type: 'null'
          title: User Memories
          default: false
        agentic_memory:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Agentic Memory
          default: false
        session_summaries:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Session Summaries
          default: false
        num_history_runs:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num History Runs
          default: 50
        max_tool_calls_from_history:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tool Calls From History
          default: 0
        tool_call_limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Tool Call Limit
          default: 0
        coordinate_mode:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Coordinate Mode
          default: true
        pii_detection_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Pii Detection Enabled
          default: false
        pii_detection_mask:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Pii Detection Mask
          default: true
        prompt_injection_detection_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Prompt Injection Detection Enabled
          default: false
        openai_moderation_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Openai Moderation Enabled
          default: false
        openai_moderation_categories:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Openai Moderation Categories
        reasoning_tools_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reasoning Tools Enabled
          default: true
        max_plan_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Plan Retries
          default: 15
      type: object
      title: AgnoSettings
    OrchestrationNode-Output:
      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-Output'
            - type: 'null'
        stop_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationStopStrategy-Output'
            - type: 'null'
        definition:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationCodeNode'
            - $ref: '#/components/schemas/OrchestrationClassifierNode-Output'
            - $ref: '#/components/schemas/OrchestrationPointerNode'
            - $ref: '#/components/schemas/OrchestrationWaitNode-Output'
            - $ref: '#/components/schemas/OrchestrationGuardrailNode-Output'
            - $ref: '#/components/schemas/OrchestrationSummarizerNode-Output'
            - $ref: '#/components/schemas/OrchestrationSendToEndNode'
            - $ref: '#/components/schemas/OrchestrationSelfScheduleNode'
            - $ref: '#/components/schemas/OrchestrationNodePointerDefinition'
            - $ref: '#/components/schemas/OrchestrationParallelNode-Output'
          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.
    NotificationSettings-Output:
      properties:
        on_success:
          anyOf:
            - additionalProperties:
                items:
                  anyOf:
                    - $ref: '#/components/schemas/EmailNotificationSettings'
                    - $ref: '#/components/schemas/SlackNotificationSettings'
                    - $ref: '#/components/schemas/WebhookNotificationSettings'
                type: array
              propertyNames:
                enum:
                  - email
                  - slack
                  - webhook
              type: object
            - type: 'null'
          title: On Success
          default: {}
        on_error:
          anyOf:
            - additionalProperties:
                items:
                  anyOf:
                    - $ref: '#/components/schemas/EmailNotificationSettings'
                    - $ref: '#/components/schemas/SlackNotificationSettings'
                    - $ref: '#/components/schemas/WebhookNotificationSettings'
                type: array
              propertyNames:
                enum:
                  - email
                  - slack
                  - webhook
              type: object
            - type: 'null'
          title: On Error
          default: {}
      type: object
      title: NotificationSettings
      description: |-
        Configuration for event-based notifications.

        Attributes:
            on_success: Notifications to send when an operation succeeds.
                Maps notification types to a list of notification configurations.
            on_error: Notifications to send when an operation fails.
                Maps notification types to a list of notification configurations.
    TaskLevelStrategies-Output:
      properties:
        retry_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationRetryStrategy'
            - type: 'null'
        iterative_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationIterativeStrategy-Output'
            - type: 'null'
        stop_strategy:
          anyOf:
            - $ref: '#/components/schemas/OrchestrationStopStrategy-Output'
            - type: 'null'
        max_runs_per_day:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Runs Per Day
        agentic_context_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Agentic Context Enabled
          default: false
        duplication_prevention:
          anyOf:
            - $ref: '#/components/schemas/DuplicationPreventionSettings'
            - type: 'null'
        slackbot_formatting_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Slackbot Formatting Instructions
      type: object
      title: TaskLevelStrategies
      description: >-
        Configuration object for task-level execution strategies.


        This model groups optional strategy configurations that control how a
        task is

        executed and managed over time, including retries, iterative execution,

        stopping conditions, and daily run limits.


        Attributes:
            retry_strategy:
                Optional retry policy configuration that defines how the task should
                behave when execution fails (e.g., max attempts, backoff rules).

            iterative_strategy:
                Optional iterative execution configuration for tasks that may run in
                repeated cycles/steps until completion or a stop condition is met.

            stop_strategy:
                Optional stopping policy configuration that defines when the task
                should stop running (e.g., timeout, max iterations, success criteria).

            max_runs_per_day:
                Optional limit on how many times the task is allowed to run within a
                24-hour period. If not set, no explicit daily limit is enforced.
            
            agentic_context_enabled:
                if agentic memory is enabled and accesible to the executor.
            
            slackbot_formatting_instructions:
                Optional SlackBot formatting instructions
    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
    AIAgentConnectivityDetailsA2AAuthType:
      type: string
      enum:
        - none
        - api_key
        - basic
        - bearer
      title: AIAgentConnectivityDetailsA2AAuthType
    SourceNodeType:
      type: string
      enum:
        - workbench
        - sdk
        - task
        - assistant
        - webhook
        - mcp
        - a2a
        - telegram
        - slack
      title: SourceNodeType
    AIAgentGraphItemType:
      type: string
      enum:
        - source_node
        - agent
        - workflow
        - tool
        - human_in_the_loop
        - xpsleep-agent-delay
        - custom_agent
        - storage
        - local_db
        - coding_agent
        - mcp
        - skills
      title: AIAgentGraphItemType
    AIAgentGraphItemSubType:
      type: string
      enum:
        - sdk
        - task
        - assistant
        - webhook
        - operation
        - custom_function
        - local_tool
      title: AIAgentGraphItemSubType
    AIAgentGraphItemSettings-Output:
      properties:
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        schemas:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemSchema'
            - type: 'null'
        advanced_filtering_options:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemAdvancedFilteringOption'
            - type: 'null'
        hitl_options:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemHITLSettings'
            - type: 'null'
        a2a_options:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemA2ASettings'
            - type: 'null'
        coding_agent_settings:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemCodingAgentSettings'
            - type: 'null'
        mcp_settings:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemMCPSettings'
            - type: 'null'
        skills_settings:
          anyOf:
            - $ref: '#/components/schemas/AIAgentGraphItemSkillsSettings'
            - type: 'null'
        use_cache:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Cache
          default: false
      type: object
      title: AIAgentGraphItemSettings
    KnowledgeBaseStrategy:
      type: string
      enum:
        - vanilla
        - agentic_rag
      title: KnowledgeBaseStrategy
    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-Output:
      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-Output:
      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-Output:
      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-Output:
      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-Output:
      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-Output:
      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-Output:
      properties:
        nodes:
          items:
            $ref: '#/components/schemas/OrchestrationNode-Output'
          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.
    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.
    DuplicationPreventionSettings:
      properties:
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
          default: false
        ttl_minutes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Ttl Minutes
          default: 10
        selectors:
          items:
            type: string
          type: array
          title: Selectors
      type: object
      required:
        - selectors
      title: DuplicationPreventionSettings
      description: >-
        Settings for preventing duplicate event processing in workflows.


        When enabled, this prevents the same event from triggering a workflow
        multiple times

        within a configured time window. Useful for webhooks from services like
        Stigg or Cal.com

        that may fire the same event multiple times.


        Attributes:
            enabled: Whether duplication prevention is active.
            ttl_minutes: Time window to consider events as duplicates (default: 10 minutes).
            selectors: List of dot-notation paths to extract unique ID components from input.
                       Multiple selectors are combined to form a composite key.
                       Examples:
                       - ["messageId"] - single field
                       - ["input.event_id", "input.user_id"] - composite key
                       - ["triggerEvent", "payload.uid"] - Cal.com style
    AIAgentGraphItemSchema:
      properties:
        input:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Input
        output:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Output
      type: object
      title: AIAgentGraphItemSchema
    AIAgentGraphItemAdvancedFilteringOption:
      properties:
        returnables:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Returnables
        searchables:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Searchables
        globally_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Globally Enabled
          default: false
      type: object
      title: AIAgentGraphItemAdvancedFilteringOption
    AIAgentGraphItemHITLSettings:
      properties:
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        recipients:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Recipients
        hitl_type:
          anyOf:
            - $ref: '#/components/schemas/AIAgentHITLType'
            - type: 'null'
        slack_app:
          anyOf:
            - type: string
            - type: 'null'
          title: Slack App
        should_approve_with_current_user:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Should Approve With Current User
          default: true
      type: object
      title: AIAgentGraphItemHITLSettings
    AIAgentGraphItemA2ASettings:
      properties:
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
      type: object
      title: AIAgentGraphItemA2ASettings
    AIAgentGraphItemCodingAgentSettings:
      properties:
        type:
          anyOf:
            - type: string
              const: codex
            - type: 'null'
          title: Type
          default: codex
      type: object
      title: AIAgentGraphItemCodingAgentSettings
    AIAgentGraphItemMCPSettings:
      properties:
        type:
          anyOf:
            - $ref: '#/components/schemas/MCPServerType'
            - type: 'null'
          default: remote
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        command:
          anyOf:
            - type: string
            - type: 'null'
          title: Command
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        transport:
          anyOf:
            - $ref: '#/components/schemas/MCPServerTransport'
            - type: 'null'
          default: streamable-http
        auth_type:
          anyOf:
            - $ref: '#/components/schemas/MCPServerAuthType'
            - type: 'null'
          default: none
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Api Key
        use_secrets_manager:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Secrets Manager
          default: false
        client_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Client Id
        client_secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Client Secret
        additional_scopes:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Additional Scopes
          default: []
        headers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Headers
          default: {}
        env_vars:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Env Vars
          default: {}
        allowed_tools:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Allowed Tools
          default: []
        share_user_token_across_other_agents:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Share User Token Across Other Agents
          default: true
      type: object
      title: AIAgentGraphItemMCPSettings
    AIAgentGraphItemSkillsSettings:
      properties:
        enabled_skills:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Enabled Skills
          default: []
      type: object
      title: AIAgentGraphItemSkillsSettings
    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.
    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.
    AIAgentHITLType:
      type: string
      enum:
        - slack
      title: AIAgentHITLType
    MCPServerType:
      type: string
      enum:
        - local
        - remote
      title: MCPServerType
    MCPServerTransport:
      type: string
      enum:
        - stdio
        - sse
        - streamable-http
      title: MCPServerTransport
    MCPServerAuthType:
      type: string
      enum:
        - api_key
        - oauth2
        - custom_headers
        - none
      title: MCPServerAuthType
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: API Key for authentication
      in: header
      name: x-api-key

````