Triage RFQ emails and draft quote replies with Gmail and OpenAI
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 12 nodes and runs on Gmail events. Along the way it connects Gmail and OpenAI Chat Model.
How it runs
Trigger: On Gmail events.
- Normalize Email (Edit Fields (Set)): sets 5 fields: email_text, from_email, subject_line…
- Has PDF Attachment? (If): checks a condition and branches into true / false
- Extract PDF Text (Extract from File): extracts data from a file (pdf)
- Use Email Text Only (Edit Fields (Set)): sets 1 field: rfq_text
- Combine Email + PDF Text (Edit Fields (Set)): sets 1 field: rfq_text
- Extract RFQ Fields (Information Extractor): extracts structured fields from text with AI, with model: OpenAI Model
- Completeness Gate (Code): runs custom JavaScript code
- All Info Present? (If): checks a condition and branches into true / false
- Draft Quote Skeleton (Gmail): work with draft
- Draft Missing-Info Request (Gmail): work with 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.
Nodes used (8)
- Gmail Trigger
n8n-nodes-base.gmailTrigger - Edit Fields (Set)
n8n-nodes-base.set - If
n8n-nodes-base.if - Extract from File
n8n-nodes-base.extractFromFile - Information Extractor
@n8n/n8n-nodes-langchain.informationExtractor - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Code
n8n-nodes-base.code - Gmail
n8n-nodes-base.gmail
From the author
Quick Overview This workflow monitors Gmail for unread RFQ emails, optionally extracts text from attached PDFs, and uses OpenAI to pull structured quote details and check completeness before creating a Gmail draft reply with either a quote skeleton or a…