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
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.
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.
Flows
Multi-step workflows that already wire Gmail to something else.
Resource type
The shape of the credential every script on this page expects.
gmail
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| token | string | Yes |
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.