Chatbot Webhooks
- OpenAPI Version:
3.1.1 - API Version:
1.0.0
The chatbot webhooks allow developers to receive events for chatbot features.
Note regarding JSON payloads for guest users: Be aware that guest users (users not signed in to Zoom or who are members of a different account) are assigned temporary IDs that are valid only for the duration of that meeting or chat channel. Data for guest users in JSON payloads is associated with these temporary IDs.
Servers
- URL:
https://{your-endpoint-url}
Operations
team_chat.link_shared
- Method:
POST - Path:
team_chat.link_shared - Tags: webhook
The Chat message link shared event triggers when a user sends a chat message to a contact or a chat channel, and when the app is installed for the user. This message must contain the link. The link's domain is registered by the app in Marketplace. A POST request with a mention message is sent to the Bot Endpoint URL specified in the app's dashboard.
Prerequisites
- A Pro or a higher plan.
Request Body
Content-Type: application/json
event(required)string, possible values:"team_chat.link_shared"— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who sent the app mention message.by_external_user(required)boolean— Whether this action was performed by an external user.object(required)object— Information about the app mention message.date_time(required)string, format:date-time— The date and time at which the message was sent, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.link(required)string— The link content in message.timestamp(required)integer, format:int64— The timestamp for when the message was sent.trigger_id(required)string— The unique identification of this webook event, app can use this trigger_id to invoke openAPItype(required)string, possible values:"to_contact", "to_channel"— The type of message: * `to_contact` — The message was sent to a contact. * `to_channel` — The message was sent to a chat channel.channel_idstring— The chat channel's ID.channel_namestring— The chat channel's name.contact_idstring— The message contact's user ID. If the user ID does not belong to the same account as the current user, this field will be empty.contact_member_idstring— The message contact's member ID.message_idstring— The message's ID. If the preview is provided in an unfurl for a posted message, rather than a link inside the message composer, we will simply ignore this property.reply_main_message_idstring— The ID of the parent message in the chat thread.It's only available if the message is a reply to a main message in a thread.
operator(required)string, format:email— The email address of the user who sent the app mention message.operator_id(required)string— The user ID of the user who sent the app mention message.operator_member_id(required)string— The member ID of the user who sent the app mention message.
response_url(required)string— A callback uri for app to response preview result.
Example:
{
"event": "team_chat.link_shared",
"event_ts": 1,
"response_url": "",
"payload": {
"account_id": "",
"operator_id": "",
"operator": "",
"operator_member_id": "",
"by_external_user": true,
"object": {
"message_id": "",
"type": "to_contact",
"channel_id": "",
"channel_name": "",
"contact_id": "",
"contact_member_id": "",
"trigger_id": "",
"link": "",
"reply_main_message_id": "",
"date_time": "",
"timestamp": 1
}
}
}Responses
Status: 200 Successfully received the webhook event.
interactive_message_fields_editable
- Method:
POST - Path:
interactive_message_fields_editable - Tags: webhook
After a user edits the text of a Chatbot message with Editable Text, the interactive_message_editable event is invoked and a POST request with data about the event is sent to the Bot Endpoint URL specified in the app's dashboard.
The editItem object displays the changes in edited text with origin and target values.
Request Body
Content-Type: application/json
callback_tokenstring— Use the generated token value with the **callback_url** value to send a one-time asynchronous response. The token only lasts for 30 mins. Include the **callback_token** as a **Bearer token in the Authorization header** of your HTTP request. Example: ``` curl --request POST \ --url '{callback_url}' \ --header 'authorization: Bearer {callback_token}' \ --header 'content-type: application/json'\ --data-raw '{"content":{"head":{"text":"Response Header"},"body":[{"type":"message","text":"This is an asynchronous chatbot response."}]}}'callback_urlstring— Use this endpoint to send a one-time asynchronous response within 30 minutes of receiving the event. <br> The response payload should follow the same structure as the [Send Chatbot Messages](https://developers.zoom.us/docs/api/chatbot/#tag/chatbot-messages/POST/im/chat/messages) API with required property **content** and optional properties *reply_to*, *visible_to_user* and *is_markdown_support*. <br> Include the **callback_token** value from the event as **Bearer token in the Authorization header** of your HTTP POST request.eventstring— The name of the event.event_tsinteger, format:int64— The timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user sending the command.channelNamestring— The channel in which the message was sent.fieldEditItemobject— The item that the user edits.currentValuestringkeystringnewValuestring
messageIdstring— The unique ID of the message.originalobject— The original message sent to the user.bodyarrayItems: itemsarrayItems: editablestringkeystringvaluestring
typestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— The unique credential of the Chatbot.timestampstring— The time command message was sent.toJidstring— The JID of the channel or user the message was sent to.userIdstring— The user who sends the command.userJidstring— The JID of user who is sending the command.userNamestring— The user's display name.
Example:
{
"event": "",
"event_ts": 1,
"callback_url": "",
"callback_token": "",
"payload": {
"accountId": "",
"channelName": "",
"fieldEditItem": {
"currentValue": "",
"key": "",
"newValue": ""
},
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"type": "",
"items": [
{
"editable": "",
"value": "",
"key": ""
}
]
}
]
},
"robotJid": "",
"timestamp": "",
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Responses
Status: 200 Successfully received the webhook event.
bot_notification
- Method:
POST - Path:
bot_notification - Tags: webhook
After a user enters a User Command, a slash command unique to the application, Chatbots send a POST request associated with the bot_notification event to the Bot Endpoint URL with a JSON payload containing all text entered following the command. This payload contains information on the user and event including the account, channel, timestamp, and user name.
The cmd value reflects the text entered by the user after the slash command. The userName is the string value of the user's displayed name, and channelName is the string value of the channel in which the command was sent.
Request Body
Content-Type: application/json
eventstring— Name of the event.event_tsinteger, format:int64— Timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user sending the command.channelNamestring— Channel in which the message was sent.cmdstring— Slash command entered by the user.namestring— Chatbot Name.robotJidstring— Unique credential of the Chatbot.timestampinteger, format:date-time— Time command message was sent.toJidstring— JID of the channel or user the message was sent to.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"accountId": "",
"channelName": "",
"cmd": "",
"name": "",
"robotJid": "",
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Responses
Status: 200 Successfully received the webhook event.
interactive_message_actions
- Method:
POST - Path:
interactive_message_actions - Tags: webhook
After a user clicks a button in a Chatbot message, the interactive_message_actions event is invoked and a POST request with data on the selected option is sent to the Bot Endpoint URL specified in the app's dashboard.
The actionItem object displays the value chosen by the user from the items array of the original message from the Chatbot.
Request Body
Content-Type: application/json
callback_tokenstring— Use the generated token value with the **callback_url** value to send a one-time asynchronous response. The token only lasts for 30 mins. Include the **callback_token** as a **Bearer token in the Authorization header** of your HTTP request. Example: ``` curl --request POST \ --url '{callback_url}' \ --header 'authorization: Bearer {callback_token}' \ --header 'content-type: application/json'\ --data-raw '{"content":{"head":{"text":"Response Header"},"body":[{"type":"message","text":"This is an asynchronous chatbot response."}]}}'callback_urlstring— Use this endpoint to send a one-time asynchronous response within 30 minutes of receiving the event. <br> The response payload should follow the same structure as the [Send Chatbot Messages](https://developers.zoom.us/docs/api/chatbot/#tag/chatbot-messages/POST/im/chat/messages) API with required property **content** and optional properties *reply_to*, *visible_to_user* and *is_markdown_support*. <br> Include the **callback_token** value from the event as **Bearer token in the Authorization header** of your HTTP POST request.eventstring— The name of the event.event_tsinteger, format:int64— The timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user sending the command.actionItemobject— Action taken by the user.textstringvaluestring
channelNamestring— Channel in which the message was sent.messageIdstring— Unique ID of the message.originalobject— Original message sent to the user.bodyarrayItems: itemsarrayItems: stylestringtextstringvaluestring
typestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— Unique credential of the Chatbot.timestampinteger— Time command message was sent.toJidstring— JID of the channel or user the message was sent to.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"event_ts": 1,
"callback_url": "",
"callback_token": "",
"payload": {
"accountId": "",
"actionItem": {
"text": "",
"value": ""
},
"channelName": "",
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"type": "",
"items": [
{
"style": "",
"text": "",
"value": ""
}
]
}
]
},
"robotJid": "",
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Responses
Status: 200 Successfully received the webhook event.
interactive_message_editable
- Method:
POST - Path:
interactive_message_editable - Tags: webhook
After a user edits the text of a Chatbot message with Editable Text, the interactive_message_editable event is invoked and a POST request with data about the event is sent to the Bot Endpoint URL specfied in the app's dashboard.
The editItem object displays the changes in edited text with origin and target values.
Request Body
Content-Type: application/json
callback_tokenstring— Use the generated token value with the **callback_url** value to send a one-time asynchronous response. The token only lasts for 30 mins. Include the **callback_token** as a **Bearer token in the Authorization header** of your HTTP request. Example: ``` curl --request POST \ --url '{callback_url}' \ --header 'authorization: Bearer {callback_token}' \ --header 'content-type: application/json'\ --data-raw '{"content":{"head":{"text":"Response Header"},"body":[{"type":"message","text":"This is an asynchronous chatbot response."}]}}'callback_urlstring— Use this endpoint to send a one-time asynchronous response within 30 minutes of receiving the event. <br> The response payload should follow the same structure as the [Send Chatbot Messages](https://developers.zoom.us/docs/api/chatbot/#tag/chatbot-messages/POST/im/chat/messages) API with required property **content** and optional properties *reply_to*, *visible_to_user* and *is_markdown_support*. <br> Include the **callback_token** value from the event as **Bearer token in the Authorization header** of your HTTP POST request.eventstring— The name of the event.event_tsinteger, format:int64— The timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user editing the message.channelNamestring— The channel in which the message was edited.editItemobject— The object containing original and edited value.originstringtargetstring
messageIdstring— The unique ID of the message.originalobject— The original message sent to the user.bodyarrayItems: objecteditablebooleantextstringtypestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— The unique credential of the Chatbot.timestampinteger, format:date-time— The time command message was sent.toJidstring— The JID of the channel or user the message was sent to.userIdstring— The user who sends the command.userJidstring— The JID of user who is sending the command.userNamestring— The user's display name.
Example:
{
"event": "",
"event_ts": 1,
"callback_url": "",
"callback_token": "",
"payload": {
"accountId": "",
"channelName": "",
"editItem": {
"origin": "",
"target": ""
},
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"": {
"editable": true,
"text": "",
"type": ""
}
}
]
},
"robotJid": "",
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Responses
Status: 200 Successfully received the webhook event.
bot_installed
- Method:
POST - Path:
bot_installed - Tags: webhook
To configure a dynamic welcome message:
- Go to your Chatbot's settings and navigate to the Features page.
- Check Your App for the welcome message.
- Save your settings.
After your Chatbot is authorized, Zoom sends an HTTP POST request to your respective Bot Endpoint URL with the following request body:
Request Body
Content-Type: application/json
eventstring— Name of the event.payloadobjectaccountIdstring— The account ID of the user sending the command.robotJidstring— Unique credential of the Chatbot.timestampinteger, format:date-time— Time command message was sent.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"payload": {
"accountId": "",
"robotJid": "",
"timestamp": 1,
"userId": "",
"userJid": "",
"userName": ""
}
}Responses
Status: 200 Successfully received the webhook event.
team_chat.app_mention
- Method:
POST - Path:
team_chat.app_mention - Tags: webhook
This event triggers when a user mentions a specific app in a chat channel. A POST request with the mention message is sent to the Bot Endpoint URL specified in the app's dashboard.
Prerequisites
- A Pro or a higher plan.
Request Body
Content-Type: application/json
event(required)string, possible values:"team_chat.app_mention"— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who sent the app mention message. Will be empty when by_external_user is trueby_external_user(required)boolean— Whether this action was performed by an external user.object(required)object— Information about the app mention message.message(required)string— The sent message's content.message_id(required)string— The message's ID.type(required)string, possible values:"to_channel"— The type of message: * `to_channel` — The message was sent to a chat channel.channel_idstring— The chat channel's ID.channel_namestring— The chat channel's name.filesarray— The attachments file info in sent message's content.Items: file_id(required)string— The attachments file's universally unique identifier (UUID), in base64-encoded format.file_message_type(required)string, possible values:"file", "image", "audio", "audio v2", "code snippet", "screen shot"— The attachments file message typefile_name(required)string— The attachments file's name.file_size(required)integer— The attachments file's size, in bytes.OS_file_type(required)string— The attachments file extension type
rich_textarray— The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages)object. Use this object to include rich text info in sent message's content.Items: end_position(required)integer— The end position of the rich text.format_type(required)string, possible values:"Bold", "Italic", "Strikethrough", "BulletedList", "NumberedList", "Underline", "FontSize", "FontColor", "BackgroundColor", "LeftIndent", "Paragraph", "Quote", "AddLink"— The type of rich text.start_position(required)integer— The start position of the rich text in the message string. For example if the first character at the beginning of the message is bold, the value for this field will be 0.format_attrstring— This field is non-null if the value of the `format_type` field is listed below: 1.`FontSize` value: `s` for small, `m` for medium, or `l` for large font size. 2.`FontColor` and `BackgroundColor` value: only supports RGB value. For example: `FFC0CB` 3.`LeftIndent` value: a positive pixel length. 4.`Paragraph` value: `h1` for Heading 1, `h2` for Heading 2, or `h3` for Heading 3. 5.`AddLink` value: must be a valid URL, with an `http` or `https` prefix. For example: `https://example.com`
operator(required)string, format:email— The email address of the user who sent the app mention message. Will be empty when by_external_user is trueoperator_id(required)string— The user ID of the user who sent the app mention message. Will be empty when by_external_user is trueoperator_member_id(required)string— The member ID of the user who sent the app mention message.
Example:
{
"event": "team_chat.app_mention",
"event_ts": 1,
"payload": {
"account_id": "",
"operator_id": "",
"operator": "",
"operator_member_id": "",
"by_external_user": true,
"object": {
"message_id": "",
"type": "to_channel",
"channel_id": "",
"channel_name": "",
"message": "",
"files": [
{
"OS_file_type": "",
"file_id": "",
"file_message_type": "file",
"file_name": "",
"file_size": 1
}
],
"rich_text": [
{
"start_position": 1,
"end_position": 1,
"format_type": "Bold",
"format_attr": ""
}
]
}
}
}Responses
Status: 200 Successfully received the webhook event.
interactive_message_select
- Method:
POST - Path:
interactive_message_select - Tags: webhook
After a user selects an option in a Chatbot message with a Dropdown, the interactive_message_select event is invoked. The Chatbot sends a POST request associated with this event along with data on the selected option to the Bot Endpoint URL specified in the app's dashboard.
The selectedItems array displays the value chosen by the user from the selected_items array in the original message sent by the Chatbot.
Request Body
Content-Type: application/json
eventstring— Name of the event.payloadobjectaccountIdstring— The account ID of the user sending the command.channelNamestring— Channel in which the message was sent.messageIdstring— Unique ID of the message.originalobject— Original message sent to user.bodyarrayItems: select_itemsarrayItems: textstringvaluestring
textstringtypestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— Unique credential of the Chatbot.selectedItemsarray— Value of item selected by the user.Items: valuestring
timestampinteger, format:date-time— Time command message was sent.toJidstring— JID of the channel or user the message was sent to.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"payload": {
"accountId": "",
"channelName": "",
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"select_items": [
{
"text": "",
"value": ""
}
],
"text": "",
"type": ""
}
]
},
"robotJid": "",
"selectedItems": [
{
"value": ""
}
],
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Responses
Status: 200 Successfully received the webhook event.
Schemas
Team_chat.link_sharedEvent
- Type:
object
event(required)string, possible values:"team_chat.link_shared"— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who sent the app mention message.by_external_user(required)boolean— Whether this action was performed by an external user.object(required)object— Information about the app mention message.date_time(required)string, format:date-time— The date and time at which the message was sent, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.link(required)string— The link content in message.timestamp(required)integer, format:int64— The timestamp for when the message was sent.trigger_id(required)string— The unique identification of this webook event, app can use this trigger_id to invoke openAPItype(required)string, possible values:"to_contact", "to_channel"— The type of message: * `to_contact` — The message was sent to a contact. * `to_channel` — The message was sent to a chat channel.channel_idstring— The chat channel's ID.channel_namestring— The chat channel's name.contact_idstring— The message contact's user ID. If the user ID does not belong to the same account as the current user, this field will be empty.contact_member_idstring— The message contact's member ID.message_idstring— The message's ID. If the preview is provided in an unfurl for a posted message, rather than a link inside the message composer, we will simply ignore this property.reply_main_message_idstring— The ID of the parent message in the chat thread.It's only available if the message is a reply to a main message in a thread.
operator(required)string, format:email— The email address of the user who sent the app mention message.operator_id(required)string— The user ID of the user who sent the app mention message.operator_member_id(required)string— The member ID of the user who sent the app mention message.
response_url(required)string— A callback uri for app to response preview result.
Example:
{
"event": "team_chat.link_shared",
"event_ts": 1,
"response_url": "",
"payload": {
"account_id": "",
"operator_id": "",
"operator": "",
"operator_member_id": "",
"by_external_user": true,
"object": {
"message_id": "",
"type": "to_contact",
"channel_id": "",
"channel_name": "",
"contact_id": "",
"contact_member_id": "",
"trigger_id": "",
"link": "",
"reply_main_message_id": "",
"date_time": "",
"timestamp": 1
}
}
}Interactive_message_fields_editableEvent
- Type:
object
callback_tokenstring— Use the generated token value with the **callback_url** value to send a one-time asynchronous response. The token only lasts for 30 mins. Include the **callback_token** as a **Bearer token in the Authorization header** of your HTTP request. Example: ``` curl --request POST \ --url '{callback_url}' \ --header 'authorization: Bearer {callback_token}' \ --header 'content-type: application/json'\ --data-raw '{"content":{"head":{"text":"Response Header"},"body":[{"type":"message","text":"This is an asynchronous chatbot response."}]}}'callback_urlstring— Use this endpoint to send a one-time asynchronous response within 30 minutes of receiving the event. <br> The response payload should follow the same structure as the [Send Chatbot Messages](https://developers.zoom.us/docs/api/chatbot/#tag/chatbot-messages/POST/im/chat/messages) API with required property **content** and optional properties *reply_to*, *visible_to_user* and *is_markdown_support*. <br> Include the **callback_token** value from the event as **Bearer token in the Authorization header** of your HTTP POST request.eventstring— The name of the event.event_tsinteger, format:int64— The timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user sending the command.channelNamestring— The channel in which the message was sent.fieldEditItemobject— The item that the user edits.currentValuestringkeystringnewValuestring
messageIdstring— The unique ID of the message.originalobject— The original message sent to the user.bodyarrayItems: itemsarrayItems: editablestringkeystringvaluestring
typestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— The unique credential of the Chatbot.timestampstring— The time command message was sent.toJidstring— The JID of the channel or user the message was sent to.userIdstring— The user who sends the command.userJidstring— The JID of user who is sending the command.userNamestring— The user's display name.
Example:
{
"event": "",
"event_ts": 1,
"callback_url": "",
"callback_token": "",
"payload": {
"accountId": "",
"channelName": "",
"fieldEditItem": {
"currentValue": "",
"key": "",
"newValue": ""
},
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"type": "",
"items": [
{
"editable": "",
"value": "",
"key": ""
}
]
}
]
},
"robotJid": "",
"timestamp": "",
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Bot_notificationEvent
- Type:
object
eventstring— Name of the event.event_tsinteger, format:int64— Timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user sending the command.channelNamestring— Channel in which the message was sent.cmdstring— Slash command entered by the user.namestring— Chatbot Name.robotJidstring— Unique credential of the Chatbot.timestampinteger, format:date-time— Time command message was sent.toJidstring— JID of the channel or user the message was sent to.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"event_ts": 1,
"payload": {
"accountId": "",
"channelName": "",
"cmd": "",
"name": "",
"robotJid": "",
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Interactive_message_actionsEvent
- Type:
object
callback_tokenstring— Use the generated token value with the **callback_url** value to send a one-time asynchronous response. The token only lasts for 30 mins. Include the **callback_token** as a **Bearer token in the Authorization header** of your HTTP request. Example: ``` curl --request POST \ --url '{callback_url}' \ --header 'authorization: Bearer {callback_token}' \ --header 'content-type: application/json'\ --data-raw '{"content":{"head":{"text":"Response Header"},"body":[{"type":"message","text":"This is an asynchronous chatbot response."}]}}'callback_urlstring— Use this endpoint to send a one-time asynchronous response within 30 minutes of receiving the event. <br> The response payload should follow the same structure as the [Send Chatbot Messages](https://developers.zoom.us/docs/api/chatbot/#tag/chatbot-messages/POST/im/chat/messages) API with required property **content** and optional properties *reply_to*, *visible_to_user* and *is_markdown_support*. <br> Include the **callback_token** value from the event as **Bearer token in the Authorization header** of your HTTP POST request.eventstring— The name of the event.event_tsinteger, format:int64— The timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user sending the command.actionItemobject— Action taken by the user.textstringvaluestring
channelNamestring— Channel in which the message was sent.messageIdstring— Unique ID of the message.originalobject— Original message sent to the user.bodyarrayItems: itemsarrayItems: stylestringtextstringvaluestring
typestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— Unique credential of the Chatbot.timestampinteger— Time command message was sent.toJidstring— JID of the channel or user the message was sent to.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"event_ts": 1,
"callback_url": "",
"callback_token": "",
"payload": {
"accountId": "",
"actionItem": {
"text": "",
"value": ""
},
"channelName": "",
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"type": "",
"items": [
{
"style": "",
"text": "",
"value": ""
}
]
}
]
},
"robotJid": "",
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Interactive_message_editableEvent
- Type:
object
callback_tokenstring— Use the generated token value with the **callback_url** value to send a one-time asynchronous response. The token only lasts for 30 mins. Include the **callback_token** as a **Bearer token in the Authorization header** of your HTTP request. Example: ``` curl --request POST \ --url '{callback_url}' \ --header 'authorization: Bearer {callback_token}' \ --header 'content-type: application/json'\ --data-raw '{"content":{"head":{"text":"Response Header"},"body":[{"type":"message","text":"This is an asynchronous chatbot response."}]}}'callback_urlstring— Use this endpoint to send a one-time asynchronous response within 30 minutes of receiving the event. <br> The response payload should follow the same structure as the [Send Chatbot Messages](https://developers.zoom.us/docs/api/chatbot/#tag/chatbot-messages/POST/im/chat/messages) API with required property **content** and optional properties *reply_to*, *visible_to_user* and *is_markdown_support*. <br> Include the **callback_token** value from the event as **Bearer token in the Authorization header** of your HTTP POST request.eventstring— The name of the event.event_tsinteger, format:int64— The timestamp (in milliseconds since epcoch) at which the event occured. The value of this field is returned in long(int64) format.payloadobjectaccountIdstring— The account ID of the user editing the message.channelNamestring— The channel in which the message was edited.editItemobject— The object containing original and edited value.originstringtargetstring
messageIdstring— The unique ID of the message.originalobject— The original message sent to the user.bodyarrayItems: objecteditablebooleantextstringtypestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— The unique credential of the Chatbot.timestampinteger, format:date-time— The time command message was sent.toJidstring— The JID of the channel or user the message was sent to.userIdstring— The user who sends the command.userJidstring— The JID of user who is sending the command.userNamestring— The user's display name.
Example:
{
"event": "",
"event_ts": 1,
"callback_url": "",
"callback_token": "",
"payload": {
"accountId": "",
"channelName": "",
"editItem": {
"origin": "",
"target": ""
},
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"": {
"editable": true,
"text": "",
"type": ""
}
}
]
},
"robotJid": "",
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}Bot_installedEvent
- Type:
object
eventstring— Name of the event.payloadobjectaccountIdstring— The account ID of the user sending the command.robotJidstring— Unique credential of the Chatbot.timestampinteger, format:date-time— Time command message was sent.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"payload": {
"accountId": "",
"robotJid": "",
"timestamp": 1,
"userId": "",
"userJid": "",
"userName": ""
}
}Team_chat.app_mentionEvent
- Type:
object
event(required)string, possible values:"team_chat.app_mention"— The name of the event.event_ts(required)integer, format:int64— A timestamp at which the event occurred.payload(required)objectaccount_id(required)string— The account ID of the user who sent the app mention message. Will be empty when by_external_user is trueby_external_user(required)boolean— Whether this action was performed by an external user.object(required)object— Information about the app mention message.message(required)string— The sent message's content.message_id(required)string— The message's ID.type(required)string, possible values:"to_channel"— The type of message: * `to_channel` — The message was sent to a chat channel.channel_idstring— The chat channel's ID.channel_namestring— The chat channel's name.filesarray— The attachments file info in sent message's content.Items: file_id(required)string— The attachments file's universally unique identifier (UUID), in base64-encoded format.file_message_type(required)string, possible values:"file", "image", "audio", "audio v2", "code snippet", "screen shot"— The attachments file message typefile_name(required)string— The attachments file's name.file_size(required)integer— The attachments file's size, in bytes.OS_file_type(required)string— The attachments file extension type
rich_textarray— The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages)object. Use this object to include rich text info in sent message's content.Items: end_position(required)integer— The end position of the rich text.format_type(required)string, possible values:"Bold", "Italic", "Strikethrough", "BulletedList", "NumberedList", "Underline", "FontSize", "FontColor", "BackgroundColor", "LeftIndent", "Paragraph", "Quote", "AddLink"— The type of rich text.start_position(required)integer— The start position of the rich text in the message string. For example if the first character at the beginning of the message is bold, the value for this field will be 0.format_attrstring— This field is non-null if the value of the `format_type` field is listed below: 1.`FontSize` value: `s` for small, `m` for medium, or `l` for large font size. 2.`FontColor` and `BackgroundColor` value: only supports RGB value. For example: `FFC0CB` 3.`LeftIndent` value: a positive pixel length. 4.`Paragraph` value: `h1` for Heading 1, `h2` for Heading 2, or `h3` for Heading 3. 5.`AddLink` value: must be a valid URL, with an `http` or `https` prefix. For example: `https://example.com`
operator(required)string, format:email— The email address of the user who sent the app mention message. Will be empty when by_external_user is trueoperator_id(required)string— The user ID of the user who sent the app mention message. Will be empty when by_external_user is trueoperator_member_id(required)string— The member ID of the user who sent the app mention message.
Example:
{
"event": "team_chat.app_mention",
"event_ts": 1,
"payload": {
"account_id": "",
"operator_id": "",
"operator": "",
"operator_member_id": "",
"by_external_user": true,
"object": {
"message_id": "",
"type": "to_channel",
"channel_id": "",
"channel_name": "",
"message": "",
"files": [
{
"OS_file_type": "",
"file_id": "",
"file_message_type": "file",
"file_name": "",
"file_size": 1
}
],
"rich_text": [
{
"start_position": 1,
"end_position": 1,
"format_type": "Bold",
"format_attr": ""
}
]
}
}
}Interactive_message_selectEvent
- Type:
object
eventstring— Name of the event.payloadobjectaccountIdstring— The account ID of the user sending the command.channelNamestring— Channel in which the message was sent.messageIdstring— Unique ID of the message.originalobject— Original message sent to user.bodyarrayItems: select_itemsarrayItems: textstringvaluestring
textstringtypestring
headobjectsub_headobjecttextstring
textstring
robotJidstring— Unique credential of the Chatbot.selectedItemsarray— Value of item selected by the user.Items: valuestring
timestampinteger, format:date-time— Time command message was sent.toJidstring— JID of the channel or user the message was sent to.userIdstring— User sending the command.userJidstring— JID of user who is sending the command.userNamestring— User's display name.
Example:
{
"event": "",
"payload": {
"accountId": "",
"channelName": "",
"messageId": "",
"original": {
"head": {
"sub_head": {
"text": ""
},
"text": ""
},
"body": [
{
"select_items": [
{
"text": "",
"value": ""
}
],
"text": "",
"type": ""
}
]
},
"robotJid": "",
"selectedItems": [
{
"value": ""
}
],
"timestamp": 1,
"toJid": "",
"userId": "",
"userJid": "",
"userName": ""
}
}