Install
openclaw skills install @agentpmt/google-chatGoogle 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.
openclaw skills install @agentpmt/google-chatLast 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.
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.
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.reactionsIt 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.
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 when space is providedreaction_name (string): Reaction resource name, or short reaction ID when message_name is providedattachment_name (string): Attachment resource name, short attachment ID, or attachment contentName when message_name is providedmedia_resource_name (string): Direct attachmentDataRef.resourceName for 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_THREAD or REPLY_MESSAGE_OR_FAILmessage_request_id (string): Google Chat requestId for idempotent message creationmessage_id (string): Client-assigned Google Chat message IDnotification_type (string): NOTIFICATION_TYPE_NONE, NOTIFICATION_TYPE_FORCE_NOTIFY, or NOTIFICATION_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 by search_messages: text, formatted_text, argument_text, sender, attachment_nameemoji_unicode (string): Unicode emoji for add_reactionforce (boolean, default false): For delete_message, also delete threaded repliesfile_ids (array): AgentPMT File Manager file IDs to upload and attach to create_message or reply_messagesource_file_id (string): AgentPMT File Manager file ID for upload_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 dayslist_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_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.
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.
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.
get_instructionsReturns this documentation.
{"action":"get_instructions"}
list_spacesLists 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_spaceGets a space by resource name or short ID.
Required: space
{"action":"get_space","space":"spaces/AAA"}
search_spacesSearches 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_messageFinds the direct message space with a user.
Required: user_name
{"action":"find_direct_message","user_name":"users/123456789"}
list_messagesLists 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_messageGets 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_messagesBounded 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_messageSends 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_messageReplies 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_messageEdits 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_messageDeletes 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_reactionsLists 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_reactionAdds 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_reactionDeletes a reaction.
Required: reaction_name
Optional: message_name, space
{"action":"delete_reaction","reaction_name":"spaces/AAA/messages/BBB/reactions/RRR"}
list_message_attachmentsLists attachments in a message.
Required: message_name
Optional: space
{"action":"list_message_attachments","message_name":"spaces/AAA/messages/BBB"}
get_attachmentGets 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_attachmentsBounded 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_attachmentUploads 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_storageDownloads 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"
}
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}}spaces/AAAspaces/AAA/messages/BBBspaces/AAA/threads/CCCspaces/AAA/messages/BBB/reactions/RRRspaces/AAA/messages/BBB/attachments/ATTusers/123Short IDs are accepted only when paired with the parent resource (space or message_name).
Google Chat on AgentPMT.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.file-management, page: https://clawhub.ai/agentpmt/file-management; skills.sh: npx skills add AgentPMT/agent-skills --skill file-management)No categories or industry tags are published for this tool.
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.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.
agentpmt-tool-search-and-execution with action: "get_schema", and tool_id: "google-chat".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.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"
}
}
Product slug: google-chat
Marketplace page: https://www.agentpmt.com/marketplace/google-chat
../agentpmt-account-mcp-rest-api-setup to connect the main MCP server or REST API for an Agent Group where this tool is enabled.../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:
openclaw skills install what-is-agentpmtnpx skills add AgentPMT/agent-skills --skill what-is-agentpmtopenclaw skills install agentpmt-account-mcp-rest-api-setupnpx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setupskills.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.
passed or success-style boolean, use it as the workflow gate.get_schema or get_instructions before retrying.add_reaction fails, preserve the request parameters and retry only after fixing schema, auth, or payment errors.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-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)