--- 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` Optional: `space`, `page_size`, `page_token`, `filter` ```json {"action":"list_reactions","message_name":"spaces/AAA/messages/BBB"} ``` ```json {"action":"list_reactions","message_name":"spaces/AAA/messages/BBB","filter":"emoji.unicode = \"\\uD83D\\uDE42\""} ``` ##### `add_reaction` Adds an emoji reaction to a message. Required: `message_name`, `emoji_unicode` Optional: `space` ```json {"action":"add_reaction","message_name":"spaces/AAA/messages/BBB","emoji_unicode":"\\uD83D\\uDC4D"} ``` ##### `delete_reaction` Deletes a reaction. Required: `reaction_name` Optional: `message_name`, `space` ```json {"action":"delete_reaction","reaction_name":"spaces/AAA/messages/BBB/reactions/RRR"} ``` ##### `list_message_attachments` Lists attachments in a message. Required: `message_name` Optional: `space` ```json {"action":"list_message_attachments","message_name":"spaces/AAA/messages/BBB"} ``` ##### `get_attachment` Gets attachment metadata from the parent message payload. Required: `attachment_name` Optional: `message_name`, `space` ```json { "action": "get_attachment", "message_name": "spaces/AAA/messages/BBB", "attachment_name": "report.pdf" } ``` ```json {"action":"get_attachment","attachment_name":"spaces/AAA/messages/BBB/attachments/ATT"} ``` ##### `search_attachments` Bounded client-side attachment search within one space. Required: `space`, `query` Optional: `filter`, `order_by`, `page_size`, `max_results`, `scan_limit`, `case_sensitive` ```json {"action":"search_attachments","space":"spaces/AAA","query":"report","max_results":10} ``` ##### `upload_attachment` Uploads a File Manager file into Chat and returns an `attachment_data_ref`. Most workflows should use `create_message` or `reply_message` with `file_ids` instead. Required: `space`, `source_file_id` Optional: `filename`, `content_type`, `max_upload_bytes` ```json {"action":"upload_attachment","space":"spaces/AAA","source_file_id":"file-manager-id-1"} ``` ##### `download_attachment_to_storage` Downloads a Chat attachment into AgentPMT File Manager. Required: `media_resource_name` or `attachment_name` Optional: `message_name`, `space`, `output_filename`, `expiration_days`, `max_bytes` ```json { "action": "download_attachment_to_storage", "message_name": "spaces/AAA/messages/BBB", "attachment_name": "report.pdf", "output_filename": "report.pdf" } ``` ```json { "action": "download_attachment_to_storage", "media_resource_name": "spaces/AAA/messages/BBB/attachments/ATT/media", "output_filename": "report.pdf" } ``` #### Response All successful responses return `{"success": true, "output": { ... }}` from the tool route. Output varies by action: - `list_spaces` -> `{"spaces": [...], "next_page_token": "..."}` - `get_space` -> `{"space": {...}}` - `search_spaces` -> `{"spaces": [...], "next_page_token": "...", "query": "..."}` - `find_direct_message` -> `{"space": {...}, "user_name": "..."}` - `list_messages` -> `{"messages": [...], "next_page_token": "...", "order_by": "create_time DESC"}` - `get_message` -> `{"message": {...}}` - `search_messages` -> `{"messages": [...], "matched_count": 0, "scanned_count": 0, "scan_limit_reached": false}` - `create_message` / `reply_message` -> `{"message": {...}, "uploaded_attachments": [...]}` - `update_message` -> `{"message": {...}}` - `delete_message` / `delete_reaction` -> `{"deleted": true, "name": "..."}` - `list_reactions` -> `{"reactions": [...], "next_page_token": "..."}` - `add_reaction` -> `{"reaction": {...}}` - `list_message_attachments` -> `{"attachments": [...], "count": 0}` - `get_attachment` -> `{"attachment": {...}, "message_name": "..."}` - `search_attachments` -> `{"attachments": [...], "matched_count": 0, "scanned_messages": 0}` - `upload_attachment` -> `{"attachment_data_ref": {...}, "source_file": {...}}` - `download_attachment_to_storage` -> `{"attachment": {...}, "download": {"stored_as": {...}, "content_type": "...", "size_bytes": 0}}` #### Resource Name Formats - Space: `spaces/AAA` - Message: `spaces/AAA/messages/BBB` - Thread: `spaces/AAA/threads/CCC` - Reaction: `spaces/AAA/messages/BBB/reactions/RRR` - Attachment: `spaces/AAA/messages/BBB/attachments/ATT` - User: `users/123` Short IDs are accepted only when paired with the parent resource (`space` or `message_name`). ## When To Use - Use this skill for `Google Chat` on AgentPMT. - Use it when an agent needs this specific tool's behavior, schema, inputs, outputs, and invocation shape. - Search and activation keywords: google chat, search accessible spaces, find direct message spaces, read and search messages, send messages and replies, add reaction, message name, emoji unicode. - Supported action names: `add_reaction`, `create_message`, `delete_message`, `delete_reaction`, `download_attachment_to_storage`, `find_direct_message`, `get_attachment`, `get_message`, `get_space`, `list_message_attachments`, `list_messages`, `list_reactions`, `list_spaces`, `reply_message`, `search_attachments`, `search_messages`, `search_spaces`, `update_message`, `upload_attachment`. ## Use Cases - Search accessible spaces - Find direct-message spaces - Read and search messages - Send messages and replies - Attach File Manager files to Chat messages - Download Chat attachments to File Manager - Add or remove reactions - Automate team notifications ## Related Product Skills - File Management: ../file-management (ClawHub: `file-management`, page: https://clawhub.ai/agentpmt/file-management; skills.sh: `npx skills add AgentPMT/agent-skills --skill file-management`) ## Categories And Industries No categories or industry tags are published for this tool. ## Actions And Schema Complete generated action schema: `./schema.md`. Supported action count: `19`. x402 availability: not enabled for this product. - `add_reaction` (action slug: `add-reaction`): Add a reaction. Price: `5` credits. Parameters: `emoji_unicode`, `message_name`, `space`. - `create_message` (action slug: `create-message`): Create a message, optionally with files. Price: `5` credits. Parameters: `cards_v2`, `file_ids`, `max_upload_bytes`, `message_id`, `message_reply_option`, `message_request_id`, `notification_type`, `space`, plus 3 more. - `delete_message` (action slug: `delete-message`): Delete a message. Price: `5` credits. Parameters: `force`, `message_name`, `space`. - `delete_reaction` (action slug: `delete-reaction`): Delete a reaction. Price: `5` credits. Parameters: `message_name`, `reaction_name`, `space`. - `download_attachment_to_storage` (action slug: `download-attachment-to-storage`): Download Chat media to File Manager. Price: `5` credits. Parameters: `attachment_name`, `expiration_days`, `max_bytes`, `media_resource_name`, `message_name`, `output_filename`, `space`. - `find_direct_message` (action slug: `find-direct-message`): Find a DM space. Price: `5` credits. Parameters: `user_name`. - `get_attachment` (action slug: `get-attachment`): Get attachment metadata from its message. Price: `5` credits. Parameters: `attachment_name`, `message_name`, `space`. - `get_message` (action slug: `get-message`): Get a message. Price: `5` credits. Parameters: `message_name`, `space`. - `get_space` (action slug: `get-space`): Get a space. Price: `5` credits. Parameters: `space`. - `list_message_attachments` (action slug: `list-message-attachments`): List message attachments. Price: `5` credits. Parameters: `message_name`, `space`. - `list_messages` (action slug: `list-messages`): List messages; newest first by default. Price: `5` credits. Parameters: `filter`, `order_by`, `page_size`, `page_token`, `show_deleted`, `space`. - `list_reactions` (action slug: `list-reactions`): List message reactions. Price: `5` credits. Parameters: `filter`, `message_name`, `page_size`, `page_token`, `space`. - `list_spaces` (action slug: `list-spaces`): List accessible spaces. Price: `5` credits. Parameters: `filter`, `page_size`, `page_token`. - `reply_message` (action slug: `reply-message`): Reply to a message, optionally with files. Price: `5` credits. Parameters: `cards_v2`, `file_ids`, `max_upload_bytes`, `message_id`, `message_name`, `message_reply_option`, `message_request_id`, `notification_type`, plus 2 more. - `search_attachments` (action slug: `search-attachments`): Bounded attachment search in one space. Price: `5` credits. Parameters: `case_sensitive`, `filter`, `max_results`, `order_by`, `page_size`, `query`, `scan_limit`, `space`. - `search_messages` (action slug: `search-messages`): Bounded message search in one space. Price: `5` credits. Parameters: `case_sensitive`, `filter`, `max_results`, `order_by`, `page_size`, `query`, `scan_limit`, `search_fields`, plus 2 more. - `search_spaces` (action slug: `search-spaces`): Search accessible spaces. Price: `5` credits. Parameters: `order_by`, `page_size`, `page_token`, `query`. - `update_message` (action slug: `update-message`): Update message text/cards. Price: `5` credits. Parameters: `cards_v2`, `message_name`, `space`, `text`. - `upload_attachment` (action slug: `upload-attachment`): Upload a File Manager file to Chat. Price: `5` credits. Parameters: `content_type`, `filename`, `max_upload_bytes`, `source_file_id`, `space`. ## Live Schema And Examples Use the compact schema above for ordinary calls. Before a new production integration, or whenever parameters, enum values, nested objects, outputs, or examples are unclear, fetch live details first. - Exact schema: call `agentpmt-tool-search-and-execution` with `action: "get_schema"`, and `tool_id: "google-chat"`. - Detailed examples: call `agentpmt-tool-search-and-execution` with `action: "get_instructions"` and `tool_id: "google-chat"`, or call this product with `action: "get_instructions"` when the product tool is already selected. - Treat returned live schema and instructions as more specific than this generated summary. MCP schema lookup through the main AgentPMT MCP server: ```json { "method": "tools/call", "params": { "name": "AgentPMT-Tool-Search-and-Execution", "arguments": { "action": "get_schema", "tool_id": "google-chat" } } } ``` For live examples, keep the same MCP tool and use these arguments: ```json { "action": "get_instructions", "tool_id": "google-chat" } ``` Authenticated AgentPMT REST schema lookup body: ```json { "name": "agentpmt-tool-search-and-execution", "parameters": { "action": "get_schema", "tool_id": "google-chat" } } ``` Authenticated AgentPMT REST live examples body: ```json { "name": "agentpmt-tool-search-and-execution", "parameters": { "action": "get_instructions", "tool_id": "google-chat" } } ``` ## Call This Tool Product slug: `google-chat` Marketplace page: https://www.agentpmt.com/marketplace/google-chat - AgentPMT account route: first use `../agentpmt-account-mcp-rest-api-setup` to connect the main MCP server or REST API for an Agent Group where this tool is enabled. - x402 route: not enabled for this product. - AgentPMT overview: use `../what-is-agentpmt` for marketplace, Agent Group, workflow, MCP, REST, and payment concepts. If those setup skills are not installed beside this product skill, use the downloads below. Core AgentPMT setup skills: - What AgentPMT is: ../what-is-agentpmt - ClawHub page: https://clawhub.ai/agentpmt/what-is-agentpmt - OpenClaw install: `openclaw skills install what-is-agentpmt` - skills.sh install: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt` - AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup - ClawHub page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup - OpenClaw install: `openclaw skills install agentpmt-account-mcp-rest-api-setup` - skills.sh install: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup` skills.sh install script: ```bash npx skills add AgentPMT/agent-skills --skill what-is-agentpmt npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup ``` MCP call shape after the main AgentPMT MCP server is connected: ```json { "method": "tools/call", "params": { "name": "Google-Chat", "arguments": { "action": "add_reaction", "emoji_unicode": "example emoji unicode", "message_name": "example message name", "space": "example space" } } } ``` Use the exact tool name returned by `tools/list`; the name above is the expected readable form. Authenticated AgentPMT REST call body: ```json { "name": "google-chat", "parameters": { "action": "add_reaction", "emoji_unicode": "example emoji unicode", "message_name": "example message name", "space": "example space" } } ``` Use the setup skill for the account connection details before making REST calls. ## Response Handling - Treat the returned JSON as the source of truth for this tool call. - If the response includes warnings or correction targets, apply them before retrying. - If the response includes a `passed` or success-style boolean, use it as the workflow gate. - If validation fails or the response shape is unclear, call `get_schema` or `get_instructions` before retrying. - If `add_reaction` fails, preserve the request parameters and retry only after fixing schema, auth, or payment errors. ## Security - Do not place account secrets, wallet private keys, mnemonics, signatures, or payment headers in prompts or logs. - Keep tool inputs scoped to the minimum content needed for the task. - Use the setup skills for credential handling; this product skill only defines product-specific behavior. ## AgentPMT Reference - What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`) - AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`) - Marketplace product: https://www.agentpmt.com/marketplace/google-chat - AgentPMT main MCP server: https://api.agentpmt.com/mcp/ - AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase