Detect scope creep in client emails with Gmail, OpenAI and Google Sheets
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This AI workflow has 14 nodes and runs on Gmail events. Along the way it connects Gmail, Google Docs, OpenAI Chat Model and Google Sheets and 1 more.
How it runs
Trigger: On Gmail events.
- Configure settings (Edit Fields (Set)): sets 6 fields: client_sow_map, sheet_id, hourly_rate…
- Match client SOW (Code): runs custom JavaScript code
- Get client SOW (Google Docs): get
- Check request against SOW (Basic LLM Chain): sends a prompt to an LLM, with model: OpenAI Chat Model; output parser: Structured Output Parser
- Drop non-requests (Filter): keeps only the items that match a condition
- Prepare scope record (Code): runs custom JavaScript code
- Log to Scope Log (Google Sheets): append
- Needs attention? (If): checks a condition and branches into true / false
- Alert team in Slack (Slack): uses Slack
- Save change-order draft (Gmail): create (draft)
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
- Still check Gmail Trigger below v1.4 runs as v1.4 (drafts skipped, max emails per poll) (New client email).
Nodes used (13)
- Gmail Trigger
n8n-nodes-base.gmailTrigger - Edit Fields (Set)
n8n-nodes-base.set - Code
n8n-nodes-base.code - Google Docs
n8n-nodes-base.googleDocs - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Filter
n8n-nodes-base.filter - Google Sheets
n8n-nodes-base.googleSheets - If
n8n-nodes-base.if - Slack
n8n-nodes-base.slack - Gmail
n8n-nodes-base.gmail - No Operation, do nothing
n8n-nodes-base.noOp
From the author
Quick Overview This workflow monitors a Gmail inbox for client emails, looks up the client’s statement of work in Google Docs, uses OpenAI to classify requests as in-scope or scope creep, logs each request to Google Sheets, and notifies your team in Slack…