Zoho Cliq messageactions API

Message Actions Module

OpenAPI Specification

zoho-cliq-messageactions-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Bots messageactions API
  description: "<p>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.</p> <p>For more information about Bots, please refer to the <b><a href=\"https://www.zoho.com/cliq/help/platform/bots.html\" target=\"_blank\">Bots Help Documentation</a></b>.</p> <p><b>Bot Handlers</b></p> <ul>\n  <li>Bot Handlers are the building blocks of a bot's functionality. Each handler is associated with a specific trigger event, such as receiving a direct message, being @mentioned in a channel, or a user subscribing to the bot.</li>\n  <li>When the trigger event occurs, the corresponding handler executes it's script to perform actions like sending messages, making API calls, or updating data.</li>\n  <li>By configuring different handlers, you can create bots that respond intelligently to various user interactions and automate complex workflows within Zoho Cliq.</li>\n</ul> <p><b>Types of Bot Handlers</b></p> <table style=\"border-collapse: collapse; width: 100%;\">\n  <tr>\n    <th style=\"padding: 8px; text-align: left; border: 1px solid #ddd;\">Handler</th>\n    <th style=\"padding: 8px; text-align: left; border: 1px solid #ddd;\">Description</th>\n  </tr>\n  <tr>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Menu Handler</td>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Adds up to 5 quick-action items to the bot's chat menu. Triggered when a user interacts with the menu.</td>\n  </tr>\n  <tr>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Message Handler</td>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Triggered when the bot receives a message.</td>\n  </tr>\n  <tr>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Welcome Handler</td>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Defines the greeting message sent when a user subscribes to the bot.</td>\n  </tr>\n  <tr>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Mention Handler</td>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Triggered when the bot is @mentioned in a chat or channel.</td>\n  </tr>\n  <tr>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Incoming Webhook Handler</td>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Allows external services to post messages into the bot via outgoing webhooks.</td>\n  </tr>\n  <tr>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Context Handler</td>\n    <td style=\"padding: 8px; border: 1px solid #ddd;\">Manages multi-turn conversations, maintaining context across a user's interaction with the bot.</td>\n  </tr>\n</table> <p><b>What you can do with the Bots API?</b></p> <p>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.</p> <p>Each bot has an <code>execution_type</code> that defines how its handlers run when a trigger event occurs. The Bots API allows developers to create two types of bots:</p> <p id=\"deluge-bots\"><b>Deluge Bots (default)</b><br> 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.</p> <ul>\n  <li>If <code>execution_type</code> is not specified during bot creation, it defaults to deluge.</li>\n  <li>Handler logic is defined as a script field (Deluge source code) when creating or updating handlers.</li>\n  <li>Suitable for teams that want to build and manage bot logic entirely within Zoho's ecosystem.</li>\n</ul> <p id=\"webhook-bots\"><b>Webhook Bots</b><br> 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 <code>execution_url</code> you configure, and your server processes the event and returns a response.</p> <ul>\n  <li>To create a Webhook bot, set <code>execution_type</code> to webhook during bot creation and provide the <code>execution_url</code> where event payloads should be sent.</li>\n  <li>Your server must be publicly accessible and able to handle incoming POST requests from Zoho Cliq.</li>\n  <li>Ideal for teams seeking complete control over bot logic and possessing the resources to manage an external server. Also suitable for integrations requiring access to external databases, third-party APIs, or custom business logic that cannot be executed in Deluge.</li>\n</ul>\n"
  contact: {}
  version: 1.0.0
servers:
- url: https://cliq.zoho.com/api/v3
  description: Zoho Cliq US DC
tags:
- name: messageactions
  description: Message Actions Module
paths:
  /messageactions:
    post:
      summary: Create a new message action
      operationId: create_a_new_message_action
      description: "<a id=\"create_a_new_message_action\"></a>\n<p>\n  Create a new Message Action. Message actions appear in the right-click / long-press context menu for individual chat messages. When a user selects the action, the configured handler executes with the selected message as input.\n</p>\n<p>\n  Message Actions support two execution types:\n</p>\n<ul>\n  <li><b>Deluge</b> (default): Handler logic runs on Zoho's platform via Deluge scripts. The script receives full message context including content, sender, and chat details.</li>\n  <li><b>Webhook</b>: When the action is triggered, Cliq sends a POST request to your <code>execution_url</code> with the event payload. Your server processes it and returns the response. Supports all 5 permissions (<code>attachments</code>, <code>chat</code>, <code>location</code>, <code>message</code>, <code>user</code>).</li>\n</ul>\n<p>\n  Pass <code>execution_type: \"webhook\"</code> and a valid <code>execution_url</code> to create a Webhook message action. If <code>execution_type</code> is omitted, it defaults to <code>deluge</code>.\n</p>\n<br>\n<p>\n  <b>Threshold limit</b>: 30 requests per min per user<br>\n  Maximum API calls allowed within one minute.<br><br>\n  <b>Lock period</b>: 5 minutes<br>Cooldown period applied after threshold exhaustion.<br>\n</p>\n<details style=\"margin:16px 0 8px 0; border:1px solid rgba(148,163,184,0.5); border-radius:8px; font-family:inherit;\" ontoggle=\"this.querySelector('.err-toggle-hint').textContent=this.open?'Click to collapse':'Click to expand'\">\n  <summary style=\"cursor:pointer; padding:11px 16px; font-weight:600; background:rgba(148,163,184,0.1); list-style:none; display:flex; align-items:center; gap:8px; user-select:none; border-radius:8px;\">\n    <span style=\"display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; background:rgba(239,68,68,0.15); border-radius:50%; font-size:12px; font-weight:700; color:#ef4444; flex-shrink:0;\">!</span>\n    Possible Error Codes\n    <span class=\"err-toggle-hint\" style=\"margin-left:auto; font-weight:400; opacity:0.45; font-size:0.8em; letter-spacing:0.01em;\">Click to expand</span>\n  </summary>\n  <div style=\"padding:14px 16px 16px 16px;\">\n    <div style=\"border-radius:6px; border:1px solid rgba(148,163,184,0.35);\">\n      <table style=\"border-collapse:collapse; width:100%; font-family:inherit; font-size:0.9em;\">\n        <thead>\n          <tr>\n            <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); border-right:1px solid rgba(148,163,184,0.35); font-weight:600; width:45%;\">Error Code</th>\n            <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); font-weight:600; width:55%;\">Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">msgaction_creation_limit_exceeded</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Organization has reached the maximum number of message actions.</td>\n          </tr>\n          <tr style=\"background:rgba(148,163,184,0.05);\">\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">msgaction_name_already_exists</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">A message action with this name already exists.</td>\n          </tr>\n          <tr>\n            <td style=\"padding:10px 18px; border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">invalid_inputs</span></td>\n            <td style=\"padding:10px 18px;\">Request body validation failed.</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div style=\"background:rgba(245,158,11,0.08); border:1px solid rgba(245,158,11,0.4); border-left:4px solid #f59e0b; padding:12px 16px; border-radius:0 6px 6px 0; margin-top:14px; overflow:hidden;\">\n      <b style=\"color:#d97706; font-size:0.88em; display:block; margin-bottom:6px;\">Error Response Format</b>\n      <p style=\"margin:0 0 8px 0; font-size:0.85em; opacity:0.75;\">When an error occurs, the API returns a JSON response in this format:</p>\n      <code style=\"display:block; background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3); padding:8px 12px; border-radius:4px; font-size:0.75em; word-break:break-all;\">{\"message\": \"A human-readable description of the error.\", \"code\": \"error_code\"}</code>\n      <p style=\"margin:8px 0 0 0; font-size:0.85em; opacity:0.75;\">where <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">code</code> is the error identifier (as listed above) and <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">message</code> is a human-readable explanation of what went wrong.</p>\n    </div>\n  </div>\n</details>\n"
      parameters: []
      requestBody:
        description: Creates a message action. Set `execution_type` to `webhook` and include `execution_url` for a Webhook message action.
        required: true
        content:
          application/json:
            examples:
              deluge_action:
                summary: Deluge message action
                value:
                  name: Create Ticket
                  hint: Convert this message into a support ticket
                  scope: organization
                  message_types:
                  - text
                  - attachment
                  execution_type: deluge
              webhook_action:
                summary: Webhook message action
                value:
                  name: Log to Jira
                  hint: Send this message to Jira as an issue
                  scope: organization
                  message_types:
                  - text
                  - link
                  - attachment
                  execution_type: webhook
                  execution_url: https://api.yourcompany.com/cliq/messageactions/handler
              team_scope:
                summary: Team-scoped message action
                value:
                  name: Bulk Archive
                  hint: Archive selected messages
                  scope: team
                  team_ids:
                  - 100001
                  - 100002
                  multi_selectable: true
                  message_types:
                  - text
              personal_action:
                summary: Personal scope action
                value:
                  name: Translate
                  hint: Translate selected message to English
                  scope: personal
                  message_types:
                  - text
            schema:
              $ref: '#/components/schemas/v3-msgaction-create'
      responses:
        '200':
          description: Message action created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageActionResponse'
              examples:
                deluge_action:
                  summary: Deluge message action response
                  value:
                    url: /api/v3/messageactions
                    type: messageaction
                    data:
                      name: Create Ticket
                      id: '53719000002124010'
                      hint: Convert this message into a support ticket
                      scope: organization
                      multi_selectable: false
                      message_types:
                      - text
                      - attachment
                      handlers:
                      - type: execution_handler
                      creator:
                        name: James
                        id: '65113112'
                      execution_type: deluge
                      status: enabled
                      type: custom
                webhook_action:
                  summary: Webhook message action response
                  value:
                    url: /api/v3/messageactions
                    type: messageaction
                    data:
                      name: Log to Jira
                      id: '53719000002124011'
                      hint: Send this message to Jira as an issue
                      scope: organization
                      multi_selectable: false
                      message_types:
                      - text
                      - link
                      - attachment
                      handlers:
                      - type: execution_handler
                      creator:
                        name: James
                        id: '65113112'
                      execution_type: webhook
                      execution_url: https://api.yourcompany.com/cliq/messageactions/handler
                      status: enabled
                      type: custom
                team_scope:
                  summary: Team-scoped message action response
                  value:
                    url: /api/v3/messageactions
                    type: messageaction
                    data:
                      name: Bulk Archive
                      id: '53719000002124012'
                      hint: Archive selected messages
                      scope: team
                      team_ids:
                      - 100001
                      - 100002
                      multi_selectable: true
                      message_types:
                      - text
                      handlers:
                      - type: execution_handler
                      creator:
                        name: James
                        id: '65113112'
                      execution_type: deluge
                      status: enabled
                      type: custom
        '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.MessageActions.CREATE
      tags:
      - messageactions
    get:
      summary: List all message actions
      operationId: list_all_message_actions
      description: "Retrieve a paginated list of all message Actions available to the user.\n<br><br>\n<p>\n  <b>Threshold limit</b>: 30 requests per min per user<br>\n  Maximum API calls allowed within one minute.<br><br>\n  <b>Lock period</b>: 5 minutes<br>Cooldown period applied after threshold exhaustion.<br>\n</p>\n"
      parameters:
      - schema:
          description: ''
          $ref: '#/components/schemas/base64_regex'
        in: query
        name: sync_token
        description: 'Sync token for incremental synchronization. To fetch only message actions created or updated since the last request, provide the <code>sync_token</code> value from the previous response. For the initial request, omit this parameter or set it to null to retrieve all message actions.

          '
        required: false
      - schema:
          description: ''
          type: integer
        in: query
        name: limit
        description: 'Maximum number of message actions to return per page.<br>

          <b>Default</b>: 20<br>

          <b>Maximum limit</b>: 100

          '
        required: false
      - schema:
          description: ''
          $ref: '#/components/schemas/base64_regex'
        in: query
        name: next_token
        description: 'Token for fetching the next page of results. If the response includes a <code>next_token</code>, use its value in this parameter to retrieve the next page. Omit this parameter or set it to null if there are no more pages to fetch.

          '
        required: false
      responses:
        '200':
          description: List of message actions returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageActionListItemsResponse'
              example:
                url: /api/v3/messageactions
                type: messageaction
                sync_token: NTB8MTc3NzQzMjI3NjY1OHw1MzcxOTAwMDAwMjEyNDAxMA==
                data:
                - multi_selectable: true
                  name: Create Ticket
                  id: '53719000002124010'
                  handlers:
                  - type: execution_handler
                  creator:
                    name: James
                    id: '65113112'
                  execution_type: deluge
                  hint: Create a helpdesk ticket
                  status: enabled
                  type: custom
                  message_types:
                  - text
                  - link
                  scope: organization
                - multi_selectable: false
                  name: Translate
                  id: '53719000002124013'
                  handlers:
                  - type: execution_handler
                  creator:
                    name: James
                    id: '65113112'
                  execution_type: deluge
                  hint: Translate selected message to English
                  status: enabled
                  type: custom
                  message_types:
                  - text
                  scope: personal
        '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.MessageActions.READ
      tags:
      - messageactions
  /messageactions/{MESSAGE_ACTION_ID}:
    patch:
      summary: Update an existing message action
      operationId: update_an_existing_message_act
      description: "Update the configuration of an existing message action.\n<p>\n  All fields are optional. Only the fields you provide will be updated; omitted fields remain unchanged.\n</p>\n<p>\n  For <b>Webhook message actions</b>, you can update the <code>execution_url</code> independently at any time to redirect the action to a new server endpoint.\n</p>\n<br>\n<p>\n  <b>Threshold limit</b>: 10 requests per min per user<br>\n  Maximum API calls allowed within one minute.<br><br>\n  <b>Lock period</b>: 5 minutes<br>Cooldown period applied after threshold exhaustion.<br>\n</p>\n<details style=\"margin:16px 0 8px 0; border:1px solid rgba(148,163,184,0.5); border-radius:8px; font-family:inherit;\" ontoggle=\"this.querySelector('.err-toggle-hint').textContent=this.open?'Click to collapse':'Click to expand'\">\n  <summary style=\"cursor:pointer; padding:11px 16px; font-weight:600; background:rgba(148,163,184,0.1); list-style:none; display:flex; align-items:center; gap:8px; user-select:none; border-radius:8px;\">\n    <span style=\"display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; background:rgba(239,68,68,0.15); border-radius:50%; font-size:12px; font-weight:700; color:#ef4444; flex-shrink:0;\">!</span>\n    Possible Error Codes\n    <span class=\"err-toggle-hint\" style=\"margin-left:auto; font-weight:400; opacity:0.45; font-size:0.8em; letter-spacing:0.01em;\">Click to expand</span>\n  </summary>\n  <div style=\"padding:14px 16px 16px 16px;\">\n    <div style=\"border-radius:6px; border:1px solid rgba(148,163,184,0.35);\">\n      <table style=\"border-collapse:collapse; width:100%; font-family:inherit; font-size:0.9em;\">\n        <thead>\n          <tr>\n            <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); border-right:1px solid rgba(148,163,184,0.35); font-weight:600; width:45%;\">Error Code</th>\n            <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); font-weight:600; width:55%;\">Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">msgaction_not_found</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Message action with the specified ID was not found.</td>\n          </tr>\n          <tr style=\"background:rgba(148,163,184,0.05);\">\n            <td style=\"padding:10px 18px; border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">msgaction_name_already_exists</span></td>\n            <td style=\"padding:10px 18px;\">Another message action with this name already exists.</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div style=\"background:rgba(245,158,11,0.08); border:1px solid rgba(245,158,11,0.4); border-left:4px solid #f59e0b; padding:12px 16px; border-radius:0 6px 6px 0; margin-top:14px; overflow:hidden;\">\n      <b style=\"color:#d97706; font-size:0.88em; display:block; margin-bottom:6px;\">Error Response Format</b>\n      <p style=\"margin:0 0 8px 0; font-size:0.85em; opacity:0.75;\">When an error occurs, the API returns a JSON response in this format:</p>\n      <code style=\"display:block; background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3); padding:8px 12px; border-radius:4px; font-size:0.75em; word-break:break-all;\">{\"message\": \"A human-readable description of the error.\", \"code\": \"error_code\"}</code>\n      <p style=\"margin:8px 0 0 0; font-size:0.85em; opacity:0.75;\">where <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">code</code> is the error identifier (as listed above) and <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">message</code> is a human-readable explanation of what went wrong.</p>\n    </div>\n  </div>\n</details>\n"
      parameters:
      - schema:
          description: ''
          $ref: '#/components/schemas/longid_regex'
        example: MESSAGE_ACTION_ID
        in: path
        name: MESSAGE_ACTION_ID
        description: 'Unique numeric identifier of the message action.<br>

          To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v3/glossary/#MESSAGE_ACTION_ID">MESSAGE_ACTION_ID</a> in the Glossary page.''

          '
        required: true
      requestBody:
        description: Updates a message action. Send only fields to change. For Webhook actions, use `execution_url` to update the server endpoint.
        required: true
        content:
          application/json:
            examples:
              update_details:
                summary: Update action details
                value:
                  name: Create Ticket
                  hint: Convert this message into a support ticket - updated
                  scope: organization
                  multi_selectable: false
                  message_types:
                  - text
                  - link
                  - attachment
              update_webhook_url:
                summary: Update webhook execution URL
                value:
                  execution_url: https://api.yourcompany.com/cliq/messageactions/updated-handler
              update_scope_to_team:
                summary: Update scope to team
                value:
                  scope: team
                  team_ids:
                  - 100001
                  - 100002
                  multi_selectable: true
                  message_types:
                  - text
            schema:
              $ref: '#/components/schemas/v3-msgaction-edit'
      responses:
        '200':
          description: Message action updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageActionUpdateResponse'
              examples:
                update_all_fields:
                  summary: Update All Fields response
                  value:
                    url: /api/v3/messageactions/53719000002124010
                    type: messageaction
                    data:
                      name: Create Ticket
                      id: '53719000002124010'
                      hint: Convert this message into a support ticket
                      scope: organization
                      multi_selectable: false
                      message_types:
                      - text
                      - link
                      - attachment
                      handlers:
                      - type: execution_handler
                      creator:
                        name: James
                        id: '65113112'
                      execution_type: deluge
                      status: enabled
                      type: custom
                update_hint_only:
                  summary: Update Hint Only response
         

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-cliq/refs/heads/main/openapi/zoho-cliq-messageactions-api-openapi.yml