openapi: 3.0.0 info: title: Bots messageformat API description: "
Bots are conversational assistants designed to automate repetitive tasks and manage simple user interactions. Their behavior is fully customizable through predefined Bot Handlers, which are activated by specific actions or through Webhooks that communicate with your own external server.
For more information about Bots, please refer to the Bots Help Documentation.
Bot Handlers
Types of Bot Handlers
| Handler | \nDescription | \n
|---|---|
| Menu Handler | \nAdds up to 5 quick-action items to the bot's chat menu. Triggered when a user interacts with the menu. | \n
| Message Handler | \nTriggered when the bot receives a message. | \n
| Welcome Handler | \nDefines the greeting message sent when a user subscribes to the bot. | \n
| Mention Handler | \nTriggered when the bot is @mentioned in a chat or channel. | \n
| Incoming Webhook Handler | \nAllows external services to post messages into the bot via outgoing webhooks. | \n
| Context Handler | \nManages multi-turn conversations, maintaining context across a user's interaction with the bot. | \n
What you can do with the Bots API?
With the Bots API, you can retrieve information about a specific bot, list all bots within your organization, manage configurations specific to handlers, trigger bot calls programmatically, manage subscribers, and much more.
Each bot has an execution_type that defines how its handlers run when a trigger event occurs. The Bots API allows developers to create two types of bots:
Deluge Bots (default)
Deluge bot executes handler logic using Zoho's Deluge scripting language, hosted entirely within the Zoho Cliq Developer platform, where no external server is required.
execution_type is not specified during bot creation, it defaults to deluge.Webhook Bots
A Webhook bot delegates all handler execution to your own external server. When a trigger event fires, Zoho Cliq sends an HTTP POST request to the execution_url you configure, and your server processes the event and returns a response.
execution_type to webhook during bot creation and provide the execution_url where event payloads should be sent.slides JSON object.
'
parameters:
- name: CHAT_ID1
in: path
required: true
schema:
type: string
example: CHAT_ID
description: 'Unique identifier of the chat where the message needs to be sent. To learn how to retrieve this ID, see CHAT_ID in the Glossary page.CHAT_ID1 is a documentation alias for CHAT_ID, used to document the "Table" message format separately while sharing the same /chats/{CHAT_ID}/messages endpoint, since the path is unchanged and only the structured message payload differs.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/send-table-message-request-body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty-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.Webhooks.CREATE
tags:
- messageformat
/chats/{CHAT_ID2}/messages:
post:
summary: List
x-display-path: /chats/{CHAT_ID}/messages
x-virtual-endpoint: true
x-note: 'CHAT_ID2 is a documentation alias for CHAT_ID path parameter used in list operation. This alias is used to document the list message format as a separate operation while keeping it under the same POST /chats/{CHAT_ID}/messages endpoint, because the actual API path does not change and only the structured message payload differs. The actual endpoint for list operation remains /chats/{CHAT_ID}/messages as specified in the paths object.
'
operationId: list
description: 'Use this API to send message content formatted as a list.
slides JSON object.
'
parameters:
- name: CHAT_ID2
in: path
required: true
schema:
type: string
example: CHAT_ID
description: 'Unique identifier of the chat where the message needs to be sent. To learn how to retrieve this ID, see CHAT_ID in the Glossary page.CHAT_ID2 is a documentation alias for CHAT_ID, used to document the "List" message format separately while sharing the same /chats/{CHAT_ID}/messages endpoint, since the path is unchanged and only the structured message payload differs.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/send-list-message-request-body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty-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.Webhooks.CREATE
tags:
- messageformat
/chats/{CHAT_ID3}/messages:
post:
summary: Label
x-display-path: /chats/{CHAT_ID}/messages
x-virtual-endpoint: true
x-note: 'CHAT_ID3 is a documentation alias for CHAT_ID path parameter used in label operation. This alias is used to document the label message format as a separate operation while keeping it under the same POST /chats/{CHAT_ID}/messages endpoint, because the actual API path does not change and only the structured message payload differs. The actual endpoint for label operation remains /chats/{CHAT_ID}/messages as specified in the paths object.
'
operationId: label
description: 'Use this API to send message content formatted as a label.
slides JSON object.
'
parameters:
- name: CHAT_ID3
in: path
required: true
schema:
type: string
example: CHAT_ID
description: 'Unique identifier of the chat where the message needs to be sent. To learn how to retrieve this ID, see CHAT_ID in the Glossary page.CHAT_ID3 is a documentation alias for CHAT_ID, used to document the "Label" message format separately while sharing the same /chats/{CHAT_ID}/messages endpoint, since the path is unchanged and only the structured message payload differs.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/send-label-message-request-body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty-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.Webhooks.CREATE
tags:
- messageformat
/chats/{CHAT_ID4}/messages:
post:
summary: Image
x-display-path: /chats/{CHAT_ID}/messages
x-virtual-endpoint: true
x-note: 'CHAT_ID4 is a documentation alias for CHAT_ID path parameter used in image operation. This alias is used to document the image message format as a separate operation while keeping it under the same POST /chats/{CHAT_ID}/messages endpoint, because the actual API path does not change and only the structured message payload differs. The actual endpoint for image operation remains /chats/{CHAT_ID}/messages as specified in the paths object.
'
operationId: image
description: 'Use this API to send message content formatted as an image.
slides JSON object.
'
parameters:
- name: CHAT_ID4
in: path
required: true
schema:
type: string
example: CHAT_ID
description: 'Unique identifier of the chat where the message needs to be sent. To learn how to retrieve this ID, see CHAT_ID in the Glossary page.CHAT_ID4 is a documentation alias for CHAT_ID, used to document the "Image" message format separately while sharing the same /chats/{CHAT_ID}/messages endpoint, since the path is unchanged and only the structured message payload differs.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/send-image-message-request-body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty-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.Webhooks.CREATE
tags:
- messageformat
/chats/{CHAT_ID5}/messages:
post:
summary: Charts
x-display-path: /chats/{CHAT_ID}/messages
x-virtual-endpoint: true
x-note: 'CHAT_ID5 is a documentation alias for CHAT_ID path parameter used in charts operation. This alias is used to document the charts message format as a separate operation while keeping it under the same POST /chats/{CHAT_ID}/messages endpoint, because the actual API path does not change and only the structured message payload differs. The actual endpoint for charts operation remains /chats/{CHAT_ID}/messages as specified in the paths object.
'
operationId: charts
description: 'Use this API to send message content formatted as a chart.
slides JSON object.
'
parameters:
- name: CHAT_ID5
in: path
required: true
schema:
type: string
example: CHAT_ID
description: 'Unique identifier of the chat where the message needs to be sent. To learn how to retrieve this ID, see CHAT_ID in the Glossary page.CHAT_ID5 is a documentation alias for CHAT_ID, used to document the "Charts" message format separately while sharing the same /chats/{CHAT_ID}/messages endpoint, since the path is unchanged and only the structured message payload differs.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/send-chart-message-request-body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty-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.Webhooks.CREATE
tags:
- messageformat
/chats/{CHAT_ID6}/messages:
post:
summary: Graphs
x-display-path: /chats/{CHAT_ID}/messages
x-virtual-endpoint: true
x-note: 'CHAT_ID6 is a documentation alias for CHAT_ID path parameter used in graphs operation. This alias is used to document the graphs message format as a separate operation while keeping it under the same POST /chats/{CHAT_ID}/messages endpoint, because the actual API path does not change and only the structured message payload differs. The actual endpoint for graphs operation remains /chats/{CHAT_ID}/messages as specified in the paths object.
'
operationId: graphs
description: 'Use this API to send message content formatted as a graph.
slides JSON object.
'
parameters:
- name: CHAT_ID6
in: path
required: true
schema:
type: string
example: CHAT_ID
description: 'Unique identifier of the chat where the message needs to be sent. To learn how to retrieve this ID, see CHAT_ID in the Glossary page.CHAT_ID6 is a documentation alias for CHAT_ID, used to document the "Graphs" message format separately while sharing the same /chats/{CHAT_ID}/messages endpoint, since the path is unchanged and only the structured message payload differs.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/send-graph-message-request-body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty-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.Webhooks.CREATE
tags:
- messageformat
components:
schemas:
send-table-message-request-body:
type: object
required:
- text
properties:
text:
type: string
description: 'The text content of the message to be sent.\n {\n
\n \"<Header1>\": \"<RowValue1>\",
\n \"<Header2>\": \"<RowValue2>\",
\n ...\n
\n }\n\n\n \"data\":[{\"Key1\": \"Value1\"},{\"Key2\": \"Value2\"},...]\n\n"
items:
type: object
example:
- Revenue: $500,000
- Growth: 25%
- Region: North America
send-graph-message-request-body:
type: object
required:
- text
properties:
text:
type: string
maxLength: 10000
description: 'The text content of the message to be sent.