All integrations

Google Chat

MESSAGING · MESSAGING

Post and read in the spaces that person already belongs to.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

googlechat_delete_v1_customemojis_by_customemojisidWRITE

Deletes a custom emoji. By default, users can only delete custom emoji they created. Emoji managers assigned by the administrator can delete any custom emoji in the organization. See Learn about custom emojis in Google Chat. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. via DELETE /v1/customEmojis/{customEmojisId}

chat.customemojis
googlechat_delete_v1_spaces_by_spacesidWRITE

Deletes a named space. Always performs a cascading delete, which means that the space's child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see Delete a space. via DELETE /v1/spaces/{spacesId}

chat.delete
googlechat_delete_v1_spaces_by_spacesid_members_by_membersidWRITE

Deletes a membership. For an example, see Remove a user or a Google Chat app from a space. via DELETE /v1/spaces/{spacesId}/members/{membersId}

chat.memberships
googlechat_delete_v1_spaces_by_spacesid_messagepins_by_messagepinsidWRITE

Deletes a message pin. via DELETE /v1/spaces/{spacesId}/messagePins/{messagePinsId}

chat.spaces.pins
googlechat_delete_v1_spaces_by_spacesid_messages_by_messagesidWRITE

Deletes a message. For an example, see Delete a message. via DELETE /v1/spaces/{spacesId}/messages/{messagesId}

chat.messages
googlechat_delete_v1_spaces_by_spacesid_messages_by_messagesid_reactions_by_reactionsidWRITE

Deletes a reaction to a message. For an example, see Delete a reaction. via DELETE /v1/spaces/{spacesId}/messages/{messagesId}/reactions/{reactionsId}

chat.messages.reactions
googlechat_delete_v1_users_by_usersid_sections_by_sectionsidWRITE

Deletes a section of type `CUSTOM_SECTION`. If the section contains items, such as spaces, the items are moved to Google Chat's default sections and are not deleted. For details, see Create and organize sections in Google Chat. via DELETE /v1/users/{usersId}/sections/{sectionsId}

chat.users.sections
googlechat_get_v1_customemojisREAD

Lists custom emojis visible to the authenticated user. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. via GET /v1/customEmojis

chat.customemojis.readonly
googlechat_get_v1_customemojis_by_customemojisidREAD

Returns details about a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. via GET /v1/customEmojis/{customEmojisId}

chat.customemojis.readonly
googlechat_get_v1_spacesREAD

Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see List spaces. via GET /v1/spaces

chat.spaces.readonly
googlechat_get_v1_spaces_by_spacesidREAD

Returns details about a space. For an example, see Get details about a space. via GET /v1/spaces/{spacesId}

chat.spaces.readonly
googlechat_get_v1_spaces_by_spacesid_membersREAD

Lists memberships in a space. For an example, see List users and Google Chat apps in a space. Listing memberships with app authentication lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with User authentication lists memberships in spaces that the authenticated user has access to. via GET /v1/spaces/{spacesId}/members

chat.memberships.readonly
googlechat_get_v1_spaces_by_spacesid_members_by_membersidREAD

Returns details about a membership. For an example, see Get details about a user's or Google Chat app's membership. via GET /v1/spaces/{spacesId}/members/{membersId}

chat.memberships.readonly
googlechat_get_v1_spaces_by_spacesid_messagepinsREAD

Lists message pins in a space. Users can pin important messages in spaces for easy access. For more information, see Pin or unpin a conversation in Google Chat. via GET /v1/spaces/{spacesId}/messagePins

chat.spaces.pins.readonly
googlechat_get_v1_spaces_by_spacesid_messagesREAD

Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. System messages, like those announcing new space members, aren't included. If you list messages from a space with no messages, the response is an empty object. When using a REST/HTTP interface, the response contains an empty JSON object, `{}`. For an example, see List messages. via GET /v1/spaces/{spacesId}/messages

