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

# Update multiple profiles at once

> Bulk update multiple user profiles. Each profile update can include settings and auth service fields.
Requires 'updateSpecificProfile' permission. For enneo users, also requires 'enneoAdmin' permission.




## OpenAPI

````yaml https://dev.enneo.dev/api/mind/docs/open-api patch /profiles
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:
  /profiles:
    patch:
      tags:
        - Profile
      summary: Update multiple profiles at once
      description: >
        Bulk update multiple user profiles. Each profile update can include
        settings and auth service fields.

        Requires 'updateSpecificProfile' permission. For enneo users, also
        requires 'enneoAdmin' permission.
      operationId: bulkUpdateSpecificProfiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - profiles
              properties:
                profiles:
                  type: array
                  items:
                    type: object
                    allOf:
                      - $ref: '#/components/schemas/MindProfile'
                      - $ref: '#/components/schemas/AuthProfile'
                      - type: object
                        properties:
                          rawData:
                            type: object
                            description: >-
                              Any additional, client-defined custom data to
                              store with the profile
                          callRoutingStatus:
                            $ref: '#/components/schemas/RoutingStatus'
                          chatRoutingStatus:
                            $ref: '#/components/schemas/RoutingStatus'
      responses:
        '200':
          description: Results of bulk update operation
          content:
            application/json:
              schema:
                type: object
                required:
                  - results
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        success:
                          type: boolean
                          example: true
        '400':
          description: Invalid request format
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        success:
                          type: boolean
                          example: false
                        message:
                          type: string
                          example: profiles array is required
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
components:
  schemas:
    MindProfile:
      type: object
      properties:
        id:
          type: integer
          description: User ID
          example: 1
        settings:
          oneOf:
            - type: object
              properties:
                status:
                  type: string
                  description: The status of the user
                  enum:
                    - available
                    - busy
                  example: available
                supersetRole:
                  type: string
                  description: >-
                    The superset role of the user. List of available options is
                    retrieved from /api/mind/profile/{id:\d+}/supersetRoles
                ticketsFilters:
                  type: object
                  properties:
                    groups:
                      type: array
                      items:
                        type: number
                        example: 1
                    intents:
                      type: array
                      items:
                        type: string
                        example: process_meter_reading
                    tagIds:
                      type: array
                      items:
                        type: number
                        example: 1
                    personalQueue:
                      type: boolean
                      description: Use skills to filter tickets
                      example: true
                    onlyIntents:
                      type: boolean
                      description: Show only tickets with intents
                      example: true
                roleId:
                  type: integer
                  description: The role ID to assign to the user
                  example: 1
                teamIds:
                  type: array
                  description: The IDs of teams the user should be assigned to
                  items:
                    type: integer
                    example: 1
                skills:
                  type: object
                  description: >-
                    The skills to assign to the user (use this field in request
                    body for create/update operations)
                  properties:
                    tagIds:
                      type: array
                      items:
                        type: integer
                      example:
                        - 1
                        - 2
                    channels:
                      type: array
                      items:
                        type: string
                      example:
                        - email
                        - chat
                actualRoleId:
                  type: integer
                  description: >-
                    The id of the role that is used for the user (including
                    inherited from teams)
                  readOnly: true
                  example: 1
                actualTeamIds:
                  type: array
                  description: >-
                    The ids of the teams that the user is directly assigned to
                    (without parent teams)
                  readOnly: true
                  items:
                    type: integer
                    example: 1
                actualSkills:
                  type: object
                  description: >-
                    The skills of the user (including inherited from teams) -
                    read-only field shown in response
                  readOnly: true
                  properties:
                    intents:
                      type: array
                      items:
                        type: string
                        example: process_meter_reading
                    tagIds:
                      type: array
                      items:
                        type: number
                        example: 1
                    channels:
                      type: array
                      items:
                        type: string
                        example: email
                limitTicketBacklogAccess:
                  type: boolean
                  description: If true, the user can only see tickets with specific tags
                  example: false
                ticketBacklogRequiredTagIds:
                  type: array
                  description: >-
                    The ids of the tags that are required for the user to see
                    tickets
                  items:
                    type: integer
                    example: 1
                tagsOnRoute:
                  type: array
                  description: >-
                    Tags to auto-assign to a ticket when it is routed to the
                    user
                  items:
                    type: integer
                    example: 1
                tagsOnEdit:
                  type: array
                  description: >-
                    Tags to auto-assign to a ticket when the user edits the
                    ticket
                  items:
                    type: integer
                    example: 1
                actualLimitTicketBacklogAccess:
                  type: boolean
                  description: >-
                    If true, the user can only see tickets with specific tags
                    (inherited from teams)
                  example: false
                actualTicketBacklogRequiredTagIds:
                  type: array
                  description: >-
                    The ids of the tags that are required for the user to see
                    tickets (inherited from teams)
                  items:
                    type: integer
                    example: 1
                actualTagsOnRoute:
                  type: array
                  description: Tags auto-assigned on route, including inherited from teams
                  items:
                    type: integer
                    example: 1
                actualTagsOnEdit:
                  type: array
                  description: Tags auto-assigned on edit, including inherited from teams
                  items:
                    type: integer
                    example: 1
                isPersonalFilters:
                  type: boolean
                  description: If true, the filters are personal and only apply to the user
                  example: false
                inheritTeamSettings:
                  type: boolean
                  description: If true, the filters are inherited from the team
                  example: false
                nameReports:
                  type: string
                  description: The name of the reports
                  example: Tapfere Feige
                callRoutingStatus:
                  $ref: '#/components/schemas/RoutingStatus'
                  description: The routing status for phone calls
                chatRoutingStatus:
                  $ref: '#/components/schemas/RoutingStatus'
                  description: The routing status for chat conversations
            - type: object
              nullable: true
    AuthProfile:
      type: object
      properties:
        id:
          type: integer
          description: User ID
          example: 1
        firstName:
          type: string
          description: First name
          example: Max
        lastName:
          type: string
          description: Last name
          example: Mustermann
        email:
          type: string
          description: Email address (read only)
          example: demo@enneo.dev
        phone:
          type: string
          description: Phone number
          example: +49 123 456789
        image:
          type: string
          format: base64
          description: Image
          writeOnly: true
          example: >-
            iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
        password:
          type: string
          description: Password
          writeOnly: true
          example: 123456
        lastSeen:
          type: string
          format: DateTime
          description: The last time the user was seen (read only)
          example: '2022-08-12 12:21:21'
        type:
          type: string
          description: The type of the user
          example: enneo
        isSsoOnly:
          type: integer
          description: >-
            If 1, the user can only login via SSO. If 0, the user can login with
            password or SSO
          enum:
            - 0
            - 1
          example: 0
        lang:
          type: string
          description: The language of the user
          example: de
        nameAlias:
          type: string
          description: Alternative display name or alias for the user
          example: Johnny
        externalId:
          type: string
          description: >-
            External identifier such as employee number or ID from external
            system
          example: EMP-12345
    RoutingStatus:
      type: string
      description: The routing status for queues (calls, chats, etc)
      enum:
        - idle
        - interacting
        - beingConnected
        - notResponding
        - unavailable
        - offline
        - acw
  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

````