Gmail + Telegram: triage emails and reply faster
Your inbox isn’t “busy.” It’s chaotic. Important messages get buried under promos, half-replied threads pile up, and you lose time re-reading the same email three times just to decide what to do.
This Gmail Telegram triage setup hits Support leads first, but sales owners and small-team founders feel it too. You get labeled emails, clean summaries, and reply drafts that sound like you, plus Telegram alerts when something needs human judgment.
Below you’ll see exactly how the workflow routes emails to different AI agents, when it auto-replies, and how it keeps “sensitive” emails from getting a risky automated response.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Gmail + Telegram: triage emails and reply faster
flowchart LR
subgraph sg0["Gmail Flow"]
direction LR
n3@{ icon: "mdi:robot", form: "rounded", label: "Text Classifier", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:message-outline", form: "rounded", label: "Add Label: Internal", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Add Label: Customer Support", pos: "b", h: 48 }
n7@{ icon: "mdi:message-outline", form: "rounded", label: "Add Label: Promotions", pos: "b", h: 48 }
n8@{ icon: "mdi:message-outline", form: "rounded", label: "Add Label: Admin/Finance", pos: "b", h: 48 }
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Add Label: Sales Opportunities", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n11@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail3", pos: "b", h: 48 }
n12@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail4", pos: "b", h: 48 }
n13@{ icon: "mdi:play-circle", form: "rounded", label: "Gmail Trigger1", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "Customer Support Agent", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Internal Agent", pos: "b", h: 48 }
n16@{ icon: "mdi:robot", form: "rounded", label: "Promotions Analyst Agent", pos: "b", h: 48 }
n17@{ icon: "mdi:robot", form: "rounded", label: "Finance & Billing Assistant ..", pos: "b", h: 48 }
n18@{ icon: "mdi:robot", form: "rounded", label: "Sales Agent", pos: "b", h: 48 }
n19@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail1", pos: "b", h: 48 }
n20@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail5", pos: "b", h: 48 }
n21["<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/>Finance & Billing Assistant .."]
n22["<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/>Sales Notifier"]
n23["<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/>Internal notifier"]
n24["<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/>Customer Support notifier"]
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/>Promotions Analyst Notifier"]
n29@{ icon: "mdi:robot", form: "rounded", label: "Notification clasifier5", pos: "b", h: 48 }
n30@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model4", pos: "b", h: 48 }
n31@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model1", pos: "b", h: 48 }
n35@{ icon: "mdi:message-outline", form: "rounded", label: "Mark as read", pos: "b", h: 48 }
n36@{ icon: "mdi:message-outline", form: "rounded", label: "Mark as read3", pos: "b", h: 48 }
n37@{ icon: "mdi:message-outline", form: "rounded", label: "Mark as read4", pos: "b", h: 48 }
n38@{ icon: "mdi:message-outline", form: "rounded", label: "Mark as read1", pos: "b", h: 48 }
n39@{ icon: "mdi:message-outline", form: "rounded", label: "mark as read", pos: "b", h: 48 }
n40@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive Trigger", pos: "b", h: 48 }
n41["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Delete Duplicated"]
n42@{ icon: "mdi:cog", form: "rounded", label: "Download file", pos: "b", h: 48 }
n43@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store", pos: "b", h: 48 }
n44@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n45@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n46@{ icon: "mdi:robot", form: "rounded", label: "Recursive Character Text Spl..", pos: "b", h: 48 }
n47@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive Trigger1", pos: "b", h: 48 }
n48@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n49@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store1", pos: "b", h: 48 }
n50@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store2", pos: "b", h: 48 }
n51@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store3", pos: "b", h: 48 }
n52@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store4", pos: "b", h: 48 }
n53@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store5", pos: "b", h: 48 }
n54@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet4", pos: "b", h: 48 }
n55@{ icon: "mdi:database", form: "rounded", label: "Log information into sheet", pos: "b", h: 48 }
n56@{ icon: "mdi:database", form: "rounded", label: "Log information into sheet1", pos: "b", h: 48 }
n57@{ icon: "mdi:database", form: "rounded", label: "Log information into sheet2", pos: "b", h: 48 }
n58@{ icon: "mdi:database", form: "rounded", label: "Log information into sheet3", pos: "b", h: 48 }
n10 --> n39
n19 --> n29
n11 --> n21
n12 --> n22
n20 --> n24
n48 --> n41
n18 --> n12
n35 --> n56
n39 --> n25
n42 --> n43
n38 --> n55
n36 --> n58
n37 --> n54
n13 --> n3
n15 --> n19
n22 --> n37
n3 --> n5
n3 --> n6
n3 --> n7
n3 --> n8
n3 --> n9
n41 --> n42
n44 -.-> n43
n44 -.-> n49
n44 -.-> n50
n44 -.-> n51
n44 -.-> n52
n44 -.-> n53
n23 --> n38
n4 -.-> n3
n5 --> n15
n45 -.-> n43
n40 --> n48
n7 --> n16
n47 --> n48
n14 --> n20
n30 -.-> n29
n49 -.-> n15
n50 -.-> n14
n51 -.-> n16
n52 -.-> n17
n53 -.-> n18
n29 --> n23
n8 --> n17
n16 --> n10
n24 --> n35
n31 -.-> n29
n6 --> n14
n25 --> n57
n9 --> n18
n17 --> n11
n46 -.-> n45
n21 --> n36
end
subgraph sg1["Notification clasifi Flow"]
direction LR
n32@{ icon: "mdi:robot", form: "rounded", label: "Notification clasifier6", pos: "b", h: 48 }
n33@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model5", pos: "b", h: 48 }
n34@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model2", pos: "b", h: 48 }
n59@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n33 -.-> n32
n59 -.-> n32
n34 -.-> n32
end
subgraph sg2["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Message a model", pos: "b", h: 48 }
n2@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message", pos: "b", h: 48 }
n1 --> n2
n0 --> n1
end
subgraph sg3["Gmail Flow"]
direction LR
n26@{ icon: "mdi:play-circle", form: "rounded", label: "Gmail Trigger2", pos: "b", h: 48 }
n27@{ icon: "mdi:robot", form: "rounded", label: "Notification clasifier", pos: "b", h: 48 }
n28@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n26 --> n27
n28 -.-> n27
end
subgraph sg4["Error Flow"]
direction LR
n60@{ icon: "mdi:play-circle", form: "rounded", label: "Error Trigger", pos: "b", h: 48 }
n61["<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/>Workflow Error Message1"]
n62@{ icon: "mdi:database", form: "rounded", label: "log error Data1", pos: "b", h: 48 }
n60 --> n61
n61 --> n62
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 n13,n40,n47,n0,n26,n60 trigger
class n3,n14,n15,n16,n17,n18,n29,n45,n46,n32,n59,n1,n27 ai
class n4,n30,n31,n33,n34,n28 aiModel
class n43,n49,n50,n51,n52,n53 ai
class n44 ai
class n10 decision
class n54,n55,n56,n57,n58,n62 database
class n41 api
class n25 disabled
class n32 disabled
class n33 disabled
class n34 disabled
class n59 disabled
class n0 disabled
class n1 disabled
class n2 disabled
class n26 disabled
class n27 disabled
class n28 disabled
classDef customIcon fill:none,stroke:none
class n21,n22,n23,n24,n25,n41,n61 customIcon
The Problem: Inbox triage steals your best hours
Email overload isn’t just “a lot of messages.” It’s constant context switching. You open an email, decide it’s sales, then realize it’s actually support, then hunt for the last thread, then rewrite the same reply you sent last week. Meanwhile the truly urgent stuff (finance, internal escalations, angry customers) is mixed in with newsletters and vendor follow-ups. One missed message can become a churn risk, an awkward internal delay, or a lost deal. And honestly, the mental drain is worse than the time drain.
The friction compounds. Here’s where it breaks down in real teams:
- People waste about 1–2 hours a day just sorting what’s urgent versus “later.”
- Replies get inconsistent because you’re writing fast, not writing well.
- Sales opportunities get spotted too late, so the “first responder advantage” disappears.
- Sensitive threads (billing, internal issues) sit in the same pile as spam and promos, which increases the chance of a bad automated response.
The Solution: Multi-agent email triage with Gmail + Telegram
This workflow watches your Gmail inbox for new unread messages, then uses AI to classify each email into the category that actually matches what it needs: Sales, Customer Support, Internal, Promotions, or Admin/Finance. Once it’s categorized, the email is routed to a dedicated AI agent with a specific “job” and tone guidelines. Support and internal emails can get an immediate drafted response (and, if you choose, an automatic reply). Sales, finance, and promotions get summarized and packaged for review so you can move fast without handing control to a bot. Finally, Telegram delivers the right kind of alert so you only get pinged when it matters.
The workflow starts when Gmail sees an unread email. AI reads the subject and body, assigns a category, then pushes the message to the correct agent for the outcome you want. The result is either a Gmail reply, a Gmail draft, or a Telegram notification with a useful summary so you can decide quickly.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say your inbox gets about 60 meaningful emails a day. If you spend only 2 minutes skimming and labeling each one, that’s roughly 2 hours daily before you’ve even replied. With this workflow, Gmail categorizes and labels automatically, then drafts replies for support/internal while sending Telegram summaries for sales and finance. Your “touch time” becomes quick approvals and edits, maybe 20–30 minutes total, plus the workflow’s background processing.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Gmail to trigger, label, draft, and reply.
- Telegram to receive sensitive or high-priority alerts.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Beginner. You’ll connect accounts, create Gmail labels, and tweak a few prompts.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new unread Gmail email arrives. The Gmail trigger watches your inbox and grabs the subject, sender, and body as soon as it appears.
AI classifies the message. A text classifier reads the content and assigns a category like Customer Support, Sales Opportunity, Promotions, Internal, or Admin/Finance. This is the difference between “AI writes emails” and “AI runs your inbox like a system.”
The right agent handles the right job. The workflow routes the email through logic checks, then passes it to a specialized AI agent with a custom instruction set. Support gets a helpful reply draft. Promotions might get a tight summary. Finance gets a careful, structured note so you don’t miss the one detail that matters.
Outputs go to Gmail and Telegram. Internal and support threads can be replied to directly in Gmail (or drafted if you prefer a review step). Sales/finance/promotions generate drafts or summaries, then Telegram alerts you with what you need to know.
You can easily modify categories to match your business, so “Job Applications” or “Partnerships” gets handled correctly. See the full implementation guide below for customization options.
Common Gotchas
- Gmail credentials can expire or need specific permissions. If things break, check n8n’s Credentials page and your Google account security alerts first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 10–15 minutes if your Gmail labels and accounts are ready.
No. You’ll connect accounts, paste your OpenAI key, and adjust a few 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 OpenAI API usage, which is usually small for email triage and drafting.
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, and it’s one of the best upgrades you can make. Update the text classifier to include your new category, then add a matching AI Agent with a system prompt that fits the task (for example, extract role, seniority, and portfolio links). After that, plug in routing logic so those emails don’t get mixed into support or sales. Many teams also add a Google Sheets row or a Drive folder action for that category so everything stays organized.
Usually it’s expired Google OAuth permissions or the wrong Gmail credential attached to the trigger versus the action nodes. Reconnect the Gmail credentials in n8n, then confirm the workflow is allowed to read, label, draft, and send. Also check that your required Gmail labels already exist, because missing labels can cause “it ran but did nothing” confusion.
A lot, as long as you’re realistic about review time. On n8n Cloud, your limit depends on the plan’s monthly executions, while self-hosting has no hard execution cap (it’s mostly your server). Practically, teams often run this on hundreds of emails a day without issues, but you may need to pace processing if you’re also calling OpenAI for every message.
For multi-agent routing and more nuanced logic, n8n tends to win because you can branch freely without paying per-path, and you can self-host when volume grows. You also get more control over how prompts, memory, and formatting behave. Zapier or Make can still be fine if you’re doing a simple “summarize and post to Telegram” flow. This one is closer to an inbox operating system, so the extra control matters. Talk to an automation expert if you want help picking the simplest option.
Once this is live, your inbox stops being a to-do list and starts acting like a routed queue. The workflow handles the repetitive sorting and first drafts, so you can spend your attention on the messages that actually move the business.
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.