chat.messages.readonly
googlechat_get_v1_spaces_by_spacesid_messages_by_messagesidREAD

Returns details about a message. For an example, see Get details about a message. via GET /v1/spaces/{spacesId}/messages/{messagesId}

chat.messages.readonly
googlechat_get_v1_spaces_by_spacesid_messages_by_messagesid_reactionsREAD

Lists reactions to a message. For an example, see List reactions for a message. via GET /v1/spaces/{spacesId}/messages/{messagesId}/reactions

chat.messages.reactions.readonly
googlechat_get_v1_spaces_by_spacesid_spaceeventsREAD

Lists events from a Google Chat space. For each event, the payload contains the most recent version of the Chat resource. For example, if you list events about new space members, the server returns `Membership` resources that contain the latest membership details. If new members were removed during the requested period, the event payload contains an empty `Membership` resource. via GET /v1/spaces/{spacesId}/spaceEvents

chat.spaces.readonly
googlechat_get_v1_spaces_by_spacesid_spaceevents_by_spaceeventsidREAD

Returns an event from a Google Chat space. The event payload contains the most recent version of the resource that changed. For example, if you request an event about a new message but the message was later updated, the server returns the updated `Message` resource in the event payload. Note: The `permissionSettings` field is not returned in the Space object of the Space event data for this request. via GET /v1/spaces/{spacesId}/spaceEvents/{spaceEventsId}

chat.spaces.readonly
googlechat_get_v1_spaces_finddirectmessageREAD

Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see Find a direct message. With app authentication, returns the direct message space between the specified user and the calling Chat app. With user authentication, returns the direct message space between the specified user and the authenticated user. via GET /v1/spaces:findDirectMessage

chat.spaces.readonly
googlechat_get_v1_spaces_findgroupchatsREAD

Returns all spaces with `spaceType == GROUP_CHAT`, whose human memberships contain exactly the calling user, and the users specified in `FindGroupChatsRequest.users`. Only members that have joined the conversation are supported. For an example, see Find group chats. If the calling user blocks, or is blocked by, some users, and no spaces with the entire specified set of users are found, this method returns spaces that don't include the blocked or blocking users. The specified set of users must contain only human (non-app) memberships. A request that contains non-human users doesn't return any spaces. via GET /v1/spaces:findGroupChats

chat.memberships.readonly
googlechat_get_v1_spaces_searchREAD

Returns a list of spaces in a Google Workspace organization. For an example, see Search for and manage spaces. When `use_admin_access` is set to `false`, the results are limited to spaces where the calling user is a joined member. To search with administrator privileges, set `use_admin_access` to `true`. via GET /v1/spaces:search

chat.admin.spaces.readonly
googlechat_get_v1_users_by_usersid_availabilityREAD

Returns availability information for a human user in Google Chat. For example, this can be used to check if a user is online or away, or to retrieve their custom status message. This method only retrieves the authenticated user's availability. via GET /v1/users/{usersId}/availability

chat.users.availability.readonly
googlechat_get_v1_users_by_usersid_sectionsREAD

Lists sections available to the Chat user. Sections help users group their conversations and customize the list of spaces displayed in Chat navigation panel. For details, see Create and organize sections in Google Chat. via GET /v1/users/{usersId}/sections

chat.users.sections.readonly
googlechat_get_v1_users_by_usersid_sections_by_sectionsid_itemsREAD

Lists items in a section. Only spaces can be section items. For details, see Create and organize sections in Google Chat. via GET /v1/users/{usersId}/sections/{sectionsId}/items

chat.users.sections.readonly
googlechat_get_v1_users_by_usersid_spaces_by_spacesid_spacenotificationsettingREAD

Gets the space notification setting. For an example, see Get the caller's space notification setting. via GET /v1/users/{usersId}/spaces/{spacesId}/spaceNotificationSetting

chat.users.spacesettings
googlechat_get_v1_users_by_usersid_spaces_by_spacesid_spacereadstateREAD

