Google Chat
Communication OAuth, or a webhook URLRead and post Google Chat messages from any Windmill script, flow or app, as the connected Workspace user, or send notifications to a space through its incoming webhook.
Set up in 3 steps
Configure a Chat app in Google Cloud
Google only serves the Chat API to projects that have a Chat app. The instance admin, in the Google Cloud project that holds Windmill's Google OAuth client, enables the Google Chat API and fills in its Configuration page (name, avatar, description), once.
Connect from the Resources page
Open Resources, click Add a resource/API and pick gchat under Instance-configured OAuth APIs. Click Connect and sign in with a Google Workspace account, then name the resource and save it.
Run your first script
Fork list spaces to find a space, then send a message to it.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Resource types
The credential shapes the scripts on this page expect — pick the one your script asks for.
gchat
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| token | string | Yes | OAuth access token. Connect with OAuth so Windmill refreshes it; Google access tokens expire after about an hour. |
gchat_webhook
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| url | string | Yes | Webhook URL (https://chat.googleapis.com/v1/spaces/.../messages?key=...&token=...). It grants posting to the space, so keep it secret. |
Questions
Does it work with a personal @gmail.com account?
No. The Chat API only accepts Google Workspace accounts for user authentication.
Listing messages or members fails on a missing scope
The default connection can list and read spaces and send messages, but not read messages or members. Reading messages needs chat.messages.readonly (a restricted scope, so off by default) and reading members needs chat.memberships.readonly. Reconnect and tick them in the scope options.
Why do I get "Google Chat app not found"?
The Google Cloud project behind the OAuth client has no Chat app configured. Enable the Chat API in that project and complete its Configuration page.
Do messages come from a bot?
Not with the OAuth connection: messages are posted as the connected user, with the same membership and permissions they have in Chat. Send Message via Webhook posts as the webhook instead, under the name and avatar set when it was created.
How do I post to a space with a webhook instead of OAuth?
In Chat on the web, open the space, click its name > Apps & integrations > Add webhooks, name it and save, then copy the webhook link. In Windmill, create a gchat_webhook resource with that link as url (the link alone grants posting, so you can bind the field to a secret variable with $var:<path>), and run Send Message via Webhook with text, cards_v2 or both. Set thread_key to keep related notifications in one thread. Google limits each space to 1 request per second across all its webhooks; above that the script fails with a 429. Webhooks need a Business or Enterprise Workspace whose admin allows them.
There is no Connect button on my instance
An instance admin has to add a Google OAuth client once, under Instance settings → Auth/OAuth/SAML → OAuth, before the tile appears.