Gmail to Telegram, smarter routing for every email
Your inbox isn’t “busy.” It’s chaotic. Important emails land next to newsletters, invoices get buried under support threads, and you keep rereading the same message just to decide what to do.
Gmail Telegram routing hits hardest when you’re the person who “owns” the inbox. That’s often a business owner or an ops lead. Support teams and sales reps feel it too, because delays turn into unhappy customers and missed deals.
This n8n workflow categorizes every new Gmail message with GPT‑5, routes it to the right next step, labels it in Gmail, and keeps your team posted in Telegram. You’ll see exactly what it automates, what results you get, and what you’ll need to run it.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Gmail to Telegram, smarter routing for every email
flowchart LR
subgraph sg0["Incoming Gmail Watcher Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Incoming Gmail Watcher", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Email Category Router", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter GPT5 Mini", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Support Response Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Mini", pos: "b", h: 48 }
n5@{ icon: "mdi:vector-polygon", form: "rounded", label: "OpenAI Embedding Vector", pos: "b", h: 48 }
n6@{ icon: "mdi:cube-outline", form: "rounded", label: "FAQ Policy Vector Store", pos: "b", h: 48 }
n7@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email Reply", pos: "b", h: 48 }
n8@{ icon: "mdi:message-outline", form: "rounded", label: "Tag as Support", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Finance Review Agent", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Mini 2", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "Finance Output Schema", pos: "b", h: 48 }
n12@{ icon: "mdi:message-outline", form: "rounded", label: "Tag as Finance", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route by Finance Type", pos: "b", h: 48 }
n14@{ icon: "mdi:message-outline", form: "rounded", label: "Email Receivables Team", pos: "b", h: 48 }
n15@{ icon: "mdi:message-outline", form: "rounded", label: "Email Payments Team", pos: "b", h: 48 }
n16["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Receipt Alert"]
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Payment Alert"]
n18@{ icon: "mdi:robot", form: "rounded", label: "Sales Lead Agent", pos: "b", h: 48 }
n19@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Mini 3", pos: "b", h: 48 }
n20@{ icon: "mdi:vector-polygon", form: "rounded", label: "OpenAI Embedding Vector 2", pos: "b", h: 48 }
n21@{ icon: "mdi:cube-outline", form: "rounded", label: "Business Services Vector", pos: "b", h: 48 }
n22@{ icon: "mdi:robot", form: "rounded", label: "Sales Output Schema", pos: "b", h: 48 }
n23@{ icon: "mdi:message-outline", form: "rounded", label: "Tag Sales Opportunities", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Requires Review?", pos: "b", h: 48 }
n25["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Notify Manual Review"]
n26@{ icon: "mdi:message-outline", form: "rounded", label: "Create Email Draft", pos: "b", h: 48 }
n27["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Notify Draft Review"]
n28@{ icon: "mdi:robot", form: "rounded", label: "Internal Mail Agent", pos: "b", h: 48 }
n29@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Mini 4", pos: "b", h: 48 }
n30@{ icon: "mdi:robot", form: "rounded", label: "Internal Output Schema", pos: "b", h: 48 }
n31@{ icon: "mdi:message-outline", form: "rounded", label: "Tag as Internal", pos: "b", h: 48 }
n32["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Internal Summary"]
n33@{ icon: "mdi:cog", form: "rounded", label: "Do Nothing Placeholder", pos: "b", h: 48 }
n2 -.-> n1
n26 --> n27
n4 -.-> n3
n18 --> n24
n7 --> n8
n10 -.-> n9
n19 -.-> n18
n29 -.-> n28
n1 --> n3
n1 --> n9
n1 --> n33
n1 --> n18
n1 --> n28
n11 -.-> n9
n9 --> n13
n0 --> n1
n24 --> n25
n24 --> n26
n22 -.-> n18
n28 --> n32
n30 -.-> n28
n12 -.-> n9
n5 -.-> n6
n31 -.-> n28
n20 -.-> n21
n13 --> n14
n13 --> n15
n3 --> n7
n23 -.-> n18
n21 -.-> n18
n6 -.-> n3
n15 --> n17
n14 --> n16
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n1,n3,n9,n11,n18,n22,n28,n30 ai
class n2,n4,n10,n19,n29 aiModel
class n6,n21 ai
class n5,n20 ai
class n13,n24 decision
classDef customIcon fill:none,stroke:none
class n16,n17,n25,n27,n32 customIcon
The Problem: Email Triage Eats Your Day
Most inbox pain isn’t typing responses. It’s the constant switching: read the email, decide if it’s support or sales or finance, search for the right “old answer,” forward it to the right person, then remember to follow up. And because it’s manual, the rules are inconsistent. Two similar messages get handled differently depending on who saw them first, or how rushed you were. Meanwhile, urgent stuff hides in plain sight, and the “I’ll reply later” pile turns into a quiet backlog.
It adds up fast. Here’s where it usually breaks down.
- Reading and sorting 50+ emails can burn about 1–2 hours, and none of it moves work forward.
- Without consistent labels, you can’t track what’s piling up, so support, sales, and finance issues blur together.
- Forwarding to the right teammate is easy to forget, which means payments stall or customer issues linger.
- Drafting replies from scratch leads to uneven tone and repeated rewrites, especially when you’re pulling info from policies or FAQs.
The Solution: GPT‑Routed Gmail That Updates Telegram Automatically
This workflow watches your Gmail inbox for new messages, then uses a GPT‑5 powered classifier to decide what category each email belongs to based on the sender, subject, and content. From there, it routes the email into a dedicated “agent” for that category. Support messages can be answered automatically using your FAQ and policy knowledge base stored in Pinecone, then replied to directly in Gmail and labeled “Customer Support.” Finance emails get labeled “Finance,” analyzed for whether they’re payments or receivables, then forwarded to the correct internal team, with a Telegram alert so nothing disappears. Sales inquiries get labeled “Sales Opportunities,” and the workflow creates a draft response for you to review, with a Telegram nudge if more info is needed. Internal emails get summarized and sent to you in Telegram, so you can react fast without living in Gmail.
The workflow starts when a new Gmail email arrives. GPT classifies it and hands it to the right agent (support, finance, sales, or internal). Finally, Gmail gets the right label and either a reply, a draft, or a forward happens, with Telegram messages keeping you in the loop.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say your inbox gets about 40 meaningful emails a day, and manual triage takes maybe 2 minutes each (read, decide, label, forward or start a reply). That’s around 80 minutes daily before you even do real work. With this workflow, the trigger is instant, classification and routing runs in the background, and you mostly spend time only on sales drafts that need approval, maybe 15–20 minutes a day. That’s roughly an hour back on an average day.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Gmail to monitor, label, draft, and reply.
- Telegram for alerts and internal summaries.
- OpenRouter API key (get it from your OpenRouter dashboard).
- OpenAI API key for embeddings (get it from OpenAI API keys page).
- Pinecone to store and search FAQs, policies, and business info.
Skill level: Intermediate. You’ll connect accounts, paste API keys, and adjust categories and prompts to match your business.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new email arrives in Gmail. The Gmail trigger watches your inbox and pulls the key fields the AI needs (who it’s from, the subject line, and the body).
The email gets categorized by AI. A GPT‑5 classifier reviews the content and routes it into support, finance, sales/leads, internal mail, or a “do nothing” path for messages you don’t want to act on.
Each category takes the right action. Support can generate a reply using your Pinecone FAQ/policy knowledge. Finance can decide “payment” vs “receivable” and forward to the correct team. Sales can generate a draft and ask you to review if needed, which keeps quality high without slowing you down.
You get Telegram visibility without living in your inbox. When a finance email is forwarded, you get a Telegram alert. When a sales draft is created (or more info is required), Telegram tells you what to do next. Internal emails can be summarized into a quick message so you can respond faster.
You can easily modify the categories to match your teams (for example, “Partnerships” or “Hiring”) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Gmail Trigger
Start by setting up the workflow trigger so new emails are captured and passed into the routing logic.
- Add and open Incoming Gmail Watcher.
- Credential Required: Connect your gmailOAuth2 credentials.
- Set Simple to
falseto retain full email metadata (headers, body, and IDs).
Step 2: Connect Email Routing and Classification
Route incoming emails into support, finance, sales, internal, or other branches using the classifier and model.
- Open Email Category Router and set Input Text to
=From: {{ $json.headers.from }} Subject: {{ $json.headers.subject }} Email body: {{ $json.text }}. - Confirm the categories in Email Category Router are configured for Customer Support, Finance, Others, Sales Opportunities, and Internal.
- Open OpenRouter GPT5 Mini and set Model to
openai/gpt-5-mini. - Credential Required: Connect your openRouterApi credentials on OpenRouter GPT5 Mini.
- Verify Email Category Router routes to Support Response Agent, Finance Review Agent, Sales Lead Agent, Internal Mail Agent, and Do Nothing Placeholder based on classification (not in parallel).
Step 3: Set Up Support Response AI
Generate customer support replies from the FAQ knowledge base and send a reply automatically.
- Open Support Response Agent and set Text to
={{ $json.text }}. - Confirm OpenRouter Chat Mini is connected as the language model for Support Response Agent and set Model to
openai/gpt-4o-mini. - Credential Required: Connect your openRouterApi credentials on OpenRouter Chat Mini.
- Ensure FAQ Policy Vector Store is connected as a tool with Mode
retrieve-as-tooland Tool DescriptionCall this tool to access Policy and FAQ information. - Credential Required: Connect your pineconeApi credentials on FAQ Policy Vector Store, and your openAiApi credentials on OpenAI Embedding Vector.
- Open Send Email Reply and set Operation to
reply, Message to={{ $json.output }}, and Message ID to={{ $('Incoming Gmail Watcher').item.json.id }}. - Credential Required: Connect your gmailOAuth2 credentials on Send Email Reply.
- Open Tag as Support and set Operation to
addLabelsand Message ID to={{ $('Incoming Gmail Watcher').item.json.id }}. - Credential Required: Connect your gmailOAuth2 credentials on Tag as Support.
Step 4: Configure Finance Review and Routing
Classify finance emails as receipts or vendor invoices, then alert the right team and Telegram channel.
- Open Finance Review Agent and confirm Text is set to
=Here's a new email that came in: {{ $('Incoming Gmail Watcher').item.json.id }} Subject : {{ $('Incoming Gmail Watcher').item.json.headers.subject }} From : {{ $('Incoming Gmail Watcher').item.json.headers.from }} Email body : {{ $('Incoming Gmail Watcher').item.json.text }}. - Ensure OpenRouter Chat Mini 2 is connected as the language model for Finance Review Agent and set Model to
openai/gpt-4o-mini. Credential Required: Connect your openRouterApi credentials. - Verify Finance Output Schema is attached as the output parser to Finance Review Agent (configure this on the parent agent).
- Confirm Tag as Finance is attached as an AI tool to Finance Review Agent and set Message ID to
={{ $('Incoming Gmail Watcher').item.json.id }}and Operation toaddLabels. Credential Required: Connect your gmailOAuth2 credentials on the parent agent’s tool configuration. - Open Route by Finance Type and confirm the two outputs evaluate Left Value as
={{ $json.output.emailType }}with booleantruefor Customer Receipts and booleanfalsefor Vendor Invoice. - Configure Email Receivables Team with Send To
[YOUR_EMAIL], Subject=Received {{ $json.output.Amount }} from {{ $json.output.From }}, and Message=Note receipt {{ $json.output.Amount }} from {{ $json.output.From }}. Credential Required: Connect your gmailOAuth2 credentials. - Configure Email Payments Team with Send To
[YOUR_EMAIL], Subject=Make Payment to {{ $json.output.From }} by {{ $json.output.DueDate }}, and Message=Invoice received from {{ $json.output.From }}. |Make payment by {{ $json.output.DueDate }}. Credential Required: Connect your gmailOAuth2 credentials. - Set Telegram Receipt Alert Text to
=📥 Income-ing! ${{ $json.output.Amount }} from {{ $json.output.From.split('<')[0].trim() }}and Telegram Payment Alert Text to=💲Pay ${{ $json.output.Amount }} to {{ $json.output.From.split('<')[0].trim() }}. Credential Required: Connect your telegramApi credentials.
[YOUR_EMAIL] in Email Receivables Team and Email Payments Team with real team inboxes, and set a valid Chat ID in Telegram Receipt Alert (currently =).Step 5: Configure Sales Lead Processing
Use your knowledge base to draft sales replies, or notify you when manual review is needed.
- Open Sales Lead Agent and set Text to
=Subject : {{ $json.headers.subject }} From : {{ $json.headers.from }} Email : {{ $json.text }}. - Ensure OpenRouter Chat Mini 3 is connected as the language model and set Model to
openai/gpt-4o-mini. Credential Required: Connect your openRouterApi credentials. - Verify Business Services Vector is connected as a tool with Mode
retrieve-as-tooland Tool DescriptionKnowledge of the business and services it provides. Credential Required: Connect your pineconeApi credentials, and your openAiApi credentials on OpenAI Embedding Vector 2. - Confirm Sales Output Schema is attached as the output parser to Sales Lead Agent (configure this on the parent agent).
- Ensure Tag Sales Opportunities is attached as an AI tool to Sales Lead Agent with Message ID
={{ $('Incoming Gmail Watcher').item.json.id }}and OperationaddLabels. Credential Required: Connect your gmailOAuth2 credentials on the parent agent’s tool configuration. - Open Requires Review? and confirm the condition uses Left Value
={{ $json.output.escalate }}with booleantrueto trigger manual review. - Configure Notify Manual Review Text to
=📥 New lead: {{ $('Incoming Gmail Watcher').item.json.from.value[0].name }} I searched the knowledge database but I wasn't sure how to respond. Please see your email!. Credential Required: Connect your telegramApi credentials. - Configure Create Email Draft with Resource
draft, Email Typehtml, Message={{ $json.output.emailBody }}, and Subject=Re: {{ $('Incoming Gmail Watcher').item.json.subject }}. Credential Required: Connect your gmailOAuth2 credentials. - Set Notify Draft Review Text to
=📥 New lead: {{ $('Incoming Gmail Watcher').item.json.from.value[0].name }} I searched the knowledge database and drafted a reply for you. Please check your email! Facts used: {{ $json.output.knowledgeDatabase }} Rationale in email reply: {{ $json.output.reason }}. Credential Required: Connect your telegramApi credentials.
Step 6: Configure Internal Email Summaries and Placeholders
Summarize internal emails and label them, while keeping a placeholder for non-matching categories.
- Open Internal Mail Agent and set Text to
=Subject : {{ $json.headers.subject }} From : {{ $json.headers.from }} Email : {{ $json.text }}. - Ensure OpenRouter Chat Mini 4 is connected as the language model and set Model to
openai/gpt-4o-mini. Credential Required: Connect your openRouterApi credentials. - Confirm Internal Output Schema is attached as the output parser to Internal Mail Agent (configure this on the parent agent).
- Attach Tag as Internal as an AI tool to Internal Mail Agent with Message ID
={{ $('Incoming Gmail Watcher').item.json.id }}and OperationaddLabels. Credential Required: Connect your gmailOAuth2 credentials on the parent agent’s tool configuration. - Set Telegram Internal Summary Text to
={{ $json.output.From }} sent you an email about {{ $json.output.emailBody }}. Credential Required: Connect your telegramApi credentials. - Leave Do Nothing Placeholder in place to catch uncategorized emails for future expansion or debugging.
Step 7: Test and Activate Your Workflow
Verify each branch works correctly before enabling production automation.
- Click Execute Workflow and send a test email that matches each category (Support, Finance, Sales Opportunities, Internal, and Others).
- Confirm that Support Response Agent leads to Send Email Reply and then Tag as Support.
- Confirm Finance Review Agent routes through Route by Finance Type and triggers Email Receivables Team or Email Payments Team followed by the matching Telegram alert.
- Confirm Sales Lead Agent sends to Requires Review? and either Notify Manual Review or Create Email Draft → Notify Draft Review.
- Confirm Internal Mail Agent sends a message to Telegram Internal Summary and labels the email with Tag as Internal.
- When results look correct, toggle the workflow Active to enable continuous email triage.
Common Gotchas
- Gmail permissions are picky. If labeling or drafting fails, check the connected Google account in n8n credentials and confirm it has Gmail access to read, label, and send.
- If you’re relying on external AI calls (OpenRouter, embeddings, Pinecone), occasional slow responses happen. Increase any wait time you use and watch the n8n execution log to confirm downstream nodes aren’t running with empty data.
- The default agent prompts are usually too generic for real businesses. Add your brand voice, your refund policy, and “when to escalate to a human” early, or you’ll spend your time cleaning up drafts.
Frequently Asked Questions
About an hour if you already have your API keys and bot ready.
No. You’ll connect accounts, paste API keys, and adjust a few category rules and prompts.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenRouter/OpenAI usage plus Pinecone costs for vector search.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, but you’ll need to swap the Gmail trigger and Gmail send/draft/label actions for Outlook equivalents. The classification and routing logic stays the same, so most edits are at the “inbox” and “send message” parts of the workflow. Many teams also customize categories like “Partnerships,” “Hiring,” or “VIP clients,” then tune the prompts so each agent knows what to do.
Usually it’s expired or revoked Google permissions in n8n credentials, so reconnect the Gmail account and try again. If drafts or labels fail but reading works, double-check that the account has the right Gmail access scopes enabled. Rate limits can also show up when you process big batches, especially if you rerun old executions.
A typical small business inbox volume is fine, and scaling mostly depends on your n8n plan and your AI API limits.
It depends on how far you want to take it. Zapier and Make are great for simple “if subject contains X, send message to Y” style automations, and they’re easy to maintain. This workflow leans on multi-step AI agents, structured outputs, and a knowledge base (Pinecone), which is the kind of logic that gets awkward or expensive in simpler tools. n8n also gives you a self-hosted option, which matters if you want more control and fewer execution limits. If you’re unsure, Talk to an automation expert and we’ll help you pick the cleanest approach.
Once this is running, your inbox stops being a guessing game. The workflow handles the repetitive sorting and nudging, and you focus on the few messages that truly need your judgment.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.