- name
- google-chat
- description
- Google Chat: Read/search Google Chat spaces and messages, send messages and replies with File Manager attachments, download Chat attachments, and manage reactions as the connected user. Use when an agent needs google chat, search accessible spaces, find direct message spaces, read and search messages, send messages and replies, add reaction, message name, emoji unicode through AgentPMT-hosted remote tool calls. Discovery terms: google chat, search accessible spaces, find direct message spaces.
- version
- 1.0.1
- homepage
- https://www.agentpmt.com/marketplace/google-chat
- compatibility
- Agent instructions for AgentPMT-hosted remote tool calls. Follow this skill body for supported account, wallet, and setup routes. No local command runtime is declared.
- metadata
- {"author":"agentpmt","openclaw":{"homepage":"https://www.agentpmt.com/marketplace/google-chat"}}
# Google Chat
## Freshness
Last updated: `2026-06-29`.
If the current date is more than 7 days after the last updated date, reinstall this skill from skills.sh or ClawHub before relying on endpoints, schemas, setup steps, or examples.
## What This Tool Does
Bridge your agent to your Google Chat spaces—post updates, keep threads moving, and turn routine teamwork into quick, automated nudges that keep everyone in sync. Supports reactions, direct messaging, and posting and reading in spaces. All actions take place as the connected user.
## Product Instructions
### Google Chat
Read spaces, list and search messages, send messages, react to messages, and move attachments between Google Chat and AgentPMT File Manager.
This tool uses the existing AgentPMT Google OAuth scopes only:
- `chat.spaces.readonly`
- `chat.messages`
- `chat.messages.reactions`
It does not manage members or users, does not create/update/delete spaces, does not use admin access, and does not expose custom emoji actions. Member listing requires `chat.memberships.readonly` or `chat.memberships`, which this connection does not currently have.
#### Parameters
- `action` (string, required): Action to perform. Default: `get_instructions`
- `space` (string): Space name or ID, such as `"spaces/AAA"` or `"AAA"`
- `message_name` (string): Message resource name, or short message ID when `space` is provided
- `reaction_name` (string): Reaction resource name, or short reaction ID when `message_name` is provided
- `attachment_name` (string): Attachment resource name, short attachment ID, or attachment `contentName` when `message_name` is provided
- `media_resource_name` (string): Direct `attachmentDataRef.resourceName` for Chat media download
- `user_name` (string): User resource name, such as `"users/123"`
- `query` (string): Search query for space/message/attachment search actions
- `text` (string): Message text
- `cards_v2` (array): Cards v2 payload
- `thread_name` (string): Existing Chat thread resource name
- `thread_key` (string): Thread key for message creation
- `message_reply_option` (string): `REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD` or `REPLY_MESSAGE_OR_FAIL`
- `message_request_id` (string): Google Chat `requestId` for idempotent message creation
- `message_id` (string): Client-assigned Google Chat message ID
- `notification_type` (string): `NOTIFICATION_TYPE_NONE`, `NOTIFICATION_TYPE_FORCE_NOTIFY`, or `NOTIFICATION_TYPE_SILENT`
- `page_size` (integer, default 50): Max results per page. Reactions max is 200.
- `page_token` (string): Pagination token
- `filter` (string): Google Chat filter query
- `order_by` (string): Sort order
- `show_deleted` (boolean, default false): Include deleted messages in message list/search
- `max_results` (integer, default 25): Max client-side search matches
- `scan_limit` (integer, default 500): Max messages scanned by bounded client-side search
- `case_sensitive` (boolean, default false): Use case-sensitive client-side search
- `search_fields` (array): Fields searched by `search_messages`: `text`, `formatted_text`, `argument_text`, `sender`, `attachment_name`
- `emoji_unicode` (string): Unicode emoji for `add_reaction`
- `force` (boolean, default false): For `delete_message`, also delete threaded replies
- `file_ids` (array): AgentPMT File Manager file IDs to upload and attach to `create_message` or `reply_message`
- `source_file_id` (string): AgentPMT File Manager file ID for `upload_attachment`
- `filename` (string): Optional upload filename override
- `content_type` (string): Optional upload MIME type override
- `max_upload_bytes` (integer, default 26214400): Max File Manager bytes uploaded to Chat
- `max_bytes` (integer, default 26214400): Max Chat attachment bytes downloaded
- `output_filename` (string): File Manager filename for downloaded attachment
- `expiration_days` (integer, default 7): Stored download expiration, 1-7 days
#### Sorting
`list_messages` sends `order_by: "create_time DESC"` by default, so messages are newest first. Send `order_by: "create_time ASC"` for oldest first.
Google also accepts legacy camel-case sort aliases from this tool:
```json
{"action":"list_messages","space":"spaces/AAA","order_by":"createTime DESC"}
```
The tool normalizes that to official Google Chat syntax.
#### Search
`search_spaces` is Google server-side search. Non-admin Google Chat search needs a display-name query for useful results:
```json
{"action":"search_spaces","query":"display_name:\"Launch\"","order_by":"relevance DESC"}
```
`search_messages` and `search_attachments` are bounded client-side searches within one space. They page through accessible messages using `list_messages`, scan up to `scan_limit`, and return `scan_limit_reached` when the scan stopped before the space was exhausted. These are not global Google-side full-text search endpoints.
#### File Upload
Preferred path: attach File Manager files directly when creating or replying to a message.
```json
{
"action": "create_message",
"space": "spaces/AAA",
"text": "Attached is the latest report.",
"file_ids": ["file-manager-id-1"]
}
```
Advanced path: use `upload_attachment` to stage a File Manager file in Chat and return an `attachment_data_ref`.
```json
{"action":"upload_attachment","space":"spaces/AAA","source_file_id":"file-manager-id-1"}
```
File uploads require normal authenticated budget context. Admin bypass cannot read budget-scoped File Manager files.
#### File Download
List attachments on a message:
```json
{"action":"list_message_attachments","message_name":"spaces/AAA/messages/BBB"}
```
Download an attachment into AgentPMT File Manager:
```json
{
"action": "download_attachment_to_storage",
"message_name": "spaces/AAA/messages/BBB",
"attachment_name": "spaces/AAA/messages/BBB/attachments/ATT",
"output_filename": "report.pdf"
}
```
If you already have `attachment.attachmentDataRef.resourceName`, you can download directly:
```json
{
"action": "download_attachment_to_storage",
"media_resource_name": "spaces/AAA/messages/BBB/attachments/ATT/media",
"output_filename": "report.pdf"
}
```
`get_attachment` reads the parent message and finds the attachment in message data. It does not call the bot-only `spaces.messages.attachments.get` endpoint.
#### Actions
##### `get_instructions`
Returns this documentation.
```json
{"action":"get_instructions"}
```
##### `list_spaces`
Lists spaces the authenticated user has access to.
Required: none
Optional: `page_size`, `page_token`, `filter`
```json
{"action":"list_spaces","page_size":25}
```
```json
{"action":"list_spaces","filter":"space_type = \"SPACE\""}
```
##### `get_space`
Gets a space by resource name or short ID.
Required: `space`
```json
{"action":"get_space","space":"spaces/AAA"}
```
##### `search_spaces`
Searches accessible spaces with Google Chat server-side space search. Admin access is not exposed.
Required: `query`
Optional: `page_size`, `page_token`, `order_by`
```json
{"action":"search_spaces","query":"display_name:\"Launch\"","order_by":"relevance DESC"}
```
##### `find_direct_message`
Finds the direct message space with a user.
Required: `user_name`
```json
{"action":"find_direct_message","user_name":"users/123456789"}
```
##### `list_messages`
Lists messages in a space. Defaults to newest first.
Required: `space`
Optional: `page_size`, `page_token`, `filter`, `order_by`, `show_deleted`
```json
{"action":"list_messages","space":"spaces/AAA","page_size":20}
```
```json
{
"action": "list_messages",
"space": "spaces/AAA",
"filter": "create_time > \"2026-01-01T00:00:00Z\"",
"order_by": "create_time ASC"
}
```
##### `get_message`
Gets a message by resource name or by short message ID with `space`.
Required: `message_name`
Optional: `space`
```json
{"action":"get_message","message_name":"spaces/AAA/messages/BBB"}
```
##### `search_messages`
Bounded client-side search within one space.
Required: `space`, `query`
Optional: `filter`, `order_by`, `show_deleted`, `page_size`, `max_results`, `scan_limit`, `case_sensitive`, `search_fields`
```json
{"action":"search_messages","space":"spaces/AAA","query":"invoice","max_results":10,"scan_limit":500}
```
```json
{
"action": "search_messages",
"space": "spaces/AAA",
"query": "Taylor",
"search_fields": ["sender"],
"order_by": "create_time DESC"
}
```
##### `create_message`
Sends a new message to a space. At least one of `text`, `cards_v2`, or `file_ids` is required.
Required: `space`, plus one content field
Optional: `thread_name`, `thread_key`, `message_reply_option`, `message_request_id`, `message_id`, `notification_type`, `file_ids`, `max_upload_bytes`
```json
{"action":"create_message","space":"spaces/AAA","text":"Hello from the agent."}
```
```json
{
"action": "create_message",
"space": "spaces/AAA",
"text": "Here is the file.",
"file_ids": ["file-manager-id-1"]
}
```
##### `reply_message`
Replies in the original message's thread. At least one of `text`, `cards_v2`, or `file_ids` is required.
Required: `message_name`, plus one content field
Optional: `space`, `message_reply_option`, `message_request_id`, `message_id`, `notification_type`, `file_ids`, `max_upload_bytes`
```json
{"action":"reply_message","message_name":"spaces/AAA/messages/BBB","text":"Got it."}
```
```json
{
"action": "reply_message",
"message_name": "spaces/AAA/messages/BBB",
"text": "Attached.",
"file_ids": ["file-manager-id-1"]
}
```
##### `update_message`
Edits an existing message. Only `text` and `cards_v2` updates are exposed.
Required: `message_name`, plus one of `text` or `cards_v2`
Optional: `space`
```json
{"action":"update_message","message_name":"spaces/AAA/messages/BBB","text":"Updated text"}
```
##### `delete_message`
Deletes a message.
Required: `message_name`
Optional: `space`, `force`
```json
{"action":"delete_message","message_name":"spaces/AAA/messages/BBB"}
```
```json
{"action":"delete_message","message_name":"spaces/AAA/messages/BBB","force":true}
```
##### `list_reactions`
Lists reactions on a message. `page_size` must be 200 or less.
Required: `message_name`
Auf GitHub ansehen