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.readonlychat.messageschat.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_instructionsspace(string): Space name or ID, such as"spaces/AAA"or"AAA"message_name(string): Message resource name, or short message ID whenspaceis providedreaction_name(string): Reaction resource name, or short reaction ID whenmessage_nameis providedattachment_name(string): Attachment resource name, short attachment ID, or attachmentcontentNamewhenmessage_nameis providedmedia_resource_name(string): DirectattachmentDataRef.resourceNamefor Chat media downloaduser_name(string): User resource name, such as"users/123"query(string): Search query for space/message/attachment search actionstext(string): Message textcards_v2(array): Cards v2 payloadthread_name(string): Existing Chat thread resource namethread_key(string): Thread key for message creationmessage_reply_option(string):REPLY_MESSAGE_FALLBACK_TO_NEW_THREADorREPLY_MESSAGE_OR_FAILmessage_request_id(string): Google ChatrequestIdfor idempotent message creationmessage_id(string): Client-assigned Google Chat message IDnotification_type(string):NOTIFICATION_TYPE_NONE,NOTIFICATION_TYPE_FORCE_NOTIFY, orNOTIFICATION_TYPE_SILENTpage_size(integer, default 50): Max results per page. Reactions max is 200.page_token(string): Pagination tokenfilter(string): Google Chat filter queryorder_by(string): Sort ordershow_deleted(boolean, default false): Include deleted messages in message list/searchmax_results(integer, default 25): Max client-side search matchesscan_limit(integer, default 500): Max messages scanned by bounded client-side searchcase_sensitive(boolean, default false): Use case-sensitive client-side searchsearch_fields(array): Fields searched bysearch_messages:text,formatted_text,argument_text,sender,attachment_nameemoji_unicode(string): Unicode emoji foradd_reactionforce(boolean, default false): Fordelete_message, also delete threaded repliesfile_ids(array): AgentPMT File Manager file IDs to upload and attach tocreate_messageorreply_messagesource_file_id(string): AgentPMT File Manager file ID forupload_attachmentfilename(string): Optional upload filename overridecontent_type(string): Optional upload MIME type overridemax_upload_bytes(integer, default 26214400): Max File Manager bytes uploaded to Chatmax_bytes(integer, default 26214400): Max Chat attachment bytes downloadedoutput_filename(string): File Manager filename for downloaded attachmentexpiration_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:
{"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:
{"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.
{
"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.
{"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:
{"action":"list_message_attachments","message_name":"spaces/AAA/messages/BBB"}
Download an attachment into AgentPMT File Manager:
{
"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:
{
"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.
{"action":"get_instructions"}
list_spaces
Lists spaces the authenticated user has access to.
Required: none
Optional: page_size, page_token, filter
{"action":"list_spaces","page_size":25}
{"action":"list_spaces","filter":"space_type = \"SPACE\""}
get_space
Gets a space by resource name or short ID.
Required: space
{"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
{"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
{"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
{"action":"list_messages","space":"spaces/AAA","page_size":20}
{
"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
{"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
{"action":"search_messages","space":"spaces/AAA","query":"invoice","max_results":10,"scan_limit":500}
{
"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
{"action":"create_message","space":"spaces/AAA","text":"Hello from the agent."}
{
"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
{"action":"reply_message","message_name":"spaces/AAA/messages/BBB","text":"Got it."}
{
"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
{"action":"update_message","message_name":"spaces/AAA/messages/BBB","text":"Updated text"}
delete_message
Deletes a message.
Required: message_name
Optional: space, force
{"action":"delete_message","message_name":"spaces/AAA/messages/BBB"}
{"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
{"action":"list_reactions","message_name":"spaces/AAA/messages/BBB"}
{"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
{"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
{"action":"delete_reaction","reaction_name":"spaces/AAA/messages/BBB/reactions/RRR"}
list_message_attachments
Lists attachments in a message.
Required: message_name
Optional: space
{"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
{
"action": "get_attachment",
"message_name": "spaces/AAA/messages/BBB",
"attachment_name": "report.pdf"
}
{"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
{"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
{"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
{
"action": "download_attachment_to_storage",
"message_name": "spaces/AAA/messages/BBB",
"attachment_name": "report.pdf",
"output_filename": "report.pdf"
}
{
"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 Chaton 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:5credits. Parameters:emoji_unicode,message_name,space.create_message(action slug:create-message): Create a message, optionally with files. Price:5credits. 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:5credits. Parameters:force,message_name,space.delete_reaction(action slug:delete-reaction): Delete a reaction. Price:5credits. Parameters:message_name,reaction_name,space.download_attachment_to_storage(action slug:download-attachment-to-storage): Download Chat media to File Manager. Price:5credits. 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:5credits. Parameters:user_name.get_attachment(action slug:get-attachment): Get attachment metadata from its message. Price:5credits. Parameters:attachment_name,message_name,space.get_message(action slug:get-message): Get a message. Price:5credits. Parameters:message_name,space.get_space(action slug:get-space): Get a space. Price:5credits. Parameters:space.list_message_attachments(action slug:list-message-attachments): List message attachments. Price:5credits. Parameters:message_name,space.list_messages(action slug:list-messages): List messages; newest first by default. Price:5credits. Parameters:filter,order_by,page_size,page_token,show_deleted,space.list_reactions(action slug:list-reactions): List message reactions. Price:5credits. Parameters:filter,message_name,page_size,page_token,space.list_spaces(action slug:list-spaces): List accessible spaces. Price:5credits. Parameters:filter,page_size,page_token.reply_message(action slug:reply-message): Reply to a message, optionally with files. Price:5credits. 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:5credits. 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:5credits. 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:5credits. Parameters:order_by,page_size,page_token,query.update_message(action slug:update-message): Update message text/cards. Price:5credits. Parameters:cards_v2,message_name,space,text.upload_attachment(action slug:upload-attachment): Upload a File Manager file to Chat. Price:5credits. 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-executionwithaction: "get_schema", andtool_id: "google-chat". - Detailed examples: call
agentpmt-tool-search-and-executionwithaction: "get_instructions"andtool_id: "google-chat", or call this product withaction: "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:
{
"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:
{
"action": "get_instructions",
"tool_id": "google-chat"
}
Authenticated AgentPMT REST schema lookup body:
{
"name": "agentpmt-tool-search-and-execution",
"parameters": {
"action": "get_schema",
"tool_id": "google-chat"
}
}
Authenticated AgentPMT REST live examples body:
{
"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-setupto 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-agentpmtfor 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:
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:
{
"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:
{
"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
passedor success-style boolean, use it as the workflow gate. - If validation fails or the response shape is unclear, call
get_schemaorget_instructionsbefore retrying. - If
add_reactionfails, 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