Hi everyone,
I’m building a production email agent with n8n Cloud and I’d like to get feedback from people who have already deployed Gmail integrations at scale.
Current architecture
I’m not using the Gmail node.
Instead, I’m using:
HTTP Request nodes
Gmail REST API
Generic Google OAuth2 credential
only one scope:
https://www.googleapis.com/auth/gmail.modify
The workflow performs:
list unread messages
get message
create draft
send message
mark as read
Everything works correctly.
Why I avoided the Gmail node
From what I understand, the Gmail node requests several fixed scopes including:
gmail.modify
gmail.compose
etc.
I wanted to follow the principle of least privilege and request only gmail.modify.
That’s why I switched to HTTP Request + Generic OAuth2.
My question about Managed OAuth
I’m now evaluating Managed OAuth available on n8n Cloud.
The documentation explains that it simplifies authentication, but I couldn’t find technical details about what actually happens behind the scenes.
I’d like to know:
Does Managed OAuth internally use the same Gmail credential (same scopes) as the Gmail node?
If I create a Managed OAuth Gmail credential, can I use it inside HTTP Request nodes?
During Google consent, which scopes are actually requested?
Is there any way to limit Managed OAuth to only:
gmail.modify
instead of the full Gmail scopes?
Has anyone successfully deployed a production Gmail REST workflow using Managed OAuth instead of a Generic OAuth credential?
Google verification
One thing I’m also trying to understand:
Does Managed OAuth change anything regarding Google’s OAuth verification requirements (restricted scopes, security assessment, etc.)?
I’m not asking for legal advice, just wondering whether anyone has real production experience with this.
Any feedback or production experience would be greatly appreciated.
Thanks!
Describe the problem/error/question
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version: cloud
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app): cloud
- Operating system:
