Google Sheets + Telegram: daily portfolio briefings
You already have your holdings in a spreadsheet. The annoying part is everything after that: checking headlines, filtering noise, and trying to decide what matters for your positions.
Portfolio managers feel it first, but solo investors and financial advisors end up doing the same daily ritual. This Sheets Telegram briefings automation turns your Google Sheets holdings into a Telegram message that’s actually tailored, not generic.
Below you’ll see how the workflow runs each morning, pulls your portfolio, does fresh web research, and delivers a clear briefing with risks and ideas you can act on.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets + Telegram: daily portfolio briefings
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Portfolio Holdings", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Stock Market News & Analytic..", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Perplexity", pos: "b", h: 48 }
n6["<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"]
n5 -.-> n4
n2 -.-> n4
n0 --> n4
n1 -.-> n4
n3 -.-> n4
n4 --> n6
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 n4 ai
class n1 aiModel
class n2 ai
class n3 database
classDef customIcon fill:none,stroke:none
class n6 customIcon
The Problem: Your news isn’t portfolio-aware
Most “daily market updates” are built for everyone, which means they’re built for no one. You skim a newsletter, open a few tabs, maybe check a watchlist, then you still have to map it back to your actual holdings in Google Sheets. That mapping step is where the time goes. It also creates mental clutter because you’re constantly asking, “Does this matter for me?” Miss one relevant headline and you second-guess your plan for the rest of the day. It’s exhausting, honestly.
The friction compounds. Here’s where it breaks down in real life.
- You jump between Google Sheets, news sites, and research tools just to understand what changed since yesterday.
- Generic summaries don’t mention your tickers, so you end up doing manual interpretation and rewriting anyway.
- When you’re busy, the “quick check” turns into no check, and you find out about risk events late.
- Even if you do the work, it’s hard to keep the output consistent enough to share with a client or a team.
The Solution: Daily briefings generated from your holdings
This n8n workflow runs on a schedule (default is 10 AM) and starts by pulling your current holdings straight from Google Sheets, so there’s nothing to “update” inside the automation. Then an AI agent reviews fresh market news from the last 24 hours using a Perplexity research tool and combines that context with your positions. It generates a clean, portfolio-specific briefing that highlights what moved, what matters, and what to watch next. Finally, the workflow delivers the summary to Telegram so you see it where you already check messages. One daily ping. Much less tab hopping.
The workflow starts with a scheduled trigger. From there, it reads your holdings, researches relevant news, and produces a briefing with risk notes and trade suggestions. Telegram receives the final message, ready to skim in under a minute.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 20 positions in Google Sheets and you do a daily check across three places: a news source, a research tool, and your broker/watchlist. Even if you’re quick, that’s maybe 10 minutes per place plus another 10 minutes to connect the dots, so about 40 minutes a day. With this workflow, you spend about 2 minutes making sure your sheet is updated, then you just wait for the scheduled run at 10 AM. The Telegram message shows up when it’s done, usually within a few minutes of processing. That’s roughly half an hour back each day.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store your holdings list.
- Telegram to receive the daily briefing message.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Intermediate. You’ll connect accounts, paste API keys, and do a little testing to confirm the sheet fields match your holdings format.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A scheduled time kicks things off. The workflow runs automatically every day (commonly 10 AM), so your briefing arrives even if you’re in meetings or traveling.
Your holdings are read from Google Sheets. n8n pulls the current portfolio from your sheet on each run, which means the automation stays accurate without you editing the workflow.
AI research and analysis happens in the middle. A Perplexity search tool gathers the most relevant market news from the past 24 hours, and an AI agent combines that with your holdings to produce holding-specific impacts, risks, and possible actions.
The briefing is delivered to Telegram. You get a single message with the highlights, what changed, and what to watch next. Clean output, easy to skim.
You can easily modify Telegram delivery to Slack or email based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
Set the workflow to run daily based on the schedule defined in the trigger node.
- Add the Scheduled Run Trigger node as the workflow trigger.
- Set the schedule rule to run at 10 for triggerAtHour.
- Connect Scheduled Run Trigger to Market Insights Agent.
Step 2: Connect Google Sheets
Provide access to the portfolio holdings so the agent can reference current positions.
- Open Retrieve Portfolio Sheet and connect it to Market Insights Agent as an AI tool.
- Credential Required: Connect your googleSheetsOAuth2Api credentials.
- Leave the default options as configured unless you need to target a specific sheet or range.
Step 3: Set Up the AI Agent and Language Model
Configure the core AI logic, memory, and language model that generate the daily market briefing.
- Open Market Insights Agent and set Prompt Type to
define. - Set Text to
=Fetch the summary of the stock market news today and how it affected my portolio. Make sure that they are the most recent news, take reference to the date today: {{ $json['Readable date'] }} by using the Perplexity Tool Search. Also give some recommendations. Start the response with "Today is {{ $json['Readable date'] }}...". - In OpenAI Dialogue Model, select the model
gpt-4.1. - Credential Required: Connect your openAiApi credentials to OpenAI Dialogue Model.
- Configure Session Memory Buffer with Session ID Type set to
customKeyand Session Key set to={{ $workflow.id }}. - Attach OpenAI Dialogue Model and Session Memory Buffer to Market Insights Agent using their AI connections.
Step 4: Configure External Research and Output
Enable live market research via Perplexity and deliver the final briefing to Telegram.
- Open Perplexity Search Tool and set Model to
sonar-pro. - Set Simplify to
={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Simplify_Output', ``, 'boolean') }}. - Credential Required: Connect your perplexityApi credentials.
- Attach Perplexity Search Tool to Market Insights Agent as an AI tool so the agent can perform web research.
- Open Telegram Alert Sender and set Text to
={{ $json.output }}. - Set Chat ID to
[YOUR_ID]to target your Telegram chat. - Credential Required: Connect your telegramApi credentials.
- Connect Market Insights Agent to Telegram Alert Sender.
output before sending.Step 5: Test and Activate Your Workflow
Verify that the workflow generates a market briefing and delivers it to Telegram.
- Use Execute Workflow to run the workflow manually from Scheduled Run Trigger.
- Confirm that Market Insights Agent produces a response starting with
Today is {{ $json['Readable date'] }}...and includes the sections defined in the system message. - Check that Telegram Alert Sender delivers the full briefing to the chat ID.
- When satisfied, toggle the workflow to Active so it runs automatically at the scheduled hour.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials page and confirm the connected Google account still has access to the spreadsheet.
- If Perplexity responses come back slowly on busy news days, processing times vary. Bump up any wait duration (if you add one) or handle empty responses so Telegram doesn’t send a blank briefing.
- Default prompts in the AI agent are generic. Add your preferred structure (sections, tone, risk style) early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your accounts and API keys are ready.
No. You’ll mostly paste credentials, choose the correct Google Sheet, and test a run.
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 and Perplexity costs, depending on your request volume.
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 a common tweak. You can replace the Telegram Alert Sender with Slack or Gmail/Send Email nodes, while keeping the same scheduled trigger, Google Sheets read, and Market Insights Agent logic. Many teams also customize the AI prompt to match their format, like “Top 5 moves,” “Risks,” and “Actions for today.”
Usually it’s a bot token issue or the bot hasn’t been added to the right chat. Recreate the Telegram credentials in n8n, confirm the bot can message you (or the group), then re-test the Telegram node. If it still fails, check for rate limits if you’re sending to multiple chats or firing the workflow too often while testing.
Dozens of holdings is fine for most setups, and the practical limit is usually API cost and how long you want the briefing to be.
Often, yes, because this workflow benefits from an agent that can do richer logic and tool use, not just “send a summary.” n8n also lets you self-host, which removes execution caps and keeps data in your environment if you need that. Zapier or Make can still work if you only want a simple “fetch text and send message” flow, but you’ll usually hit limits when you try to add memory, branching, or deeper prompt control. Another factor is cost: multi-step AI workflows can get expensive fast on per-task pricing. If you’re torn, Talk to an automation expert and we’ll map the simplest setup that matches your goals.
You set the holdings once, and the workflow does the daily interpreting for you. The briefing shows up in Telegram, and you can get on with your day.
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.