Send cold outreach from lead files and classify Gmail replies with OpenRouter
Ready for 3.0What this workflow does
This AI workflow has 20 nodes and runs on a schedule (every hour) (plus 3 other triggers). Along the way it connects Gmail and OpenRouter Chat Model.
How it runs
Trigger: On a schedule (every hour) (plus 3 other triggers).
- config: the offer (Edit Fields (Set)): sets or maps fields
- read the lead file (Extract from File): extracts data from a file
- match the reply to a lead (Data table): get
- read leads not yet contacted (Data table): get
- store the leads (Data table): create or update
- store the reply (Data table): uses Data table
- [cred] Gmail - send the outreach email (Gmail): uses Gmail
- read the whole thread (Data table): get
- record what was sent (Data table): uses Data table
- keep only the prospect's messages (Code): runs custom JavaScript code
…plus 4 more steps. See the full node list below.
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 (13)
- n8n Form Trigger
n8n-nodes-base.formTrigger - Extract from File
n8n-nodes-base.extractFromFile - Data table
n8n-nodes-base.dataTable - Schedule Trigger
n8n-nodes-base.scheduleTrigger - Manual Trigger
n8n-nodes-base.manualTrigger - Gmail
n8n-nodes-base.gmail - Edit Fields (Set)
n8n-nodes-base.set - Gmail Trigger
n8n-nodes-base.gmailTrigger - Code
n8n-nodes-base.code - AI Agent
@n8n/n8n-nodes-langchain.agent - OpenRouter Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenRouter - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - If
n8n-nodes-base.if
From the author
Quick overview This workflow imports leads from an uploaded file into an n8n Data Table, sends a first-touch cold email through Gmail on a schedule or manually, then watches Gmail for replies and uses an OpenRouter LLM to classify interest and flag leads for…