Gmail

Communication OAuth Windmill docs

Send email from any Windmill script, flow or app — including approval steps that pause a flow until someone clicks a link in their inbox.

What you can do with Gmail

Complete, deployable projects built around Gmail — the fastest way to get something real running.

Set up in 2 steps

1

Connect from the Resources page

Open Resources, click Add a resource/API and pick gmail from the OAuth APIs list. Click Connect and sign in with the Google account the mail should be sent from, then name the resource and save it.

2

Run your first script

Fork the send email script below, or drop the approval step into a flow to have it wait on a reply.

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 →

Flows

Multi-step workflows that already wire Gmail to something else.

All flows →

Resource type

The shape of the credential every script on this page expects.

FieldTypeRequiredWhat it is
tokenstringYes

Questions

What can Windmill do with my mailbox?

Send only. The connection asks for the gmail.send scope, so scripts can send mail as you but cannot read your inbox.

Can I create the resource by hand instead of connecting?

Nothing stops you — the resource is a single token field. But there is no long-lived Gmail API token: Google's access tokens last about an hour, and only the OAuth flow returns the refresh token that renews them, which is why this page has no CLI lane. For a credential that does not expire, send through the separate smtp resource instead.

There is no Connect button on my instance

Self-hosted instances need a Google OAuth client configured once by an admin before the tile appears.