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

# Get Task Nodes by Tool

> Retrieve task nodes that use a specific tool function for analysis and optimization.



## OpenAPI

````yaml get /agent-graphs/agent-task-nodes/{toolFunctionName}
openapi: 3.0.0
info:
  title: Public API
  description: Public endpoints to interact with agents and orchestrate tasks
  version: '1.0'
  contact: {}
servers:
  - url: https://api.beamstudio.ai
security: []
tags: []
paths:
  /agent-graphs/agent-task-nodes/{toolFunctionName}:
    get:
      tags:
        - Agent Graph
      summary: Get Task Nodes by Tool
      description: >-
        Retrieve task nodes that use a specific tool function for analysis and
        optimization.
      operationId: AgentGraphController_getTaskNodesByToolFunctionName
      parameters:
        - name: toolFunctionName
          required: true
          in: path
          schema:
            type: string
        - name: pageNum
          required: false
          in: query
          schema:
            minimum: 1
            type: number
        - name: pageSize
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 100
            type: number
        - name: agentId
          required: true
          in: query
          schema:
            type: string
        - name: isRated
          required: true
          in: query
          schema:
            type: boolean
        - name: current-workspace-id
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Task nodes retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaginatedAgentTaskNodeDto'
      security:
        - x-api-key: []
