Team Chat API and webhook privacy updates

Team Chat API and Webhook privacy updates

On March 18th, 2023, Zoom changed the behavior of the Zoom Team Chat API and Webhooks. From now on, the IDs of external users are empty. Identifiers only have values if they are users under your account. We recommend that developers leverage the new member_id field in the response.

Affected user level APIs

GET /chat/users/{userId}/messages

Added sender_member_id and at_items.at_contact_member_id fields. These fields have a memberID as value in the response.

The return at_items.at_contact returns an empty response for external users.

GET /chat/users/{userId}/messages/{messageId}

Added reactions.member_ids and sender_member_id fields to the response. Reactions.member_ids are an array of memberIDs, while sender_member_id is a single memberID.

The at_items.at_contact returns an empty string for external users. The at_items.at_contact_member_id has memberID as a value.

GET /chat/channels/{channelId}/members

Added members.member_id field to the response with memberID as the value.

When the member is not from the same account as the channel owner, the members.id field returns an empty string.

GET /chat/users/me/contacts/{contactId}

Added member_id field to the response with memberID as the value. When the memberID is a path parameter, the member’s contact details are returned in the response.

GET /chat/users/{userId}/channels/{channelId}/admins

Added admins.member_id field to the response with memberID as the value. When the admin is not from the same account as the channel owner, the admins.id field returns an empty string.

DELETE /chat/channels/{channelId}/members/{memberId}

When you remove a member or batch remove members and the memberID is the path parameter and the caller has required permissions, then that channel member should be removed.

PATCH /chat/users/{userId}/messages/{messageId}/status

When you mark a message read or unread, the to_contact field supports memberID as input.

PUT /chat/users/{userId}/messages/{messageId}

When you update a message, the to_contact field supports memberID as input.

POST /chat/channels/{channelId}/members

When you invite channel members, the new member_ids field is returned with the memberID array as the value in the response.

POST /chat/channels/{channelId}/members/me

When you join a channel, the new member_id field is returned with the memberID as the value in the response.

GET /contacts

When you search company contacts, the new member_ids field returns with the memberID as the value in the response.

GET /chat/users/me/contacts

When you list a user’s contacts, the new member_ids field returns with the memberID as value in the response.

GET /chat/users/me/contacts/{contactId}

Added the member_id field with memberID as the value in the response. When called with memberID as path parameter, the member’s contact details return in the response.

GET /chat/users/{userId}/messages

When you list a user's chat messages, the to_contact field should support memberID as input.

GET /chat/users/{userId}/messages/{messageId}

When you get a message, the to_contact field should support memberID as input.

Affected account level APIs

GET /report/chat/sessions/{sessionId} When you get chat messages reports, the new sender_member_id field returns with memberID as the value in the response.

GET /chat/users/{userId}/channels/{channelId}/admins When you list channel administrators and the admin is not from the same account as the channel owner, the admins.id field should return an empty string.

GET /chat/users/{userId}/channels/{channelId}/admins When you list channel administrators, the new admins.member_id field returns with memberID as value in the response.

GET /chat/users/{userId}/channels/{channelId}/members

Added members.member_id field with memberID as the value in the response. When the member is not from the same account as the channel owner, the members.id field should return an empty string.

DELETE /chat/users/{userId}/channels/{channelId}/members/{memberId} When you remove a member with the memberID as path parameter, and the caller has required permissions, the channel member should be removed.

DELETE /chat/users/{userId}/channels/{channelId}/admins When you batch demote channel administrators with the administrators’ memberID in the adminIds parameter, and the caller has the required permissions, those channel administrators should be demoted to channel members.

POST /chat/users/{userId}/channels/{channelId}/admins When you promote channel members to administrators, the new member_ids field returns with the memberID array as the value in the response.

POST /chat/users/{userId}/channels/{channelId}/members When you invite channel members, the new member_ids field returns with the memberID array as the value in the response.

Webhooks

chat_channel webhook

chat_message webhook