Returns details about a user's read state within a space, used to identify read and unread messages. For an example, see Get details about a user's space read state. via GET /v1/users/{usersId}/spaces/{spacesId}/spaceReadState

chat.users.readstate.readonly
googlechat_get_v1_users_by_usersid_spaces_by_spacesid_threads_by_threadsid_threadreadstateREAD

Returns details about a user's read state within a thread, used to identify read and unread messages. For an example, see Get details about a user's thread read state. via GET /v1/users/{usersId}/spaces/{spacesId}/threads/{threadsId}/threadReadState

chat.users.readstate.readonly
googlechat_patch_v1_spaces_by_spacesidWRITE

Updates a space. For an example, see Update a space. If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name. via PATCH /v1/spaces/{spacesId}

chat.spaces
googlechat_patch_v1_spaces_by_spacesid_members_by_membersidWRITE

Updates a membership. For an example, see Update a user's membership in a space. via PATCH /v1/spaces/{spacesId}/members/{membersId}

chat.memberships
googlechat_patch_v1_spaces_by_spacesid_messages_by_messagesidWRITE

Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see Update a message. via PATCH /v1/spaces/{spacesId}/messages/{messagesId}

chat.messages
googlechat_patch_v1_users_by_usersid_availabilityWRITE

Updates availability information for a human user. Only the `custom_status` field can be updated through this method. This method only updates the authenticated user's availability. via PATCH /v1/users/{usersId}/availability

chat.users.availability
googlechat_patch_v1_users_by_usersid_sections_by_sectionsidWRITE

Updates a section. Only sections of type `CUSTOM_SECTION` can be updated. For details, see Create and organize sections in Google Chat. via PATCH /v1/users/{usersId}/sections/{sectionsId}

chat.users.sections
googlechat_patch_v1_users_by_usersid_spaces_by_spacesid_spacenotificationsettingWRITE

Updates the space notification setting. For an example, see Update the caller's space notification setting. via PATCH /v1/users/{usersId}/spaces/{spacesId}/spaceNotificationSetting

chat.users.spacesettings
googlechat_patch_v1_users_by_usersid_spaces_by_spacesid_spacereadstateWRITE

Updates a user's read state within a space, used to identify read and unread messages. For an example, see Update a user's space read state. via PATCH /v1/users/{usersId}/spaces/{spacesId}/spaceReadState

chat.users.readstate
googlechat_post_v1_customemojisWRITE

Creates a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. via POST /v1/customEmojis

chat.customemojis
googlechat_post_v1_spacesWRITE

Creates a space. Can be used to create a named space, or a group chat in `Import mode`. For an example, see Create a space. via POST /v1/spaces

chat.spaces.create
googlechat_post_v1_spaces_by_spacesid_membersWRITE

Creates a membership for the calling Chat app, a user, or a Google Group. Creating memberships for other Chat apps isn't supported. When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. via POST /v1/spaces/{spacesId}/members

chat.memberships
googlechat_post_v1_spaces_by_spacesid_messagepinsWRITE

Creates a message pin. via POST /v1/spaces/{spacesId}/messagePins

chat.spaces.pins
googlechat_post_v1_spaces_by_spacesid_messagesWRITE

Creates a message in a Google Chat space. For an example, see Send a message. via POST /v1/spaces/{spacesId}/messages

chat.messages.create
googlechat_post_v1_spaces_by_spacesid_messages_by_messagesid_reactionsWRITE

Creates a reaction and adds it to a message. For an example, see Add a reaction to a message. via POST /v1/spaces/{spacesId}/messages/{messagesId}/reactions

chat.messages.reactions.create
googlechat_post_v1_spaces_by_spacesid_messages_searchWRITE

Searches for messages in Google Chat that the calling user has access to. Returns a list of messages matching the search criteria. To search across all spaces the user has access to, set `parent` to `spaces/-`. Using any other value for `parent` results in an `INVALID_ARGUMENT` error. The returned messages have their `name` field populated with the full resource name, which includes the specific `space` in which the message resides. This API doesn't return all message types. The types of messages listed below aren't included in the response. Use ListMessages to list all messages. - Private Messages that are visible to the authenticated user. - Messages posted by Chat apps in spaces or group chats. - Messages in a Chat app DM. - Messages from blocked users. - Messages in spaces that the caller has muted. via POST /v1/spaces/{spacesId}/messages:search

chat.messages.readonly
googlechat_post_v1_spaces_setupWRITE

Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see Set up a space with initial members. To specify the human members to add, add memberships with the appropriate `membership.member.name`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`. To specify the Google groups to add, add memberships with the appropriate `membership.group_member.name`. To add or invite a Google group, use `groups/{group}`, where `{group}` is the `id` for the group from the Cloud Identity Groups API. For example, you can use Cloud Identity Groups lookup API to retrieve the ID `123456789` for group email `group@example.com`, then you can add the group to the space by setting the `membership.group_member.name` to `groups/123456789`. Group email is not supported, and Google groups can only be added as members in named spaces. For a named space or group chat, if the caller blocks, or is blocked by some members, or doesn't have permission to add some members, then those members aren't added to the created space. To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn't created. To create a DM between the calling user and the calling app, set `Space.singleUserBotDm` to `true` and don't specify any memberships. You can only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see Invite or add a user or app to a space. If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned. Spaces with threaded replies aren't supported. If you receive the error message `ALREADY_EXISTS` when setting up a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. via POST /v1/spaces:setup

chat.spaces.create
googlechat_post_v1_users_by_usersid_availability_markasactiveWRITE

Marks user as `ACTIVE` in Google Chat. Sets the user's availability state to `ACTIVE`. The `ACTIVE` state lasts until the specified expiration, at which point the user's state becomes `AWAY`. Note that if the user is actively using Chat, the `ACTIVE` state duration may extend beyond the provided expiration. This method only updates the authenticated user's availability. via POST /v1/users/{usersId}/availability:markAsActive

chat.users.availability
googlechat_post_v1_users_by_usersid_availability_markasawayWRITE

Marks user as `AWAY` in Google Chat. Sets the user's state to away and is not affected by the user's activity. This method only updates the authenticated user's availability. via POST /v1/users/{usersId}/availability:markAsAway

chat.users.availability
googlechat_post_v1_users_by_usersid_availability_markasdonotdisturbWRITE

Marks user as `DO_NOT_DISTURB` in Google Chat. Sets a user's availability state to `DO_NOT_DISTURB` until a specified expiration time. When in `DO_NOT_DISTURB`, users typically won't receive notifications. This method only updates the authenticated user's availability. via POST /v1/users/{usersId}/availability:markAsDoNotDisturb

chat.users.availability
googlechat_post_v1_users_by_usersid_sectionsWRITE

Creates a section in Google Chat. Sections help users group conversations and customize the list of spaces displayed in Chat navigation panel. Only sections of type `CUSTOM_SECTION` can be created. For details, see Create and organize sections in Google Chat. via POST /v1/users/{usersId}/sections

chat.users.sections
googlechat_post_v1_users_by_usersid_sections_by_sectionsid_items_by_itemsid_moveWRITE

Moves an item from one section to another. For example, if a section contains spaces, this method can be used to move a space to a different section. For details, see Create and organize sections in Google Chat. via POST /v1/users/{usersId}/sections/{sectionsId}/items/{itemsId}:move

chat.users.sections
googlechat_post_v1_users_by_usersid_sections_by_sectionsid_positionWRITE

Changes the sort order of a section. For details, see Create and organize sections in Google Chat. via POST /v1/users/{usersId}/sections/{sectionsId}:position

chat.users.sections
googlechat_put_v1_spaces_by_spacesid_messages_by_messagesidWRITE

Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see Update a message. via PUT /v1/spaces/{spacesId}/messages/{messagesId}

chat.messages

Put Google Chat behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.