Telegram to Gmail, cited trading reports on demand
Trading ideas usually start fast. Then you lose momentum because every “quick check” turns into five tabs, two screenshots, and a messy note you can’t find later. That’s how good decisions get delayed (or worse, rushed).
This Telegram Gmail reports setup hits independent traders first, but crypto newsletter writers and small research teams feel it too. You send a ticker and a chart once, and you get a structured report back in Gmail with citations so you can reference it later without re-doing the work.
Below, you’ll see how the workflow runs in n8n, what it produces, and how to use it safely as a decision-support tool (not a magic signal generator).
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Telegram to Gmail, cited trading reports on demand
flowchart LR
subgraph sg0["When Executed by Another Workflow Flow"]
direction LR
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set 'response' value", pos: "b", h: 48 }
n3["<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/>Download Chart"]
n4["<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/>Tradingview Chart"]
n5@{ icon: "mdi:robot", form: "rounded", label: "Extract analyst question and..", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "Sonnet 3_7", pos: "b", h: 48 }
n7@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Lookup Exchange", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Response", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n13@{ icon: "mdi:brain", form: "rounded", label: "Perplexity Sonar", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n18["<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/>Perplexity"]
n11 --> n9
n11 --> n18
n18 --> n10
n6 -.-> n5
n3 --> n5
n9 --> n4
n13 -.-> n9
n4 --> n3
n15 -.-> n9
n7 --> n11
n5 --> n2
end
subgraph sg1["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n1@{ icon: "mdi:memory", form: "rounded", label: "Window Buffer Memory", pos: "b", h: 48 }
n8@{ icon: "mdi:wrench", form: "rounded", label: "Technical Analysis Tool", pos: "b", h: 48 }
n12@{ icon: "mdi:wrench", form: "rounded", label: "Perplexity Tool", pos: "b", h: 48 }
n14@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Sonnet 37", pos: "b", h: 48 }
n17@{ icon: "mdi:robot", form: "rounded", label: "Technical Analyst Leader", pos: "b", h: 48 }
n14 -.-> n17
n16 -.-> n17
n12 -.-> n17
n1 -.-> n17
n8 -.-> n17
n0 --> n17
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 n7,n0 trigger
class n5,n9,n15,n17 ai
class n6,n13,n16 aiModel
class n8,n12 ai
class n1 ai
class n11 decision
class n3,n4,n18 api
classDef customIcon fill:none,stroke:none
class n3,n4,n18 customIcon
The Problem: Trading notes are fast to start, hard to finish
You spot a move and want a clean read: trend, key levels, and “what changed” on fundamentals. But the process is clunky. You pull a TradingView chart, zoom in, screenshot it, then go hunting for news and on-chain chatter. After that, you stitch everything together in a note that isn’t consistent from day to day. Multiply that by a handful of tickers per week and you end up spending more time preparing analysis than actually using it.
It adds up fast. The problem is not one step. It’s the pile of them.
- Charts get interpreted differently each time, so your “system” turns into vibes and memory.
- Fundamental research ends up uncited, which makes it risky to share with a client, partner, or team.
- Email threads and chat messages scatter your history, so you can’t compare today’s setup to last month’s easily.
- Manual copy-paste invites small errors, like wrong tickers, stale timeframes, or missing context.
The Solution: Send one message, receive a cited trading report
This n8n workflow turns a simple Telegram message into a structured trading report delivered to your Gmail. It starts when you message the bot with a ticker (and optionally a quick question like “bullish continuation or dead cat bounce?”). The workflow identifies the right exchange details, fetches a fresh TradingView-style chart image, and passes it into an AI vision model to read technical signals like trend direction, RSI behavior, volume cues, and support/resistance zones. In parallel, it runs a separate research step using an internet-connected reasoning model to pull relevant fundamental context and cite sources. Finally, everything gets merged into one consistent report and emailed to you so it stays searchable, shareable, and easy to file.
The workflow begins in Telegram, then branches to chart retrieval plus fundamentals research. After the agent synthesizes the outputs, it parses the report into a clean structure and sends it through Gmail. You get one email per request, which means your analysis history becomes an archive instead of a scroll.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you do 5 tickers every week. Manually, you might spend about 10 minutes grabbing the right chart, another 15 minutes scanning news and context, and 10 minutes writing something coherent, so roughly 35 minutes each time (close to 3 hours weekly). With this workflow, you send one Telegram message in under a minute, wait a few minutes for chart retrieval and analysis, then the report lands in Gmail ready to skim or forward. You still make the decision, but the prep work stops eating your week.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram for sending tickers and prompts.
- Gmail to receive and archive the reports.
- OpenRouter API key (get it from OpenRouter.ai).
- Chart-img API key (get it from chart-img.com).
Skill level: Intermediate. You’ll mostly paste API keys, connect Telegram/Gmail, and confirm the prompts match your trading style.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A Telegram message triggers the request. You send a ticker and optional instructions in chat, and the workflow captures that input (with a small memory buffer so follow-ups can keep context).
The workflow fetches the right chart automatically. It figures out the exchange details, retrieves chart data, then downloads a chart image through HTTP Request nodes so the AI can “see” what you’d normally screenshot.
AI produces technical + fundamental analysis. A lead “technical analyst” agent coordinates two parallel jobs: vision-based chart reading (Claude Sonnet 3.7 via OpenRouter) and a fundamentals research pass (Perplexity-style tool plus a reasoning model) that returns sources you can verify.
The report is structured and emailed. A structured output parser cleans the response into predictable sections, then a Gmail tool sends it to your inbox so you can label it, search it, or forward it.
You can easily modify the report format to match your playbook, or switch the research depth depending on how time-sensitive the setup is. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Chat Trigger
Set up the entry point so incoming chat messages initiate the workflow.
- Add the Incoming Chat Trigger node as your primary trigger.
- Connect Incoming Chat Trigger to Lead Technical Analyst Agent to start AI processing when a chat message arrives.
- Leave default settings in Incoming Chat Trigger if you do not need custom webhook configuration.
Step 2: Connect Subworkflow Inputs
Enable the workflow to be called by other workflows for modular analysis execution.
- Add the Triggered by Subworkflow node to accept external workflow executions.
- Connect Triggered by Subworkflow to Route by Condition to route incoming data into the analysis paths.
Step 3: Set Up Lead Analyst AI Core
Configure the agent and its supporting AI tools, memory, and models that drive the analysis.
- Add Lead Technical Analyst Agent as the main AI agent node.
- Connect Window Memory Buffer to Lead Technical Analyst Agent via the ai_memory connection.
- Connect Sonnet Model 37 to Lead Technical Analyst Agent via the ai_languageModel connection.
- Connect Analysis Tool Workflow, Perplexity Workflow Tool, and Gmail Helper Tool to Lead Technical Analyst Agent via ai_tool connections.
Step 4: Configure Routing and Market Data Enrichment
Define how the workflow routes requests and enriches data with exchange details and chart data.
- Configure Route by Condition to evaluate incoming content and direct it to Find Exchange Details or Perplexity API Request.
- Connect Perplexity Sonar Model as the ai_languageModel and Structured Result Parser as the ai_outputParser for Find Exchange Details.
- Chain Find Exchange Details → Retrieve Chart Data → Fetch Chart File → Extract Q&A Response to fetch chart context and generate a structured response.
- Connect Sonnet Model 3.7 to Extract Q&A Response via the ai_languageModel connection.
- Connect Extract Q&A Response to Assign Response Field to map the generated response into your output payload.
Step 5: Configure Output Preparation
Prepare the final response content that will be returned to the chat or calling workflow.
- Connect Perplexity API Request to Prepare Response Output to format external research into the final response.
- Use Assign Response Field and Prepare Response Output to map the final response fields for downstream consumption.
Step 6: Test and Activate Your Workflow
Validate the full chat-to-response flow and then enable it for production use.
- Click Execute Workflow and send a sample message through Incoming Chat Trigger.
- Confirm that the execution flows from Incoming Chat Trigger to Lead Technical Analyst Agent and through the routing path defined in Route by Condition.
- Verify outputs from Assign Response Field or Prepare Response Output contain the final response payload.
- When satisfied, toggle the workflow to Active to enable real-time responses.
Common Gotchas
- Telegram bot permissions and chat IDs can trip you up. If messages don’t trigger anything, check the Telegram Trigger node first and confirm you’re messaging the correct bot.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- OpenRouter or chart-img credentials can expire, rotate, or get rate-limited. If chart downloads suddenly fail, look at the HTTP Request node’s response body to spot auth or quota issues quickly.
Frequently Asked Questions
About 30 minutes if your API keys and accounts are ready.
No. You will connect accounts, paste API keys, and tweak 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 OpenRouter and chart-img API usage costs, which depend on how many reports you generate.
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 do it deliberately. You can adjust the chart retrieval inputs (the part that fetches TradingView-style images) to force a timeframe like 1H or 1D, and you can rewrite the Lead Technical Analyst Agent instructions to match your rules (for example, “no trade unless trend and volume agree”). Many teams also customize the final email template in the “Prepare Response Output” step so the top of the report always shows a one-line bias, invalidation level, and what would change their mind.
Usually it’s the bot token, the wrong chat, or Telegram not delivering updates. Recheck the Telegram Trigger node settings, confirm you’re messaging the exact bot tied to that token, and look at the last execution’s raw input to see if anything arrived. If the trigger fires but the workflow fails later, the issue is more likely in the HTTP Request nodes (chart-img) or your OpenRouter credentials.
On n8n Cloud Starter, you can run a healthy number of executions per month for personal use, and higher tiers handle more volume. If you self-host, there’s no platform execution limit; your bottlenecks will be API quotas and how fast your server can process requests. Practically, many users run a few reports per day without thinking about it, then upgrade only when they start doing batch research.
Often, yes. This workflow uses branching logic, tool-like subworkflows, and structured parsing, which is where Zapier and Make can start to feel cramped or expensive at scale. n8n also gives you the self-host option, which matters if you want lots of runs without counting every task. The tradeoff is setup: you’ll spend a bit more time getting prompts and credentials right. Talk to an automation expert if you want help choosing.
Once this is running, your “quick check” becomes a repeatable report you can actually use again later. The workflow handles the busywork; you keep the judgment (and the responsibility).
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.