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

# Create operator shortcut

> Creates a shortcut for the requesting operator. Unlike the endpoint this
replaces, it is a plain create rather than an upsert keyed on the shortcut
name — a name already in use is reported as a conflict instead of silently
overwriting the existing shortcut.



## OpenAPI

````yaml /api/services-api.yaml post /v1/tenants/{tenantID}/operators/shortcuts
openapi: 3.0.3
info:
  description: >-
    Talqui is an omnichannel customer service platform that unifies
    conversations from WhatsApp, Instagram, Telegram, and many other channels
    into a single attendant panel, alongside a broader ecosystem of plugins and
    integrations. This API gives developers programmatic access to Talqui's
    services layer, exposing the operations needed to read and manage tenants,
    conversations, plugins, and related resources that power that platform.


    Authentication is available on behalf of an Operator (the default for this
    API), a Plugin Connection, or a Plugin — see the [Talqui authentication
    guide](https://docs.talqui.chat/guides/introduction/authentication/) for how
    each token is obtained and when to use it.


    Need help or have questions not covered here? Reach out to
    support@talqui.com.
  license:
    name: ISC
    url: https://opensource.org/license/isc-license-txt
  title: Talqui - Services API
  version: 0.65.0
servers:
  - description: Production
    url: https://services-api.talqui.chat
security: []
tags:
  - name: Tenants
  - name: Settings
  - name: Analytics
  - name: Campaigns
  - name: Campaigns models
  - name: Contacts
  - name: Handoff links
  - name: Inboxes
  - name: Messages
  - name: Notifications
  - name: Sessions
  - name: Operators
  - name: Plugins
  - name: Setup
  - name: Uploads
paths:
  /v1/tenants/{tenantID}/operators/shortcuts:
    post:
      tags:
        - Operators
      summary: Create operator shortcut
      description: >-
        Creates a shortcut for the requesting operator. Unlike the endpoint this

        replaces, it is a plain create rather than an upsert keyed on the
        shortcut

        name — a name already in use is reported as a conflict instead of
        silently

        overwriting the existing shortcut.
      operationId: CreateOperatorShortcutController
      parameters:
        - in: path
          name: tenantID
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                shortcutBang:
                  description: >-
                    Free-form shortcut name, 1-64 chars. Trimmed and lowercased,
                    and a leading "!" is accepted and stripped, so "!Boas
                    Vindas" is stored as "boas vindas".
                  type: string
                shortcutContents:
                  description: Ordered content blocks; dispatch order matches array order.
                  items:
                    oneOf:
                      - properties:
                          contentKey:
                            enum:
                              - text
                            type: string
                          contentValue:
                            description: Markdown text block in the Talqui message format
                            maxLength: 5000
                            minLength: 1
                            type: string
                        required:
                          - contentKey
                          - contentValue
                        type: object
                      - properties:
                          contentKey:
                            enum:
                              - file
                              - image
                              - video
                              - document
                            type: string
                          contentValue:
                            properties:
                              address:
                                description: >-
                                  Public storage URL returned by the
                                  signed-upload endpoint.
                                format: uri
                                type: string
                              caption:
                                description: >-
                                  Optional caption dispatched alongside the
                                  file.
                                maxLength: 1024
                                type: string
                              fileName:
                                description: >-
                                  Original file name, shown in the attachment
                                  card.
                                minLength: 1
                                type: string
                              fileSizeInBytes:
                                description: File size in bytes; capped at 12 MB.
                                exclusiveMinimum: true
                                maximum: 12000000
                                type: integer
                              mimeType:
                                description: MIME type of the uploaded asset.
                                minLength: 1
                                type: string
                            required:
                              - address
                              - mimeType
                              - fileName
                              - fileSizeInBytes
                            type: object
                        required:
                          - contentKey
                          - contentValue
                        type: object
                      - properties:
                          contentKey:
                            enum:
                              - audio
                            type: string
                          contentValue:
                            properties:
                              address:
                                description: >-
                                  Public storage URL returned by the
                                  signed-upload endpoint.
                                format: uri
                                type: string
                              caption:
                                description: >-
                                  Optional caption dispatched alongside the
                                  file.
                                maxLength: 1024
                                type: string
                              duration:
                                description: Audio duration in seconds.
                                minimum: 0
                                type: number
                              fileName:
                                description: >-
                                  Original file name, shown in the attachment
                                  card.
                                minLength: 1
                                type: string
                              fileSizeInBytes:
                                description: File size in bytes; capped at 12 MB.
                                exclusiveMinimum: true
                                maximum: 12000000
                                type: integer
                              mimeType:
                                description: MIME type of the uploaded asset.
                                minLength: 1
                                type: string
                            required:
                              - address
                              - mimeType
                              - fileName
                              - fileSizeInBytes
                              - duration
                            type: object
                        required:
                          - contentKey
                          - contentValue
                        type: object
                  maxItems: 10
                  minItems: 1
                  type: array
                shortcutScope:
                  default: user-based
                  description: >-
                    Visibility scope; "tenant-based" requires manager role or
                    above.
                  enum:
                    - tenant-based
                    - user-based
                  type: string
              required:
                - shortcutBang
                - shortcutContents
              type: object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  shortcut:
                    additionalProperties: false
                    description: The affected shortcut.
                    properties:
                      createdAt:
                        description: When this shortcut was created.
                        format: date-time
                        type: string
                      operatorID:
                        description: The operator who owns this shortcut.
                        type: string
                      organizationID:
                        description: The organization the owning operator belongs to.
                        type: string
                      shortcutBang:
                        description: The shortcut name, searched from the inbox panel.
                        type: string
                      shortcutContents:
                        description: Ordered content blocks.
                        items:
                          oneOf:
                            - additionalProperties: false
                              properties:
                                contentID:
                                  description: Stable identifier for this block.
                                  type: string
                                contentKey:
                                  enum:
                                    - text
                                  type: string
                                contentValue:
                                  description: >-
                                    Markdown text block in the Talqui message
                                    format
                                  maxLength: 5000
                                  minLength: 1
                                  type: string
                              required:
                                - contentKey
                                - contentValue
                                - contentID
                              type: object
                            - additionalProperties: false
                              properties:
                                contentID:
                                  description: Stable identifier for this block.
                                  type: string
                                contentKey:
                                  enum:
                                    - file
                                    - image
                                    - video
                                    - document
                                  type: string
                                contentValue:
                                  additionalProperties: false
                                  properties:
                                    address:
                                      description: >-
                                        Public storage URL returned by the
                                        signed-upload endpoint.
                                      format: uri
                                      type: string
                                    caption:
                                      description: >-
                                        Optional caption dispatched alongside
                                        the file.
                                      maxLength: 1024
                                      type: string
                                    fileName:
                                      description: >-
                                        Original file name, shown in the
                                        attachment card.
                                      minLength: 1
                                      type: string
                                    fileSizeInBytes:
                                      description: File size in bytes; capped at 12 MB.
                                      exclusiveMinimum: true
                                      maximum: 12000000
                                      type: integer
                                    mimeType:
                                      description: MIME type of the uploaded asset.
                                      minLength: 1
                                      type: string
                                  required:
                                    - address
                                    - mimeType
                                    - fileName
                                    - fileSizeInBytes
                                  type: object
                              required:
                                - contentKey
                                - contentValue
                                - contentID
                              type: object
                            - additionalProperties: false
                              properties:
                                contentID:
                                  description: Stable identifier for this block.
                                  type: string
                                contentKey:
                                  enum:
                                    - audio
                                  type: string
                                contentValue:
                                  additionalProperties: false
                                  properties:
                                    address:
                                      description: >-
                                        Public storage URL returned by the
                                        signed-upload endpoint.
                                      format: uri
                                      type: string
                                    caption:
                                      description: >-
                                        Optional caption dispatched alongside
                                        the file.
                                      maxLength: 1024
                                      type: string
                                    duration:
                                      description: Audio duration in seconds.
                                      minimum: 0
                                      type: number
                                    fileName:
                                      description: >-
                                        Original file name, shown in the
                                        attachment card.
                                      minLength: 1
                                      type: string
                                    fileSizeInBytes:
                                      description: File size in bytes; capped at 12 MB.
                                      exclusiveMinimum: true
                                      maximum: 12000000
                                      type: integer
                                    mimeType:
                                      description: MIME type of the uploaded asset.
                                      minLength: 1
                                      type: string
                                  required:
                                    - address
                                    - mimeType
                                    - fileName
                                    - fileSizeInBytes
                                    - duration
                                  type: object
                              required:
                                - contentKey
                                - contentValue
                                - contentID
                              type: object
                        type: array
                      shortcutID:
                        description: Unique identifier for this shortcut.
                        type: string
                      shortcutPreview:
                        description: Derived plain-text summary used by list views.
                        type: string
                      shortcutScope:
                        description: Visibility scope of this shortcut.
                        enum:
                          - tenant-based
                          - user-based
                        type: string
                      tenantID:
                        description: The tenant this shortcut belongs to.
                        type: string
                      updatedAt:
                        description: When this shortcut was last modified.
                        format: date-time
                        type: string
                    required:
                      - shortcutID
                      - tenantID
                      - operatorID
                      - shortcutBang
                      - shortcutScope
                      - shortcutContents
                      - shortcutPreview
                      - createdAt
                      - updatedAt
                    type: object
                required:
                  - shortcut
                type: object
          description: Response for status 201.
        '400':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/MissingTenantIDError'
                        - $ref: '#/components/schemas/RequestValidationError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            MissingTenantIDError (error_code 1001): tenantID absent from the
            URL. | RequestValidationError (error_code 1002): request body fails
            schema validation.
        '401':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnauthorizedError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: 'UnauthorizedError (error_code 1003): missing/invalid operator token.'
        '403':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/ForbiddenError'
                        - $ref: '#/components/schemas/ShortcutScopeForbiddenError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            ForbiddenError (error_code 1004): operator token rejected upstream,
            or operator does not belong to the tenant. |
            ShortcutScopeForbiddenError (error_code 1403): operator role does
            not allow the requested scope.
        '404':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/TenantNotFoundError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            TenantNotFoundError (error_code 1062): tenantID does not resolve to
            a tenant.
        '409':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/ShortcutBangUnavailableError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            ShortcutBangUnavailableError (error_code 1402): a shortcut with this
            name already exists.
        '500':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnknownError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            UnknownError (error_code 5999): Unexpected internal error not
            otherwise documented for this endpoint.
      security:
        - operatorAuth: []
components:
  schemas:
    MissingTenantIDError:
      additionalProperties: false
      properties:
        error:
          enum:
            - MissingTenantIDError
          type: string
        error_code:
          enum:
            - 1001
          type: number
        message:
          example: tenantID is required.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    RequestValidationError:
      additionalProperties: false
      properties:
        error:
          enum:
            - RequestValidationError
          type: string
        error_code:
          enum:
            - 1002
          type: number
        fields:
          items:
            additionalProperties: false
            properties:
              allowed:
                type: string
              field:
                type: string
              received:
                type: string
            required:
              - field
              - received
              - allowed
            type: object
          type: array
        message:
          example: Invalid request data.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
        - fields
      type: object
    UnauthorizedError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnauthorizedError
          type: string
        error_code:
          enum:
            - 1003
          type: number
        message:
          example: You are not authorized to perform this request.
          type: string
        statusCode:
          enum:
            - 401
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    ForbiddenError:
      additionalProperties: false
      properties:
        error:
          enum:
            - ForbiddenError
          type: string
        error_code:
          enum:
            - 1004
          type: number
        message:
          example: You do not have access to this resource.
          type: string
        statusCode:
          enum:
            - 403
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    ShortcutScopeForbiddenError:
      additionalProperties: false
      properties:
        error:
          enum:
            - ShortcutScopeForbiddenError
          type: string
        error_code:
          enum:
            - 1403
          type: number
        message:
          example: Your role does not allow managing shortcuts on this scope.
          type: string
        statusCode:
          enum:
            - 403
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    TenantNotFoundError:
      additionalProperties: false
      properties:
        error:
          enum:
            - TenantNotFoundError
          type: string
        error_code:
          enum:
            - 1062
          type: number
        message:
          example: Tenant not found.
          type: string
        statusCode:
          enum:
            - 404
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    ShortcutBangUnavailableError:
      additionalProperties: false
      properties:
        error:
          enum:
            - ShortcutBangUnavailableError
          type: string
        error_code:
          enum:
            - 1402
          type: number
        message:
          example: A shortcut with this name already exists.
          type: string
        statusCode:
          enum:
            - 409
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    UnknownError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnknownError
          type: string
        error_code:
          enum:
            - 5999
          type: number
        message:
          example: For some unknown reason your request has not succeeded.
          type: string
        statusCode:
          enum:
            - 500
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
  securitySchemes:
    operatorAuth:
      bearerFormat: JWT
      description: >-
        Behalf of an Operator (default). A JWT issued by Talqui Core when an
        operator signs in, scoped to every tenant that operator belongs to. Send
        as `Authorization: Bearer <jwt-token>`.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.