openapi: 3.0.0
info:
title: Keyboard Shortcuts
description: The Keyboard Shortcuts API lets users fetch all shortcuts, customize defaults, add custom shortcuts, and reset custom shortcuts to defaults.
contact: {}
version: 1.0.0
externalDocs:
description: Find out more about Zoho Cliq APIs V3
url: https://www.zoho.com/cliq/help/restapi/v3/
servers:
- url: https://cliq.zoho.com/api/v3
description: Zoho Cliq US DC
tags:
- name: keyboardshortcuts
description: Keyboard Shortcuts Module
paths:
/settings/keyboard-shortcuts:
get:
summary: Fetch all keyboard shortcuts
operationId: fetchKeyboardShortcuts
description: |
Retrieves all keyboard shortcuts for the authenticated user, including default shortcuts and any custom shortcuts. If the user does not have any custom shortcuts, all default shortcuts will be returned.
Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.
Lock period: 5 minutes
Wait time before consecutive API requests.
!
Possible Error Codes
Click to expand
| Error Code |
Description |
| invalid_oauthtoken |
The access token is invalid or expired. |
| invalid_access |
The user does not have access to this resource. |
| operation_failed |
Unexpected server error while processing the request. |
Error Response Format
When an error occurs, the API returns a JSON response in this format:
{"message": "A human-readable description of the error.", "code": "error_code"}
where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.
responses:
'200':
description: Keyboard shortcuts were fetched successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/keyboard-shortcuts-response'
example:
keyboard_shortcuts:
basic:
search:
mac: cmd+k
windows: ctrl+k
mute:
mac: cmd+shift+m
windows: ctrl+shift+m
go_to_mentions:
mac: g+m
windows: g+m
conversation_history:
mac: cmd+shift+h
windows: ctrl+shift+h
go_home:
mac: g+h
windows: g+h
zia_search:
mac: cmd+slash
windows: ctrl+slash
add_event:
mac: cmd+shift+e
windows: ctrl+shift+e
composer:
bold:
mac: cmd+b
windows: ctrl+b
italic:
mac: cmd+i
windows: ctrl+i
underline:
mac: cmd+u
windows: ctrl+u
strikethrough:
mac: cmd+shift+x
windows: ctrl+shift+x
schedule_message:
mac: cmd+shift+s
windows: ctrl+shift+s
link:
mac: cmd+l
windows: ctrl+l
message_action:
reply:
mac: right
windows: right
forward:
mac: f
windows: f
pin:
mac: p
windows: p
copy:
mac: c
windows: c
delete:
mac: delete
windows: delete
mark_unread:
mac: u
windows: u
media:
pip:
mac: i
windows: i
add_participant:
mac: shift+equal
windows: shift+equal
go_to_chat:
mac: g+c
windows: g+c
annotate:
rotate:
mac: r
windows: r
annotate:
mac: cmd+e
windows: ctrl+e
networks: {}
custom:
chat:
- id: support-team
name: Support Team
mac: cmd+option+c
windows: ctrl+alt+c
widget: []
snippet: []
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The request cannot be performed. Usually because of malformed parameter or missing parameter.
'401':
description: Unauthorized.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Request was rejected because of invalid AuthToken.
'403':
description: Forbidden.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The user does not have enough permission or possibly not an user of the respective organization to access the resource.
'404':
description: Invalid URL.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
'406':
description: Not Acceptable.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The response has been received but the requested response type is not supported by the browser.
'429':
description: Too many requests.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Too many requests within a certain time frame.
'500':
description: Internal Server Error.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Cliq server encountered an error which prevents it from fulfilling the request.
security:
- Cliq_Auth:
- ZohoCliq.Profile.READ
tags:
- keyboardshortcuts
put:
summary: Update keyboard shortcuts
operationId: updateKeyboardShortcuts
description: |
Updates default or custom keyboard shortcuts for the authenticated user. The shortcut details must be passed in JSON format.
- Default shortcuts: Provide the category (e.g.,
basic, composer, message_action, annotate, media, networks), the shortcut name, and the OS key (windows or mac).
- Custom shortcuts:
- Chat / Widget: Requires an
id (chat ID or widget ID respectively) along with the OS key.
- Snippet: Requires a
name and message along with the OS key.
- Overlap validation: When updating, the new shortcut key is validated against existing shortcuts to prevent overlap. If the key is already mapped to another action, an error is returned.
Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.
Lock period: 5 minutes
Wait time before consecutive API requests.
!
Possible Error Codes
Click to expand
| Error Code |
Description |
| shortcut_overlap |
Shortcut key is already mapped to another action. |
| invalid_shortcut_payload |
Payload structure is invalid. |
| invalid_widget_id |
Provided widget ID does not exist. |
| invalid_chat_id |
Provided chat ID does not exist. |
Error Response Format
When an error occurs, the API returns a JSON response in this format:
{"message": "A human-readable description of the error.", "code": "error_code"}
where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/update-keyboard-shortcuts-request'
examples:
update_default_shortcut:
summary: Update a default shortcut key mapping
value:
keyboard_shortcuts:
basic:
search:
mac: cmd+k
windows: ctrl+k
composer:
bold:
mac: cmd+b
windows: ctrl+b
add_custom_chat_shortcut:
summary: Add a custom chat shortcut
value:
custom:
chat:
- id: support-team
name: Support Team
mac: cmd+option+c
windows: ctrl+alt+c
add_custom_widget_shortcut:
summary: Add a custom widget shortcut
value:
custom:
widget:
- id: calendar-widget
name: Calendar Widget
mac: cmd+option+w
windows: ctrl+alt+w
responses:
'200':
description: Keyboard shortcuts were updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/no-response'
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The request cannot be performed. Usually because of malformed parameter or missing parameter.
'401':
description: Unauthorized.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Request was rejected because of invalid AuthToken.
'403':
description: Forbidden.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The user does not have enough permission or possibly not an user of the respective organization to access the resource.
'404':
description: Invalid URL.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
'406':
description: Not Acceptable.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The response has been received but the requested response type is not supported by the browser.
'429':
description: Too many requests.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Too many requests within a certain time frame.
'500':
description: Internal Server Error.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Cliq server encountered an error which prevents it from fulfilling the request.
security:
- Cliq_Auth:
- ZohoCliq.Profile.UPDATE
tags:
- keyboardshortcuts
delete:
summary: Delete keyboard shortcuts customization
operationId: deleteKeyboardShortcuts
description: |
Resets all custom shortcuts to defaults, or deletes only the specific mappings provided in the request payload. To delete a single shortcut key, pass the same input structure as the update (PUT) request with the target shortcut details.
Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.
Lock period: 5 minutes
Wait time before consecutive API requests.
!
Possible Error Codes
Click to expand
| Error Code |
Description |
| invalid_shortcut_payload |
Payload structure is invalid for targeted deletion. |
| operation_failed |
Unexpected server error while deleting custom shortcuts. |
Error Response Format
When an error occurs, the API returns a JSON response in this format:
{"message": "A human-readable description of the error.", "code": "error_code"}
where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/delete-keyboard-shortcuts-request'
examples:
delete_specific_custom:
summary: Delete a specific custom chat shortcut
value:
custom:
chat:
- id: support-team
delete_all_custom:
summary: Delete all custom shortcuts in bulk
value:
type: custom
reset_all_defaults:
summary: Reset all default shortcuts to system defaults
value:
type: default
responses:
'204':
description: Keyboard shortcuts reset/deletion completed successfully.
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The request cannot be performed. Usually because of malformed parameter or missing parameter.
'401':
description: Unauthorized.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Request was rejected because of invalid AuthToken.
'403':
description: Forbidden.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The user does not have enough permission or possibly not an user of the respective organization to access the resource.
'404':
description: Invalid URL.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
'406':
description: Not Acceptable.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The response has been received but the requested response type is not supported by the browser.
'429':
description: Too many requests.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Too many requests within a certain time frame.
'500':
description: Internal Server Error.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Cliq server encountered an error which prevents it from fulfilling the request.
security:
- Cliq_Auth:
- ZohoCliq.Profile.DELETE
tags:
- keyboardshortcuts
components:
schemas:
no-response:
type: object
properties:
status:
type: string
example: success
error-response:
type: object
properties:
message:
type: string
description: Detailed error message.
required:
- message
os-shortcut:
type: object
properties:
windows:
type: string
description: Shortcut mapping for Windows (e.g., ctrl+k, ctrl+shift+m).
example: ctrl+k
mac:
type: string
description: Shortcut mapping for Mac (e.g., cmd+k, cmd+shift+m).
example: cmd+k
custom-chat-or-widget-entry:
type: object
properties:
name:
type: string
description: Name of the chat or widget.
example: Support Team
id:
type: string
description: Chat or widget identifier.
example: support-team
mac:
type: string
description: Shortcut mapping for Mac (e.g., cmd+option+c).
example: cmd+option+c
windows:
type: string
description: Shortcut mapping for Windows (e.g., ctrl+alt+c).
example: ctrl+alt+c
required:
- id
custom-snippet-entry:
type: object
properties:
name:
type: string
description: Name of snippet shortcut.
example: OOO Snippet
message:
type: string
description: Snippet content to be sent when the shortcut is triggered.
example: I'm currently out of office. Will get back to you soon!
mac:
type: string
description: Shortcut mapping for Mac (e.g., cmd+option+o).
example: cmd+option+o
windows:
type: string
description: Shortcut mapping for Windows (e.g., ctrl+alt+o).
example: ctrl+alt+o
required:
- name
- message
keyboard-shortcuts-object:
type: object
additionalProperties: true
properties:
basic:
type: object
description: Basic navigation shortcuts (e.g., interacting with elements, moving sections, moving focus).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
composer:
type: object
description: Message composer shortcuts (e.g., bold, italic, underline).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
message_action:
type: object
description: Message action shortcuts (e.g., star message, add reaction, go to writing assistant).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
annotate:
type: object
description: Annotation tool shortcuts (e.g., rectangle, add line, text).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
media:
type: object
description: Media call shortcuts (e.g., mute/unmute, video on/off, temporary unmute).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
networks:
type: object
description: Network navigation shortcuts (e.g., navigate between networks).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
custom:
type: object
properties:
chat:
type: array
items:
$ref: '#/components/schemas/custom-chat-or-widget-entry'
widget:
type: array
items:
$ref: '#/components/schemas/custom-chat-or-widget-entry'
snippet:
type: array
items:
$ref: '#/components/schemas/custom-snippet-entry'
keyboard-shortcuts-response:
type: object
properties:
keyboard_shortcuts:
$ref: '#/components/schemas/keyboard-shortcuts-object'
required:
- keyboard_shortcuts
update-keyboard-shortcuts-request:
type: object
additionalProperties: true
properties:
basic:
type: object
description: Basic navigation shortcuts to update (e.g., interacting with elements, moving sections, moving focus).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
composer:
type: object
description: Message composer shortcuts to update (e.g., bold, italic, underline).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
message_action:
type: object
description: Message action shortcuts to update (e.g., star message, add reaction, go to writing assistant).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
annotate:
type: object
description: Annotation tool shortcuts to update (e.g., rectangle, add line, text).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
media:
type: object
description: Media call shortcuts to update (e.g., mute/unmute, video on/off, temporary unmute).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
networks:
type: object
description: Network navigation shortcuts to update (e.g., navigate between networks).
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
custom:
type: object
description: |
Custom shortcuts to update. To update a custom shortcut, provide the complete details of the shortcut (including the new key mapping and associated chat/widget/snippet information). Partial updates are not supported for custom shortcuts.
Allowed custom shortcut types:
chat: Requires an id (chat ID) along with the new shortcut key mapping.
widget: Requires an id (widget ID) along with the new shortcut key mapping.
snippet: Requires a name, message, and the new shortcut key mapping.
additionalProperties: true
delete-keyboard-shortcuts-request:
type: object
additionalProperties: true
properties:
basic:
type: object
description: Basic navigation shortcuts to delete/reset.
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
composer:
type: object
description: Message composer shortcuts to delete/reset.
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
message_action:
type: object
description: Message action shortcuts to delete/reset.
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
annotate:
type: object
description: Annotation tool shortcuts to delete/reset.
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
media:
type: object
description: Media call shortcuts to delete/reset.
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
networks:
type: object
description: Network navigation shortcuts to delete/reset.
additionalProperties:
$ref: '#/components/schemas/os-shortcut'
custom:
type: object
description: |
Custom shortcuts to delete. Provide the id of each chat or widget shortcut to remove.
additionalProperties: true
type:
type: string
enum:
- custom
- default
description: |
Specifies a bulk delete operation. Use custom to remove all custom shortcuts, or default to reset all default shortcuts to their system defaults. Omit this field to delete only the specific shortcuts provided in the payload.
example: custom
securitySchemes:
Cliq_Auth:
type: oauth2
x-authorization-example: Bearer 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f
flows:
implicit:
authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
scopes:
ZohoCliq.Profile.READ: Read user profile settings
ZohoCliq.Profile.UPDATE: Update user profile settings
ZohoCliq.Profile.DELETE: Delete user profile settings