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

# List of all available intents and categories



## OpenAPI

````yaml https://dev.enneo.dev/api/mind/docs/open-api get /intent/list
openapi: 3.0.0
info:
  version: '1'
  title: enneo.MIND API
  description: This describes the API of enneo Mind, the main ticketing backend
  contact:
    name: enneo GmbH
    email: richard@enneo.ai
  license:
    name: Proprietary software
    url: https://enneo.ai
servers:
  - url: https://demo.enneo.ai/api/mind
    description: Production server, demo client
  - url: https://main.enneo.dev/api/mind
    description: Development main branch
  - url: http://localhost:8005/api/mind
    description: Local development server
security:
  - bearerAuth:
      - api
  - cookieAuth:
      - api
paths:
  /intent/list:
    get:
      tags:
        - Intent
      summary: List of all available intents and categories
      operationId: getIntentList
      parameters:
        - name: ticketId
          in: query
          required: false
          description: >-
            If provided, include specific recommendations based on the provided
            ticket id
          schema:
            type: integer
          example: 376189
        - name: q
          in: query
          required: true
          description: Search query
          schema:
            type: string
          example: Zählerstand
        - name: includeTopIntents
          in: query
          required: false
          description: >-
            Includes also top intents as a root items. Top intents are suggested
            intents based on what the AI thinks fits to the ticket
          schema:
            type: boolean
            default: false
          example: true
        - name: includeUnassignedIntents
          in: query
          required: false
          description: >-
            Includes any intents that are not assigned to a skill tag. Useful
            when a supervisor edits intents, and we don't have an agent working
            on the ticket
          schema:
            type: boolean
            default: false
          example: false
        - name: onlyTagsWithIntents
          in: query
          required: false
          description: >-
            If yes, then tags with no intents assigned will be excluded from the
            result tree
          schema:
            type: boolean
            default: false
          example: false
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  intentCandidates:
                    allOf:
                      - $ref: '#/components/schemas/TagWithIntentCandidates'
                      - type: object
                        properties:
                          children:
                            type: array
                            items:
                              $ref: '#/components/schemas/TagWithIntentCandidates'
        '403':
          description: Unauthorized
        '404':
          description: Customer not found
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    TagWithIntentCandidates:
      type: object
      description: Tag object with intent candidates inside
      allOf:
        - $ref: '#/components/schemas/Tag'
        - type: object
          properties:
            intentCandidates:
              type: array
              items:
                $ref: '#/components/schemas/IntentCandidateList'
    Error:
      type: object
      description: Data format of Enneo error messages
      properties:
        error:
          type: string
          example: Contract 121 could not be processed
          description: Readable error message that should be shown to the user
        details:
          type: string
          example: >-
            Uncatched null point exception in testFunction() in
            /app/src/file:212
          description: Not easily readable error message that is for the developer
        txId:
          type: string
          example: c916167c94
          description: >-
            Internal transaction id. Useful for debugging. Corresponds to the
            OpenTelemetry trace ID.
    Tag:
      type: object
      description: Tag object
      properties:
        id:
          type: integer
          description: Internal id, e.g. 123
          nullable: true
          example: 123
        name:
          type: string
          description: e.g. "Complaint"
          example: Complaint
        fullName:
          type: string
          description: The full name when not shown in a tree
          example: 'Second Level: Complaint'
        parent:
          type: integer
          description: >-
            The id of the parent tag. null if on root level. Can be created to
            create the tree structure of tags
          nullable: true
          example: 6
        reference:
          type: string
          description: To what this tag can be assigned to
          enum:
            - ticket
            - contract
            - customer
          example: ticket
        type:
          type: string
          description: Type of the tag
          enum:
            - skill
            - product
            - brand
            - customerProperty
            - contractProperty
            - other
          example: skill
        visibility:
          type: string
          description: Visibility of the tag
          enum:
            - public
            - private
            - disabled
          default: public
          example: public
        color:
          type: string
          description: Color of the tag. Default is grey
          enum:
            - grey
            - green
            - red
            - blue
            - yellow
            - purple
            - orange
            - teal
          example: grey
          default: grey
        properties:
          type: array
          description: >-
            An array of strings that specify special properties. Currently only
            ['defaultSkill'], if this tag should be assigned if no skill was
            found
          items:
            type: string
            enum:
              - defaultSkill
          example: []
        complexity:
          type: string
          description: The complexity of the tag
          example: moderate
        sla:
          type: number
          format: float
          description: >-
            SLA in business hours. So if we have business hours from 9-17h, an 8
            hour SLA means ticket has to be solved within one day. NULL means no
            SLA is assigned.
          nullable: true
          example: 8
        priority:
          type: string
          description: >-
            If set to anything other than do-not-change, then the ticket
            priority will be set to this value if the tag was assigned (either
            manually or via AI)
          enum:
            - do-not-change
            - low
            - medium
            - high
          example: do-not-change
        channels:
          type: array
          description: >-
            Channels for which this tag can be detected. If empty or null, then
            this tag can be assigned to all channels.
          nullable: true
          items:
            type: string
          example:
            - email
            - chat
        subchannels:
          type: array
          description: >-
            Subchannels (=Mailboxes/Chat channels) for which this tag can be
            detected. If empty or null, then this tag can be assigned to all
            subchannels.
          nullable: true
          items:
            type: number
            format: int
          example:
            - 2
            - 4
        routingRelevance:
          type: boolean
          description: >-
            If false, this tag is ignored in routing skill-matching filters.
            Tags used only for reporting or classification should set this to
            false so they don't block ticket routing.
          default: true
          example: true
        detectionDetails:
          type: object
          description: Details how the AI agent is detected
        assignment:
          type: array
          description: >-
            Specifies how this tag is being assigned. The details in the
            assignment are specified in the settings page of the tag. So for
            example 'assignBySubchannel', 'assignByCustomLogic' means this tag
            is auto-assigned for certain subchannels, and using a custom logic
            defined in an executor.
          deprecated: true
          items:
            type: string
            enum:
              - assignByChannel
              - assignBySubchannel
              - assignByTicketProperty
              - assignByContractProperty
              - assignByCustomerProperty
              - assignByCustomLogic
              - assignByAI
          example:
            - assignBySubchannel
            - assignByCustomLogic
        testCase:
          type: object
          description: Test case for the tag
        modifiedBy:
          type: string
          description: The user that last modified the tag
          example: John Doe
        modifiedAt:
          type: string
          format: DateTime
          description: The date and time when the tag was last modified
          example: '2024-08-29 14:38:12'
    IntentCandidateList:
      type: array
      items:
        $ref: '#/components/schemas/IntentCandidate'
    IntentCandidate:
      type: object
      description: A potential intent that is offered or recommended to the user
      properties:
        tagId:
          type: integer
          description: Tag id that belongs to the intent
          example: 1
        code:
          type: string
          description: >-
            Intent model code that resolves a specific issue. Currently
            supported is process_meter_reading, process_bank_data and
            process_installment_change
        name:
          type: string
          description: Name of intent as configured by client
        confidence:
          type: number
          format: float
          description: >-
            Confidence how certain the AI is that this is correct. 0.7 means for
            example 70% certain. Defaults to 100% when verified by human.
        channels:
          type: array
          items:
            $ref: '#/components/schemas/Channel'
        customerNeeded:
          type: boolean
          description: Defines if the user is needed for executing intent
      example:
        code: process_meter_reading
        name: Process meter reading
        categoryName: Meter reading
        confidence: 0.91
        tags:
          - prePopulated
          - writesToErp
        message: null
        order: 1
    Channel:
      type: string
      description: Channel of ticket
      enum:
        - email
        - portal
        - phone
        - letter
        - system
        - chat
        - walkIn
      example: email
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT-based authentication
      x-scopes:
        api: Full access to the API
    cookieAuth:
      type: apiKey
      in: cookie
      name: connect.sid
      description: Cookie-based authentication
      x-scopes:
        api: Full access to the API

````