components:
  schemas:
    GetPaginatedAgentTaskNodeDto:
      type: object
      properties:
        agentTaskNodes:
          type: array
          items:
            $ref: '#/components/schemas/AgentTaskNode'
        count:
          type: number
      required:
        - agentTaskNodes
        - count
    AgentTaskNode:
      type: object
      properties:
        userQuestions:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/TaskStepUserInput'
        edgeEvaluations:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/EdgeEvaluationDto'
        input:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/TaskNodeInput'
        output:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/TaskNodeOutput'
        nodeEvaluation:
          type: array
          nullable: true
          items:
            type: array
            items:
              $ref: '#/components/schemas/NodeEvaluation'
        agentTaskId:
          type: string
        agentGraphNodeId:
          type: string
        status:
          enum:
            - QUEUED
            - IN_PROGRESS
            - USER_INPUT_REQUIRED
            - COMPLETED
            - USER_CONSENT_REQUIRED
            - FAILED
            - INSUFFICIENT_CREDITS
            - WAITING
          type: string
        userConsent:
          type: boolean
        isEverConsentRequired:
          type: boolean
        retriedCountWhenFailure:
          type: number
        retriedCountWhenAccuracyIsLow:
          type: number
        manualRetryCount:
          type: number
        evaluationScore:
          type: number
          nullable: true
        toolData:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ToolDataDto'
        userFeedback:
          type: string
        expectedOutput:
          type: string
        rating:
          enum:
            - positive
            - negative
          type: string
        waitSyncCreated:
          type: boolean
        agentTask:
          $ref: '#/components/schemas/AgentTask'
        agentGraphNode:
          $ref: '#/components/schemas/AgentGraphNode'
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - userQuestions
        - edgeEvaluations
        - input
        - output
        - nodeEvaluation
        - agentTaskId
        - agentGraphNodeId
        - status
        - userConsent
        - isEverConsentRequired
        - retriedCountWhenFailure
        - retriedCountWhenAccuracyIsLow
        - manualRetryCount
        - evaluationScore
        - toolData
        - waitSyncCreated
        - agentTask
        - agentGraphNode
        - id
        - createdAt
        - updatedAt
    TaskStepUserInput:
      type: object
      properties:
        question:
          type: string
        answer:
          type: string
        parameter:
          type: string
        memoryAnswer:
          type: boolean
        foodForThought:
          type: array
          items:
            $ref: '#/components/schemas/FoodForThought'
      required:
        - question
        - answer
    EdgeEvaluationDto:
      type: object
      properties:
        target_node_id:
          type: string
          description: Target Node Id
        eval_criteria:
          type: string
          description: Evaluation Criteria
        branch_name:
          type: string
          description: branch name
        reason:
          type: string
          description: Evaluation Reasoning
        selected:
          type: boolean
          description: Is the edge selected
      required:
        - target_node_id
        - eval_criteria
        - branch_name
        - reason
        - selected
    TaskNodeInput:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        value:
          type: string
        answer:
          type: string
        question:
          type: string
          nullable: true
        reasoning:
          type: string
          nullable: true
        found:
          type: boolean
        required:
          type: boolean
      required:
        - id
        - name
        - value
        - question
        - reasoning
        - found
        - required
    TaskNodeOutput:
      type: object
      properties:
        value:
          type: object
      required:
        - value
    NodeEvaluation:
      type: object
      properties:
        name:
          type: string
        score:
          type: number
        success:
          type: boolean
        objective:
          type: string
        reasoning:
          type: string
        evaluationCategory:
          type: string
        evaluationReasoning:
          type: string
        improvementSuggestions:
          type: string
    ToolDataDto:
      type: object
      properties:
        tool_id:
          type: string
        tool_parameters:
          type: array
          items:
            type: object
        tool_output:
          type: array
          items:
            type: object
        required_parameters:
          type: object
          additionalProperties: true
        optional_parameters:
          type: object
          additionalProperties: true
        reasoning:
          type: object
          additionalProperties: true
        filled_prompt:
          type: string
        skip_param_extraction:
          type: array
          items:
            type: string
        integration_identifier:
          type: string
        integration_error:
          type: boolean
          default: false
      required:
        - tool_id
        - tool_parameters
    AgentTask:
      type: object
      properties:
        agentGraphId:
          type: string
          description: UUID of the agent graph this task is associated with.
          example: graph-123e4567-e89b-12d3-a456-426614174000
        customId:
          type: string
          description: Custom identifier for external reference or tracking.
          example: TASK-2024-001
        originalTaskQuery:
          type: string
          nullable: true
          description: The original query or request that initiated this task.
          example: Generate a quarterly sales report for Q4 2024
        taskObjective:
          type: string
          description: The main objective or goal of this task.
          example: Analyze sales data and create comprehensive report
        taskInstructions:
          type: string
          nullable: true
          description: Detailed instructions for executing this task.
          example: Include revenue breakdown by region and product category
        taskContext:
          type: object
          description: Additional context data for task execution.
        taskSuccessCriteria:
          type: string
          nullable: true
          description: Criteria that define successful completion of this task.
          example: Report must include all regions and be formatted as PDF
        taskQuery:
          type: string
          nullable: true
          description: The processed query used for task execution.
          example: Generate sales report for Q4 2024 with regional breakdown
        taskSummary:
          type: string
          nullable: true
          description: Summary of the task results after completion.
          example: Successfully generated Q4 sales report with 15 pages
        initiationDetail:
          type: object
          nullable: true
          description: Details about how this task was initiated.
        triggerRecordId:
          type: string
          nullable: true
          description: >-
            Record ID from the trigger source (e.g., Nango sync record ID) used
            for deduplication.
          example: msg-abc123
        manualRetryCount:
          type: number
          description: Number of times this task has been manually retried.
          example: 0
        isSuccess:
          type: boolean
          description: Whether the task completed successfully.
          example: false
        isViewed:
          type: boolean
          description: Whether the task results have been viewed by the user.
          example: false
        canRerunTaskNode:
          type: boolean
          description: Whether nodes in this task can be re-run.
          example: true
        startedAt:
          format: date-time
          type: string
          nullable: true
          description: Timestamp when task execution started.
          example: '2024-01-15T10:00:00Z'
        endedAt:
          format: date-time
          type: string
          nullable: true
          description: Timestamp when task execution completed.
          example: '2024-01-15T10:05:30Z'
        mode:
          type: string
          enum:
            - AUTO
          description: Execution mode for the task.
          example: AUTO
        status:
          enum:
            - QUEUED
            - IN_PROGRESS
            - COMPLETED
            - FAILED
            - USER_INPUT_REQUIRED
            - USER_CONSENT_REQUIRED
            - STOPPED
            - AUTHENTICATION_REQUIRED
            - INSUFFICIENT_CREDITS
            - WAITING
          type: string
          description: Current status of the task.
          example: QUEUED
        userFeedback:
          type: string
          description: Feedback provided by the user about task results.
          example: The report was accurate and well-formatted
        rating:
          enum:
            - positive
            - negative
          type: string
          description: User rating for the task results.
        averageEvaluationScore:
          type: number
          nullable: true
          description: Average evaluation score across all task nodes.
          example: 0.85
        taskState:
          nullable: true
          description: Current execution state of the task.
          allOf:
            - $ref: '#/components/schemas/TaskExecutionState'
        graphState:
          type: object
          nullable: true
          description: State of the graph during task execution.
        totalExecutionTime:
          type: number
          nullable: true
          description: Total time taken to execute the task in seconds.
          example: 330.5
        tokensUsed:
          type: number
          nullable: true
          description: Total number of tokens consumed during task execution.
          example: 15000
        totalCost:
          type: number
          nullable: true
          description: Total cost incurred for executing this task.
          example: 0.0225
        taskReceiveAt:
          type: number
          nullable: true
        tokenUsages:
          type: array
          items:
            $ref: '#/components/schemas/TaskNodeTokenUsage'
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - agentGraphId
        - manualRetryCount
        - isSuccess
        - isViewed
        - canRerunTaskNode
        - mode
        - status
        - taskReceiveAt
        - id
        - createdAt
        - updatedAt
    AgentGraphNode:
      type: object
      properties:
        evaluationCriteria:
          type: array
          items:
            type: string
        agentToolConfigurationId:
          type: string
        toolConfiguration:
          $ref: '#/components/schemas/AgentToolConfiguration'
        objective:
          type: string
        customId:
          type: string
        isExitNode:
          type: boolean
        isEntryNode:
          type: boolean
        agentGraphId:
          type: string
        xCoordinate:
          type: number
        yCoordinate:
          type: number
        onError:
          enum:
            - CONTINUE
            - STOP
          type: string
        isEvaluationEnabled:
          type: boolean
        autoRetryWhenAccuracyLessThan:
          type: number
        autoRetryLimitWhenAccuracyIsLow:
          type: number
        enableAutoRetryWhenAccuracyIsLow:
          type: boolean
        enableAutoRetryWhenFailure:
          type: boolean
        autoRetryCountWhenFailure:
          type: number
        autoRetryWaitTimeWhenFailureInMs:
          type: number
        isAttachmentDataPulledIn:
          type: boolean
        nodeType:
          enum:
            - executionNode
            - conditionNode
            - waitingNode
            - entryNode
            - exitNode
          type: string
        nodeConfigurations:
          $ref: '#/components/schemas/NodeConfigurations'
        saveAsVersion:
          type: boolean
        isEdited:
          type: boolean
        isActiveNodeVersion:
          type: boolean
        userId:
          type: string
        autoRetryDescription:
          type: string
        enableAutoRetryDescription:
          type: boolean
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - evaluationCriteria
        - toolConfiguration
        - objective
        - customId
        - isExitNode
        - isEntryNode
        - agentGraphId
        - onError
        - isEvaluationEnabled
        - autoRetryWhenAccuracyLessThan
        - autoRetryLimitWhenAccuracyIsLow
        - enableAutoRetryWhenAccuracyIsLow
        - enableAutoRetryWhenFailure
        - autoRetryCountWhenFailure
        - autoRetryWaitTimeWhenFailureInMs
        - isAttachmentDataPulledIn
        - nodeType
        - saveAsVersion
        - isEdited
        - isActiveNodeVersion
        - autoRetryDescription
        - enableAutoRetryDescription
        - id
        - createdAt
        - updatedAt
    FoodForThought:
      type: object
      properties:
        question:
          type: string
        answer:
          type: string
      required:
        - question
        - answer
    TaskExecutionState:
      type: object
      properties:
        nodeSelections:
          type: array
          items:
            $ref: '#/components/schemas/NodeSelection'
    TaskNodeTokenUsage:
      type: object
      properties:
        agentTaskId:
          type: string
        agentGraphNodeId:
          type: string
          nullable: true
        creditTransactionId:
          type: string
          nullable: true
        promptSlug:
          type: string
          nullable: true
        executionStage:
          enum:
            - QUERY_REFORMULATION
            - NODE_SELECTION
            - NODE_GENERATION
            - TOOL_SELECTION
            - NODE_RETRIEVAL
            - PARAMETER_EXTRACTION
            - TOOL_EXECUTION
            - NODE_EVALUATION
          type: string
        iteration:
          type: number
        model:
          type: string
        operation:
          enum:
            - NORMAL
            - PROVIDER_ERROR
            - PARSER_ERROR
            - TIMEOUT
            - HIGH_TOKEN_FALLBACK
            - MODEL_FALLBACK
            - AUTO_FIX
            - RATE_LIMIT
          type: string
        inputToken:
          type: number
        outputToken:
          type: number
        reasoningToken:
          type: number
          nullable: true
        totalToken:
          type: number
        isLatest:
          type: boolean
        agentTask:
          $ref: '#/components/schemas/AgentTask'
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - agentTaskId
        - agentGraphNodeId
        - creditTransactionId
        - promptSlug
        - executionStage
        - iteration
        - model
        - operation
        - inputToken
        - outputToken
        - reasoningToken
        - totalToken
        - isLatest
        - agentTask
        - id
        - createdAt
        - updatedAt
    AgentToolConfiguration:
      type: object
      properties:
        toolFunctionName:
          type: string
          description: Function name used to invoke this tool.
          example: fetchCustomerData
        integrationProviderId:
          type: string
          description: UUID of the integration provider for this tool.
          example: provider-123e4567-e89b-12d3-a456-426614174000
        inputParams:
          description: Input parameter configurations for this tool.
          type: array
          items:
            $ref: '#/components/schemas/AgentToolConfigurationInputParams'
        outputParamsData:
          description: JSON representation of output parameters.
          type: array
          items:
            $ref: '#/components/schemas/CustomToolOutput'
        inputParamsData:
          description: JSON representation of input parameters.
          type: array
          items:
            $ref: '#/components/schemas/UserInputParamConfigDto'
        agentId:
          type: string
          description: UUID of the agent this tool configuration belongs to.
          example: agent-123e4567-e89b-12d3-a456-426614174000
        requiresConsent:
          type: boolean
          description: Whether user consent is required before executing this tool.
          example: false
        isBackgroundTool:
          type: boolean
          description: >-
            Whether this tool runs in the background without blocking workflow
            execution.
          example: false
        isMemoryTool:
          type: boolean
          description: Whether this tool accesses or stores data in memory.
          example: false
        isBatchExecutionEnabled:
          type: boolean
          description: Whether this tool supports batch processing of multiple items.
          example: false
        accuracyScore:
          type: number
          description: Accuracy score for this tool configuration.
          example: 0.95
        memoryLookupInstruction:
          type: string
          description: Instructions for how the tool should look up data from memory.
          example: Retrieve customer records matching the provided email address.
        fallbackModels:
          type: string
          description: >-
            Comma-separated list of fallback models to use if preferred model
            fails
          example: DEEP_SEEK,BEDROCK_CLAUDE_3_7_SONNET,BEDROCK_CLAUDE_OPUS_4_5
        dynamicPropsId:
          type: string
          nullable: true
          description: ID for dynamic properties configuration.
        outputParams:
          type: array
          items:
            $ref: '#/components/schemas/AgentToolConfigurationOutputParams'
        codeLanguage:
          type: string
        code:
          type: string
        originalTool:
          $ref: '#/components/schemas/ToolsViewWithIntegrationConnectionStatus'
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        preferredModel:
          type: string
          description: Preferred LLM model for this tool configuration.
          example: GPT40
      required:
        - toolFunctionName
        - inputParams
        - agentId
        - outputParams
        - originalTool
        - id
        - createdAt
        - updatedAt
    NodeConfigurations:
      type: object
      properties:
        conditionType:
          type: string
          enum:
            - llm_based
            - rule_based
        llmModel:
          type: string
        fallbackModels:
          type: string
        waitType:
          enum:
            - time_based
            - condition_based
          type: string
        timeToWaitValue:
          type: number
        timeToWaitUnit:
          enum:
            - minutes
            - hours
            - days
            - months
          type: string
        linkedAgentGraphNodeId:
          type: string
        rule:
          type: string
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/AgentTriggerConfigurationFiltersGroup'
        timeoutType:
          enum:
            - no_timeout
            - set_timeout
          type: string
        timeoutValue:
          type: number
        timeoutUnit:
          enum:
            - minutes
            - hours
            - days
            - months
          type: string
        onTimeout:
          enum:
            - continue
            - fail
          type: string
    NodeSelection:
      type: object
      properties:
        edgeId:
          type: string
        condition:
          type: string
        selected:
          type: boolean
        reasoning:
          type: string
        otherEdges:
          type: array
          items:
            $ref: '#/components/schemas/NodeSelection'
      required:
        - edgeId
        - condition
        - selected
        - reasoning
        - otherEdges
    AgentToolConfigurationInputParams:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the input parameter.
          example: param-123e4567-e89b-12d3-a456-426614174000
        paramName:
          type: string
          description: Name of the input parameter.
          example: customerId
        position:
          type: number
          description: Position/order of the parameter in the input list.
          example: 1
        fillType:
          enum:
            - ai_fill
            - static
            - user_fill
            - from_memory
            - from_task_attachment
            - linked
          type: string
          description: How the parameter value should be filled.
          example: ai_fill
        agentToolConfigurationId:
          type: string
          description: UUID of the parent tool configuration.
          example: config-123e4567-e89b-12d3-a456-426614174000
        question:
          type: string
          description: Question to ask the user when fillType is USER_FILL.
          example: What is the customer ID?
        linkParamOutputId:
          type: string
          description: ID of the linked output parameter for data flow.
        paramDescription:
          type: string
          description: Human-readable description of what this parameter represents.
          example: The unique identifier for the customer record.
        paramTip:
          type: string
          nullable: true
          description: Helpful tip or hint for providing this parameter value.
          example: Enter the 8-digit customer ID from their account.
        staticValue:
          type: string
          description: Static value to use when fillType is STATIC.
          example: default_value
        required:
          type: boolean
          description: Whether this parameter is required.
          example: true
        dataType:
          type: string
          description: Data type of the parameter.
          example: string
        outputExample:
          type: string
          description: Example value demonstrating the expected input format.
          example: CUST-12345678
        reloadProps:
          type: boolean
          description: Whether to reload dynamic properties when this parameter changes.
          example: false
        remoteOptions:
          type: boolean
          description: Whether options are loaded from a remote source.
          example: false
        options:
          nullable: true
          type: array
          items:
            type: object
            properties:
              label:
                type: string
              value:
                type: string
          description: Available options for selection-type parameters.
        createdAt:
          format: date-time
          type: string
          description: Timestamp when the parameter was created.
        updatedAt:
          format: date-time
          type: string
          description: Timestamp when the parameter was last updated.
        linkOutputParam:
          $ref: '#/components/schemas/AgentToolConfigurationOutputParams'
        linkedOutputParamRules:
          type: array
          items:
            $ref: '#/components/schemas/LinkedOutputParamRules'
        linkedParamRulePrompt:
          type: string
        ruleConditionConfig:
          $ref: '#/components/schemas/ParamRuleConditionConfig'
      required:
        - id
        - paramName
        - fillType
        - agentToolConfigurationId
        - createdAt
        - updatedAt
        - linkOutputParam
        - linkedOutputParamRules
    CustomToolOutput:
      type: object
      properties:
        position:
          type: number
        paramName:
          type: string
        paramDescription:
          type: string
        id:
          type: string
        agentToolConfigurationId:
          type: string
        dataType:
          type: string
          enum:
            - string
            - number
            - boolean
            - object
            - enum
          nullable: true
        isArray:
          type: boolean
        typeOptions:
          type: object
          additionalProperties: true
          nullable: true
        parentId:
          type: string
        paramPath:
          type: string
        outputExample:
          type: string
    UserInputParamConfigDto:
      type: object
      properties:
        position:
          type: number
          description: Position/order of the parameter in the input list.
          example: 1
        paramName:
          type: string
          description: Name of the input parameter.
          example: customerId
        fillType:
          default: ai_fill
          enum:
            - ai_fill
            - static
            - user_fill
            - from_memory
            - from_task_attachment
            - linked
          type: string
          description: How the parameter value should be filled.
          example: ai_fill
        question:
          type: string
          nullable: true
          description: Question to ask the user when fillType is USER_FILL.
          example: What is the customer ID?
        linkParams:
          description: Configuration for linking this parameter to another tool output.
          allOf:
            - $ref: '#/components/schemas/LinkParamsDto'
        linkParamOutputId:
          type: string
          nullable: true
          description: ID of the linked output parameter for data flow.
        paramDescription:
          type: string
          description: Human-readable description of what this parameter represents.
          example: The unique identifier for the customer record.
        paramTip:
          type: string
          nullable: true
          description: Helpful tip or hint for providing this parameter value.
          example: Enter the 8-digit customer ID from their account.
        staticValue:
          type: string
          nullable: true
          description: Static value to use when fillType is STATIC.
          example: default_value
        required:
          type: boolean
          default: true
          description: Whether this parameter is required.
          example: true
        dataType:
          type: string
          default: string
          description: Data type of the parameter.
          example: string
        isArray:
          type: boolean
          default: false
          description: Whether this parameter accepts an array of values.
          example: false
        typeOptions:
          type: object
          additionalProperties: true
          description: Additional type-specific configuration options.
          nullable: true
        outputExample:
          type: string
          description: Example value demonstrating the expected input format.
          example: CUST-12345678
        reloadProps:
          type: boolean
          description: Whether to reload dynamic properties when this parameter changes.
          example: false
        remoteOptions:
          type: boolean
          description: Whether options are loaded from a remote source.
          example: false
        options:
          nullable: true
          type: array
          items:
            type: object
            properties:
              label:
                type: string
              value:
                type: string
          description: Available options for selection-type parameters.
        linkedOutputParamRulesData:
          description: Rules for linked output parameters.
          allOf:
            - $ref: '#/components/schemas/LinkedOutputParamRulesDto'
      required:
        - paramName
        - fillType
    AgentToolConfigurationOutputParams:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the output parameter.
          example: param-123e4567-e89b-12d3-a456-426614174000
        paramName:
          type: string
          description: Name of the output parameter.
          example: customerData
        position:
          type: number
          description: Position/order of the parameter in the output list.
          example: 1
        paramDescription:
          type: string
          description: Human-readable description of what this output parameter represents.
          example: The customer data retrieved from the database.
        agentToolConfigurationId:
          type: string
          description: UUID of the parent tool configuration.
          example: config-123e4567-e89b-12d3-a456-426614174000
        parentId:
          type: string
          description: UUID of the parent parameter for nested structures.
        paramPath:
          type: string
          description: JSON path to this parameter in the output structure.
          example: response.data.customer
        outputExample:
          type: string
          description: Example value demonstrating the expected output format.
          example: '{"name": "John Doe", "email": "john@example.com"}'
        dataType:
          nullable: true
          enum:
            - string
            - number
            - boolean
            - object
            - enum
          type: string
          description: Data type of the output parameter.
          example: string
        isArray:
          type: boolean
          default: false
          description: Whether this parameter returns an array of values.
          example: false
        typeOptions:
          type: object
          nullable: true
          description: Additional type-specific configuration options.
        createdAt:
          format: date-time
          type: string
          description: Timestamp when the parameter was created.
        updatedAt:
          format: date-time
          type: string
          description: Timestamp when the parameter was last updated.
      required:
        - id
        - agentToolConfigurationId
        - isArray
        - createdAt
        - updatedAt
    ToolsViewWithIntegrationConnectionStatus:
      type: object
      properties:
        toolFunctionName:
          type: string
          description: Function name used to invoke this tool.
        toolName:
          type: string
          description: Display name of the tool.
        iconSrc:
          type: string
          nullable: true
          description: Icon source URL.
        type:
          enum:
            - beam_tool
            - gpt_tool
            - custom_gpt_tool
            - custom_integration_tool
            - code_executor_tool
          type: string
          description: Type of tool.
        isVisibleOnUi:
          type: boolean
          description: Whether this tool is visible on the UI.
        integrationId:
          type: string
          nullable: true
          description: UUID of the associated integration.
        meta:
          description: Tool metadata.
          allOf:
            - $ref: '#/components/schemas/GetToolsMetaDto'
        outputId:
          type: string
          description: UUID of the output configuration.
        prompt:
          type: string
          description: Prompt template for the tool.
        inputParams:
          description: Input parameters configuration.
          type: array
          items:
            $ref: '#/components/schemas/UserInputParamConfigDto'
        requiresConsent:
          type: boolean
          description: Whether user consent is required before execution.
        isMemoryTool:
          type: boolean
          nullable: true
          description: Whether this tool accesses or stores data in memory.
        isBackgroundTool:
          type: boolean
          description: Whether this tool runs in the background.
        memoryLookupInstruction:
          type: string
          nullable: true
          description: Instructions for memory lookup.
        outputParams:
          description: Output parameters configuration.
          type: array
          items:
            $ref: '#/components/schemas/CustomToolOutput'
        isBatchExecutionEnabled:
          type: boolean
          nullable: true
          description: Whether batch execution is enabled.
        description:
          type: string
          nullable: true
          description: Description of the tool.
        isActive:
          type: boolean
          description: Whether the tool is active.
        workspaceId:
          type: string
          nullable: true
          description: UUID of the workspace.
        userId:
          type: string
          nullable: true
          description: UUID of the user.
        agentId:
          type: string
          nullable: true
          description: UUID of the agent.
        httpMethod:
          nullable: true
          enum:
            - post
            - get
            - delete
            - patch
            - put
          type: string
          description: HTTP method for custom integration tools.
        url:
          type: string
          nullable: true
          description: URL for custom integration tools.
        isAvailableToWorkspace:
          type: boolean
          nullable: true
          description: Whether the tool is available to the workspace.
        preferredModel:
          type: string
          description: Preferred model for the tool.
        shortDescription:
          type: string
          description: Short description of the tool.
        isSharable:
          type: boolean
          nullable: true
          description: Whether the tool is sharable.
        systemIntegrationIdentifier:
          type: string
          nullable: true
          description: System integration identifier.
        apiKeyType:
          type: string
          nullable: true
          description: API key type.
        parameter:
          type: string
          nullable: true
          description: Parameter configuration.
        allowWaiting:
          type: boolean
          description: Whether the tool allows waiting.
        queryParams:
          description: Query parameters for custom integration tools.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrationToolQueryParamsDTO'
        bodyParams:
          description: Body parameters for custom integration tools.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrationToolBodyParamsDTO'
        urlParams:
          description: URL parameters for custom integration tools.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrationToolUrlParamsDTO'
        createdAt:
          format: date-time
          type: string
          description: Timestamp when the tool was created.
        updatedAt:
          format: date-time
          type: string
          description: Timestamp when the tool was last updated.
        deletedAt:
          format: date-time
          type: string
          description: Timestamp when the tool was deleted.
        toolConfigurations:
          type: array
          items:
            $ref: '#/components/schemas/AgentToolConfiguration'
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
        isIntegrationRequired:
          type: boolean
          default: false
        isIntegrationConnected:
          type: boolean
          default: false
        integrationProvider:
          type: string
        integrationIdentifier:
          type: string
        integrationCustomAuthParameters:
          type: object
        embedding:
          type: string
          nullable: true
        integration:
          $ref: '#/components/schemas/IntegrationsViewEntity'
        toolConfiguration:
          $ref: '#/components/schemas/AgentToolConfiguration'
        id:
          type: string
      required:
        - toolFunctionName
        - toolName
        - type
        - meta
        - requiresConsent
        - isBackgroundTool
        - isActive
        - createdAt
        - updatedAt
        - id
    AgentTriggerConfigurationFiltersGroup:
      type: object
      properties:
        operator:
          enum:
            - AND
            - OR
          type: string
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/AgentTriggerConfigurationFiltersConditions'
      required:
        - operator
        - conditions
    LinkedOutputParamRules:
      type: object
      properties:
        elementKey:
          type: string
        agentToolConfigurationInputParamsId:
          type: string
        operator:
          enum:
            - equals
            - not_equals
            - greater_than
            - less_than
            - contains
            - does_not_contain
            - starts_with
            - ends_with
            - is_empty
            - is_not_empty
          type: string
        comparisonValueType:
          enum:
            - static
            - output_param
          type: string
        comparisonValue:
          type: string
        nextRuleOperator:
          enum:
            - AND
            - OR
          type: string
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - elementKey
        - agentToolConfigurationInputParamsId
        - operator
        - comparisonValueType
        - id
        - createdAt
        - updatedAt
    ParamRuleConditionConfig:
      type: object
      properties:
        conditionType:
          type: string
          enum:
            - llm_based
            - rule_based
    LinkParamsDto:
      type: object
      properties:
        toolId:
          type: string
        toolFunctionName:
          type: string
        outputParam:
          type: string
        outputId:
          type: string
    LinkedOutputParamRulesDto:
      type: object
      properties:
        rules:
          description: Array of linked output param rules.
          type: array
          items:
            $ref: '#/components/schemas/LinkedOutputParamRuleDto'
        linkedParamRulePrompt:
          type: string
          description: Prompt for the linked param rule.
        linkedParamConfigurations:
          description: Configuration for linked param nodes.
          allOf:
            - $ref: '#/components/schemas/ParamRuleConditionConfig'
      required:
        - linkedParamConfigurations
    GetToolsMetaDto:
      type: object
      properties:
        integration_provider_details:
          $ref: '#/components/schemas/IntegrationProviderDetails'
        agent_category:
          $ref: '#/components/schemas/AgentCategoryInfo'
        payload:
          type: string
        tool_name:
          type: string
        function_name:
          type: string
        requires_consent:
          type: boolean
        requires_translation:
          type: boolean
        description:
          type: string
        required_extracted_args:
          type: array
          items:
            type: string
        optional_extracted_args:
          type: array
          items:
            type: string
        content:
          type: string
        prompt:
          type: string
        type:
          enum:
            - beam_tool
            - gpt_tool
            - custom_gpt_tool
            - custom_integration_tool
            - code_executor_tool
          type: string
        integrationIdentifier:
          type: string
        categories:
          type: array
          items:
            type: string
        icon_src:
          type: string
        integration_provider_auth:
          type: string
        integration_provider_executor:
          type: string
        preferred_model:
          type: string
        integration_id:
          type: string
        apiKeyType:
          type: string
        parameter:
          type: string
        tool_category_id:
          type: string
        isActive:
          type: boolean
        agent_categories:
          type: array
          items:
            type: string
        required_generated_args:
          type: array
          items:
            type: string
        optional_generated_args:
          type: array
          items:
            type: string
        is_memory_tool:
          type: boolean
        memory_lookup_instruction:
          type: string
        workspace_id:
          type: string
      required:
        - tool_name
        - function_name
        - requires_consent
        - requires_translation
        - description
        - required_extracted_args
        - content
        - prompt
        - type
        - isActive
    CustomIntegrationToolQueryParamsDTO:
      type: object
      properties:
        key:
          type: string
        parameterHint:
          type: string
        type:
          type: string
        required:
          type: boolean
      required:
        - key
        - parameterHint
        - required
    CustomIntegrationToolBodyParamsDTO:
      type: object
      properties:
        key:
          type: string
        parameterHint:
          type: string
        type:
          type: string
        required:
          type: boolean
      required:
        - key
        - parameterHint
        - type
        - required
    CustomIntegrationToolUrlParamsDTO:
      type: object
      properties:
        key:
          type: string
        parameterHint:
          type: string
        type:
          type: string
        required:
          type: boolean
      required:
        - key
        - parameterHint
        - required
    Question:
      type: object
      properties:
        id:
          type: string
        question:
          type: string
        keywordInPrompt:
          type: string
      required:
        - id
        - question
        - keywordInPrompt
    IntegrationsViewEntity:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the integration.
        name:
          type: string
          description: Name of the integration.
        description:
          type: string
          description: Description of the integration.
        systemIntegrationIdentifier:
          type: string
          description: System integration identifier.
        integrationCategoryId:
          type: string
          description: UUID of the integration category.
        iconSrc:
          type: string
          description: Icon source URL.
        type:
          enum:
            - integration
            - custom_integration
          type: string
          description: Type of integration.
        userId:
          type: string
          description: UUID of the user.
        workspaceId:
          type: string
          description: UUID of the workspace.
        privacyPolicyUrl:
          type: string
          description: Privacy policy URL.
        shortDescription:
          type: string
          description: Short description of the integration.
        longDescription:
          type: string
          description: Detailed description of the integration.
        systemIntegrationProvider:
          type: string
          description: System integration provider.
        customAuthParameters:
          type: object
          description: Custom authentication parameters.
        category:
          type: string
          description: Category of the integration.
        authenticationMeta:
          description: Authentication metadata.
          allOf:
            - $ref: '#/components/schemas/CustomIntegrationAuthenticationMetaDTO'
        syncModels:
          type: object
          description: Sync models configuration.
        isPublished:
          type: boolean
          description: Whether the integration is published.
        attributes:
          type: object
          description: Integration attributes.
        status:
          type: string
          description: Current status of the integration.
        customHeaders:
          type: object
          description: Custom headers for API requests.
        allowWaiting:
          type: boolean
          description: Whether the integration allows waiting.
        authType:
          type: string
        provider:
          $ref: '#/components/schemas/IntegrationProvider'
        providers:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationProvider'
        integrationCategory:
          $ref: '#/components/schemas/IntegrationCategory'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/Tool'
      required:
        - id
        - type
        - provider
        - providers
        - integrationCategory
        - actions
    AgentTriggerConfigurationFiltersConditions:
      type: object
      properties:
        condition:
          enum:
            - is
            - is_not
            - contain
            - does_not_contain
            - any
            - all
            - less_than
            - GREATER_than
            - count
            - exist
            - does_not_exist
          type: string
        operator:
          enum:
            - AND
            - OR
          type: string
        property:
          type: string
        value:
          type: string
      required:
        - condition
        - operator
        - property
        - value
    LinkedOutputParamRuleDto:
      type: object
      properties:
        elementKey:
          type: string
          description: Element key for the rule.
        operator:
          enum:
            - equals
            - not_equals
            - greater_than
            - less_than
            - contains
            - does_not_contain
            - starts_with
            - ends_with
            - is_empty
            - is_not_empty
          type: string
          description: Comparison operator for the rule.
        comparisonValueType:
          enum:
            - static
            - output_param
          type: string
          description: Type of the comparison value.
        comparisonValue:
          type: string
          nullable: true
          description: Value to compare against.
        nextRuleOperator:
          enum:
            - AND
            - OR
          type: string
          description: Logical operator linking to the next rule.
      required:
        - elementKey
        - operator
        - comparisonValueType
    IntegrationProviderDetails:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/IntegrationProviderRequest'
        response:
          type: object
    AgentCategoryInfo:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
    CustomIntegrationAuthenticationMetaDTO:
      type: object
      properties:
        clientId:
          type: string
        customOAuthUrl:
          type: string
        clientSecret:
          type: string
        authorizationUrl:
          type: string
        accessTokenUrl:
          type: string
        refreshTokenUrl:
          type: string
        scopes:
          type: array
          items:
            type: string
        apiKeyType:
          type: string
          enum:
            - default
            - bearer
            - header
            - query
        grantType:
          type: string
          enum:
            - client_credentials
            - authorization_code
        parameter:
          type: string
        clientAuthentication:
          type: string
          enum:
            - headers
            - body
      required:
        - clientId
        - clientSecret
        - authorizationUrl
        - accessTokenUrl
        - refreshTokenUrl
        - scopes
        - apiKeyType
        - grantType
        - parameter
        - clientAuthentication
    IntegrationProvider:
      type: object
      properties:
        userId:
          type: string
        credentialId:
          type: string
        connectionName:
          type: string
        integration:
          type: string
        status:
          type: string
        integrationId:
          type: string
        isOAuth2:
          type: boolean
        provider:
          enum:
            - custom
            - nango
            - nango_cloud
            - pipedream
            - none
          type: string
        workspace:
          type: string
        tokenExpiresIn:
          type: number
        credentials:
          type: object
        isDefault:
          type: boolean
        creator:
          $ref: '#/components/schemas/User'
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - userId
        - credentialId
        - connectionName
        - integration
        - status
        - isOAuth2
        - provider
        - workspace
        - tokenExpiresIn
        - credentials
        - isDefault
        - creator
        - id
        - createdAt
        - updatedAt
    IntegrationCategory:
      type: object
      properties:
        title:
          type: string
          description: Title of the integration category.
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - title
        - id
        - createdAt
        - updatedAt
    Tool:
      type: object
      properties:
        toolFunctionName:
          type: string
          description: Function name used to invoke this tool.
        toolName:
          type: string
          description: Display name of the tool.
        iconSrc:
          type: string
          nullable: true
          description: Icon source URL.
        type:
          enum:
            - beam_tool
            - gpt_tool
            - custom_gpt_tool
            - custom_integration_tool
            - code_executor_tool
          type: string
          description: Type of tool.
        isVisibleOnUi:
          type: boolean
          description: Whether this tool is visible on the UI.
        integrationId:
          type: string
          nullable: true
          description: UUID of the associated integration.
        meta:
          description: Tool metadata.
          allOf:
            - $ref: '#/components/schemas/GetToolsMetaDto'
        outputId:
          type: string
          description: UUID of the output configuration.
        prompt:
          type: string
          description: Prompt template for the tool.
        inputParams:
          description: Input parameters configuration.
          type: array
          items:
            $ref: '#/components/schemas/UserInputParamConfigDto'
        requiresConsent:
          type: boolean
          description: Whether user consent is required before execution.
        isMemoryTool:
          type: boolean
          nullable: true
          description: Whether this tool accesses or stores data in memory.
        isBackgroundTool:
          type: boolean
          description: Whether this tool runs in the background.
        memoryLookupInstruction:
          type: string
          nullable: true
          description: Instructions for memory lookup.
        outputParams:
          description: Output parameters configuration.
          type: array
          items:
            $ref: '#/components/schemas/CustomToolOutput'
        isBatchExecutionEnabled:
          type: boolean
          nullable: true
          description: Whether batch execution is enabled.
        description:
          type: string
          nullable: true
          description: Description of the tool.
        isActive:
          type: boolean
          description: Whether the tool is active.
        workspaceId:
          type: string
          nullable: true
          description: UUID of the workspace.
        userId:
          type: string
          nullable: true
          description: UUID of the user.
        agentId:
          type: string
          nullable: true
          description: UUID of the agent.
        httpMethod:
          nullable: true
          enum:
            - post
            - get
            - delete
            - patch
            - put
          type: string
          description: HTTP method for custom integration tools.
        url:
          type: string
          nullable: true
          description: URL for custom integration tools.
        isAvailableToWorkspace:
          type: boolean
          nullable: true
          description: Whether the tool is available to the workspace.
        preferredModel:
          type: string
          description: Preferred model for the tool.
        shortDescription:
          type: string
          description: Short description of the tool.
        isSharable:
          type: boolean
          nullable: true
          description: Whether the tool is sharable.
        systemIntegrationIdentifier:
          type: string
          nullable: true
          description: System integration identifier.
        apiKeyType:
          type: string
          nullable: true
          description: API key type.
        parameter:
          type: string
          nullable: true
          description: Parameter configuration.
        allowWaiting:
          type: boolean
          description: Whether the tool allows waiting.
        queryParams:
          description: Query parameters for custom integration tools.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrationToolQueryParamsDTO'
        bodyParams:
          description: Body parameters for custom integration tools.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrationToolBodyParamsDTO'
        urlParams:
          description: URL parameters for custom integration tools.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrationToolUrlParamsDTO'
        createdAt:
          format: date-time
          type: string
          description: Timestamp when the tool was created.
        updatedAt:
          format: date-time
          type: string
          description: Timestamp when the tool was last updated.
        deletedAt:
          format: date-time
          type: string
          description: Timestamp when the tool was deleted.
        toolConfigurations:
          type: array
          items:
            $ref: '#/components/schemas/AgentToolConfiguration'
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
        embedding:
          type: string
          nullable: true
        integration:
          $ref: '#/components/schemas/IntegrationsViewEntity'
        toolConfiguration:
          $ref: '#/components/schemas/AgentToolConfiguration'
        id:
          type: string
      required:
        - toolFunctionName
        - toolName
        - type
        - meta
        - requiresConsent
        - isBackgroundTool
        - isActive
        - createdAt
        - updatedAt
        - id
    IntegrationProviderRequest:
      type: object
      properties:
        endpoint:
          type: string
        method:
          type: string
        query:
          type: array
          items:
            type: string
        body:
          type: object
        bypassTLS:
          type: boolean
    User:
      type: object
      properties:
        name:
          type: string
          description: Full name of the user.
          example: John Doe
        avatarSrc:
          type: string
          description: URL to the user profile avatar image.
          example: https://example.com/avatars/user123.png
        email:
          type: string
        cognitoUserId:
          type: string
        socialProvider:
          type: string
        socialProviderId:
          type: string
        password:
          type: string
        paymentProviderCustomerId:
          type: string
        rememberToken:
          type: string
        emailVerified:
          type: boolean
        referralCode:
          type: string
        role_name:
          type: string
        isInternalUser:
          type: boolean
        id:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - name
        - email
        - cognitoUserId
        - role_name
        - isInternalUser
        - id
        - createdAt
        - updatedAt
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key

````