Google Chat

Communication OAuth, or a webhook URL

Read 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

1

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.

2

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.

3

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.

Submit a script →

Resource types

The credential shapes the scripts on this page expect — pick the one your script asks for.

FieldTypeRequiredWhat it is
tokenstringYesOAuth access token. Connect with OAuth so Windmill refreshes it; Google access tokens expire after about an hour.

gchat_webhook

View raw schema →
FieldTypeRequiredWhat it is
urlstringYesWebhook 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.