Reference · Tools
Google Chat
Send messages, manage members and spaces in Google Chat.
The Google Chat node connects to the Google Chat REST API v1 to send and manage messages, list or retrieve space members, and query spaces. You can build workflows that post alerts to a Chat space when a monitoring threshold is breached, update or delete messages, and keep membership records in sync — all without touching the Chat UI.
- Node type
- Action
- Parameters
- 20
- Outputs
- Output, Error
- Credentials
- Google Chat OAuth2 , Google API (Service Account)
Google Chat
Send messages and manage members and spaces in Google Chat.
Overview
Google Chat tool integrates with the Google Chat REST API v1 to manage messages, memberships, and spaces. It supports creating, retrieving, updating, and deleting messages; listing and getting space members; and listing and getting spaces. Both OAuth2 (recommended for user-context access) and Service Account (for Chat bot / server-to-server scenarios) authentication are supported. Pagination is handled automatically for getAll operations.
Category: Communication
Tool Name: google_chat
Version: 1
Appearance: Icon: lucide-MessageCircle | Color: #4285F4
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Google Chat OAuth2 or Google API (Service Account) credentials — pick one and match it with the Authentication parameter on the node. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Member | member |
| Message | message |
| Space | space |
Operations
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new message in a space (Message resource) |
| Delete | delete | Delete a message (Message resource) |
| Get | get | Get a message (Message resource) |
| Update | update | Update a message (Message resource) |
| Get | get | Get a space membership (Member resource) |
| Get Many | getAll | List memberships in a space (Member resource) |
| Get | get | Get a space (Space resource) |
| Get Many | getAll | List all spaces the caller is a member of (Space resource) |
Parameters
Message: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Space Name | string | Yes | — | The resource name of the space, in the form “spaces/*”. Supports expressions like {{ $json.space }}. |
| Use JSON Body | boolean | No | false | Whether to specify the full message body as JSON (for cards and advanced formatting). |
| Text | string | No | — | The message text to send. Supports expressions. (shown when Use JSON Body is false) |
| Message Body (JSON) | json | No | {} | The full message body as a JSON object or JSON string. Use for cards and rich formatting. See https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message. (shown when Use JSON Body is true) |
| Additional Fields | collection | No | {} | Optional message settings. Add only the ones you need. |
| — Request ID | string | No | — | A unique request ID for idempotency. If a message was already created with this ID in the space, the existing message is returned without creating a new one. |
| — Thread Key | string | No | — | Specifies a thread key to group messages into a thread. Has no effect if a thread field is already set in the message body. |
Message: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Message Name | string | Yes | — | The resource name of the message, in the form “spaces//messages/”. Supports expressions. |
| Use JSON Body | boolean | No | false | Whether to specify the full message body as JSON (for cards and advanced formatting). |
| Text | string | No | — | The message text to send. Supports expressions. (shown when Use JSON Body is false) |
| Message Body (JSON) | json | No | {} | The full message body as a JSON object or JSON string. Use for cards and rich formatting. See https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message. (shown when Use JSON Body is true) |
Message: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Message Name | string | Yes | — | The resource name of the message, in the form “spaces//messages/”. Supports expressions. |
Message: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Message Name | string | Yes | — | The resource name of the message, in the form “spaces//messages/”. Supports expressions. |
Member: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Member Name | string | Yes | — | The resource name of the membership, in the form “spaces//members/”. Supports expressions. |
Member: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Space Name | string | Yes | — | The resource name of the space, in the form “spaces/*”. Supports expressions. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Maximum number of results to return. (shown when Return All is false) |
Space: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Space Name | string | Yes | — | The resource name of the space, in the form “spaces/*”. Supports expressions. |
Space: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Maximum number of results to return. (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Authentication | options | No | oAuth2 | Authentication method to use. |
Options: oAuth2, serviceAccount | ||||
| Google Account | credential | No | — | Connect or select your Google account. (shown when Authentication is oAuth2) |
| Service Account Email | string | Yes | — | The email address of the Google service account. (shown when Authentication is serviceAccount) |
| Private Key | string | Yes | — | The private key from the service account JSON key file. (shown when Authentication is serviceAccount) |
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
The Google Chat API response is merged into the incoming item JSON at the top level, so the fields you sent in pass through. Binary data on the input item is not carried onto the output.
| Operation | Output items |
|---|---|
message / create, get, update | One item — the Chat message record, including the resource name Chat assigned it. |
message / delete | One item — Chat’s delete response merged onto the incoming item. |
member / get | One item — the membership record. |
member / getAll | Fans out — one output item per membership. With Return All on, every page is fetched; otherwise up to Limit results. |
space / get | One item — the space record. |
space / getAll | Fans out — one output item per space, with the same Return All / Limit behavior. |
When a list operation returns nothing, a single item is emitted carrying results: [] so the input item is not silently dropped — check for that property before treating a branch as populated.
Usage Examples
- Send a message to a Google Chat space
- Get a message by resource name
- Update a message in Google Chat
- Delete a message from a space
- List all members of a Google Chat space
- Get details about a Google Chat space
- List all spaces the user is a member of
Example Configuration
Send a plain text message to a space:
{
"type": "google_chat",
"parameters": {
"authentication": "oAuth2",
"resource": "message",
"operation": "create",
"spaceName": "spaces/SPACE_ID",
"useJsonBody": false,
"text": "Automated notification: process completed successfully",
"additionalFields": {
"requestId": "unique-request-id-123"
}
}
}
Send a card as a Chat bot using a service account:
{
"type": "google_chat",
"parameters": {
"authentication": "serviceAccount",
"resource": "message",
"operation": "create",
"spaceName": "spaces/SPACE_ID",
"useJsonBody": true,
"jsonBody": {
"text": "Check out this card!",
"cards": [{
"header": { "title": "Workflow Update" },
"sections": [{
"widgets": [{
"textParagraph": { "text": "Your workflow has completed successfully." }
}]
}]
}]
}
}
}
Update an existing message:
{
"type": "google_chat",
"parameters": {
"authentication": "oAuth2",
"resource": "message",
"operation": "update",
"messageName": "spaces/SPACE_ID/messages/MESSAGE_ID",
"useJsonBody": false,
"text": "Updated message content"
}
}
Delete a message:
{
"type": "google_chat",
"parameters": {
"authentication": "oAuth2",
"resource": "message",
"operation": "delete",
"messageName": "{{ $json.messageName }}"
}
}
List every member of a space:
{
"type": "google_chat",
"parameters": {
"authentication": "oAuth2",
"resource": "member",
"operation": "getAll",
"spaceName": "spaces/SPACE_ID",
"returnAll": true
}
}
Get a single membership:
{
"type": "google_chat",
"parameters": {
"authentication": "oAuth2",
"resource": "member",
"operation": "get",
"memberName": "spaces/SPACE_ID/members/MEMBER_ID"
}
}
List all spaces the caller belongs to:
{
"type": "google_chat",
"parameters": {
"authentication": "oAuth2",
"resource": "space",
"operation": "getAll",
"returnAll": true
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Send messages and manage members and spaces in Google Chat.
Parameter Dependency Rules
operationoptions depend on the selectedresourcespaceNameis required for different operations based on resource typemessageNameis only needed for message operations on existing messagesuseJsonBodydetermines whether to usetext(simple) orjsonBody(rich content)returnAllcontrols whetherlimitparameter is available for list operationsadditionalFieldsis only available when creating new messages
Notes
- Pick the authentication that matches the caller. OAuth2 posts as the signed-in user; Service Account posts as a Chat bot and can only reach spaces the bot has been added to.
- Names, not display titles. Space Name, Message Name and Member Name are Chat resource names (
spaces/…,spaces/…/messages/…,spaces/…/members/…), not the human-readable names shown in the Chat UI. A created message returns its resource name — store it if you plan to update or delete it later. - Request ID makes creates idempotent. Re-running a workflow with the same Request ID returns the message that already exists instead of posting a duplicate.
Frequently asked questions
Should I use OAuth2 or a Service Account, and does it matter who appears as the sender?
Yes, it matters significantly. OAuth2 authenticates as a real Google user, so messages appear to come from that person. A Service Account authenticates as a Chat bot, so messages show a bot identity. The practical constraint with Service Accounts is that the bot must already be added to any space it tries to reach — it cannot access spaces it hasn't been invited to.
Where do I find the 'Space Name' or 'Message Name' values the node asks for?
These are Chat API resource names, not the display titles you see in the Chat UI. A space name looks like spaces/XXXXXXXXX and a message name looks like spaces/XXXXXXXXX/messages/YYYYYYY. When you create a message with this node, the response includes the message's resource name — store it in your workflow if you plan to update or delete that message later.
How do I prevent duplicate messages if my workflow runs more than once?
Set the Request ID field when creating a message. If the node is called again with the same Request ID, the Google Chat API returns the original message instead of posting a new one. This makes message creation idempotent, which is especially useful in retry-prone or scheduled workflows.
Can I send formatted or card-based messages, or only plain text?
Both are supported. Toggle the 'Use JSON Body' parameter off to send a simple text string, or toggle it on to provide a raw JSON body, which lets you use Chat's card and rich-content message formats. The plain-text option is faster to configure; the JSON body option gives you full control over the message structure.
What happens when I list all members or spaces — does the node handle pagination automatically?
Yes. For getAll operations, pagination is handled automatically by the node. You can either enable 'Return All' to retrieve every page of results, or disable it and set a 'Limit' to cap how many records come back. The Limit parameter only appears when Return All is turned off.
Build with the Google Chat node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google Chat OAuth2 credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.