🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Telegram + PDF.co: client-ready portfolio PDFs sent

Lisa Granqvist Partner Workflow Automation Expert

Your “weekly portfolio update” starts as a good intention, then turns into a messy mix of screenshots, half-finished notes, and last-minute PDF formatting. By the time it’s ready, the market has already moved and you’re still hunting for the right version of the file.

This hits advisors and newsletter operators first. But if you’re running a small investment community on Telegram, you feel it too. Telegram PDF reports shouldn’t take your whole Friday afternoon.

This automation turns research, holdings data, and commentary into a polished PDF, then delivers it to every registered subscriber on Telegram. You’ll see what it does, what you need, and how teams typically use it week after week.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Telegram + PDF.co: client-ready portfolio PDFs sent

The Problem: Weekly portfolio PDFs are a time sink

Clients and subscribers love “a clean PDF.” You probably don’t. The slow part isn’t the market thinking. It’s the packaging: pulling data from wherever you track positions, summarizing what happened this week, making it look professional, exporting it, then sending it to the right people. One missed chart, one stale number, or one forgotten recipient and suddenly you’re doing damage control. And the more your list grows, the worse it gets because distribution becomes its own job.

The friction compounds. Here’s where it usually breaks down.

  • You spend about 2 hours a week just assembling the update, even when the content is “simple.”
  • PDF formatting turns into a rabbit hole, which means the report looks inconsistent from week to week.
  • Distribution is manual, so someone gets skipped or gets the wrong file version.
  • When a subscriber asks a question mid-week, you answer from memory instead of a reliable source of truth.

The Solution: Automated PDF reports delivered via Telegram

This n8n setup actually behaves like two connected automations working together. One flow runs on a schedule and creates the weekly report. It pulls your subscriber list from a database, runs market research through Perplexity, and uses an OpenAI chat model to turn raw findings into a readable narrative. Then it formats the report as HTML, hands that to PDF.co to generate a professional PDF, and sends the finished file to every registered Telegram user. The second flow runs continuously as a Telegram bot, so subscribers can upload a PDF for analysis or ask questions about portfolio changes in plain English, with memory stored in Postgres/Supabase so the conversation stays coherent.

The weekly report flow starts with a Cron schedule (every 7 days). From there, it batches through your users, builds the report content with AI agents, and generates a final PDF via PDF.co. Finally, Telegram delivers it to each recipient and the workflow marks the update as sent so you can track delivery.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you send a weekly PDF to 40 subscribers. Manually, you might spend about 2 hours building the report, plus maybe 1 minute per person to deliver it and handle “can you resend?” messages, so roughly 3 hours total. With this workflow, the scheduled run handles research, writing, PDF generation, and Telegram delivery in the background. You check the output and approve wording (about 10 minutes), then you’re done for the week.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram for subscriber delivery and bot conversations
  • PDF.co to generate polished PDFs from HTML
  • OpenAI API key (get it from the OpenAI dashboard)

Skill level: Intermediate. You’ll connect accounts, set environment variables, and test a few runs end-to-end.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A schedule kicks off the weekly run. A Cron-style trigger starts the workflow every 7 days, then pulls your current subscriber list from Postgres so the report always goes to the right people.

Research and data get shaped into “report-ready” content. Perplexity is used for market research, and AI agents map that response into structured sections. There’s also parsing and cleanup (so the final report doesn’t include odd formatting or broken tables).

The report is assembled and turned into a PDF. The workflow builds HTML, applies a consistent layout, then sends it to PDF.co to generate the final document. This is the moment that replaces all the manual copy-paste and template tweaking, honestly the part most teams hate.

Telegram delivers it, and delivery is recorded. The bot sends the PDF to each user and marks the report as sent in your database (Supabase is used for updates and status), which helps when someone asks, “Did I get last week’s report?”

You can easily modify the report sections to match your strategy (or compliance needs) based on your audience. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled Trigger

Set up the scheduled run that starts the automated research report pipeline for all clients.

  1. Add and open Scheduled Start Trigger.
  2. Choose your preferred schedule settings for the report cadence (daily, weekly, or custom).
  3. Confirm the flow continues from Scheduled Start Trigger to Retrieve Client List.

Step 2: Connect Client Data Sources and Iteration

Configure database access and batching to pull client records and process them one at a time.

  1. Open Retrieve Client List and connect it to your customer database query.
  2. Credential Required: Connect your Postgres credentials.
  3. Open Iterate Records and set your batch size to control how many clients are processed per run.
  4. Verify the path Retrieve Client ListIterate RecordsResearch Request Agent.
⚠️ Common Pitfall: If Iterate Records returns zero items, the downstream research pipeline won’t execute—confirm your SQL query in Retrieve Client List.

Step 3: Configure Telegram Intake and User Checks

Set up the inbound Telegram channel that lets users request and download PDFs, then route requests through user checks.

  1. Open Telegram Incoming Trigger and connect your bot.
  2. Credential Required: Connect your Telegram credentials.
  3. Open Fetch Supabase User, User Exists Check, and Create Supabase Record to map Telegram users to your database.
  4. Credential Required: Connect your Supabase credentials for all Supabase nodes in this flow (Fetch Supabase User, Create Supabase Record, Supabase Lookup, Fetch Supabase User B, Update Wallet Record, Create Wallet Record, Mark Sent Update, Supabase Update).
  5. Confirm the routing: User Exists CheckCheck PDF Availability or Create Supabase Record.
Tip: Check PDF Availability controls whether the flow triggers Telegram PDF Download or continues to Supabase Lookup for dialogue handling.

Step 4: Set Up the AI Research Pipeline

Configure the agents, parsers, and LLMs that generate structured research and HTML-ready content.

  1. Open Research Request Agent, Parse Research Data, Perplexity Query, and Perplexity Response Mapper to define the research prompt and mapping logic.
  2. Credential Required: Connect your Perplexity credentials to Perplexity Query and Perplexity Query B.
  3. Connect OpenAI credentials to the language model nodes: OpenAI Chat Engine, OpenAI Chat Engine A, OpenAI Chat Engine B, OpenAI Chat Engine C, OpenAI Chat Engine D, OpenAI Chat Engine E, OpenAI Conversation Model, and OpenAI Analysis Model.
  4. Ensure Structured Result Parser and Auto Repair Parser are attached to HTML Formatting Agent via the AI output parser connections, and Structured Result Parser B and Auto Repair Parser B to HTML Formatting Agent B.
  5. For conversational flows, ensure Postgres Memory Store and Wallet Update Tool are attached to Dialogue Agent as memory and tool inputs.
⚠️ Common Pitfall: AI tool and parser nodes (Structured Result Parser, Auto Repair Parser, Postgres Memory Store, Wallet Update Tool, and their “B” versions) inherit credentials from their parent agent or LLM. Add credentials to the parent LLM nodes, not the tool nodes.

Step 5: Configure HTML and PDF Generation

Build HTML reports and convert them to PDFs before distribution.

  1. Confirm the formatting chain: HTML Formatting AgentHTML Report BuilderHTML FormatterPDF Build Service.
  2. Repeat for the secondary path: HTML Formatting Agent BHTML Report Builder BHTML Formatter BPDF Build Service B.
  3. Credential Required: Connect your PDFco credentials in PDF Build Service and PDF Build Service B.
Tip: Keep the HTML output consistent between HTML Report Builder and HTML Report Builder B to avoid PDF rendering differences.

Step 6: Configure External API Calls and Delivery

Route PDFs through external API steps and deliver them via Telegram with status updates.

  1. Verify the primary delivery path: PDF Build ServiceExternal API CallTelegram DispatchMark Sent UpdateIterate Records.
  2. Configure the secondary delivery path: PDF Build Service BQuaternary API CallTelegram Dispatch BSupabase Update.
  3. Credential Required: Connect your Telegram credentials for all Telegram nodes (Telegram Dispatch, Telegram Dispatch B, Telegram PDF Download, Send Analysis Notice, Send Conversation Reply).
  4. If your httpRequest nodes require authentication, add the relevant API credentials to Initial API Call, Secondary API Call, Tertiary API Call, Quaternary API Call, and External API Call.

Step 7: Configure PDF Analysis, Wallet Updates, and Dialogue

Finalize the conversational loop, credit checks, and post-analysis notice pipeline.

  1. Confirm the analysis pipeline from Telegram PDF DownloadInitial API CallDelay StepSecondary API CallTertiary API CallPDF Analysis Agent.
  2. Verify wallet routing: Fetch Supabase User BWallet ConditionUpdate Wallet Record or Create Wallet RecordSend Analysis Notice.
  3. Ensure conversation flow from Supabase LookupTransform ScriptDialogue AgentSend Conversation Reply.
⚠️ Common Pitfall: If Delay Step is too short, Secondary API Call may fire before the PDF is ready. Increase the wait if your external system needs more time.

Step 8: Test and Activate Your Workflow

Run a manual test to confirm each branch works, then activate the workflow for production use.

  1. Click Execute Workflow and verify the Scheduled Start Trigger path runs through Retrieve Client ListTelegram Dispatch with valid outputs.
  2. Send a test message to your bot to trigger Telegram Incoming Trigger and confirm Send Conversation Reply returns a response.
  3. Check that PDFs are generated at PDF Build Service and delivered by Telegram Dispatch and Telegram Dispatch B.
  4. When successful, toggle the workflow to Active to enable scheduled production runs.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Telegram bot permissions can be the silent killer. If messages stop sending, check the bot token, chat ID mapping, and whether the bot is allowed to post in the target chats.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • PDF.co templates can look “off” if your HTML/CSS is slightly inconsistent. Keep your HTML formatter strict, and test with a long report so page breaks don’t surprise you.

Frequently Asked Questions

How long does it take to set up this Telegram PDF reports automation?

Plan for about 60–90 minutes if your Telegram bot and API keys are ready.

Do I need coding skills to automate Telegram PDF reports?

No. You’ll mostly connect accounts and paste API keys. Light edits to prompts or HTML are optional, not required.

Is n8n free to use for this Telegram PDF reports workflow?

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 and Perplexity usage, plus PDF.co credits depending on how many PDFs you generate.

Where can I host n8n to run this automation?

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.

Can I customize this Telegram PDF reports workflow for a different report format or schedule?

Yes, and it’s one of the best reasons to use n8n here. You can change the weekly schedule by adjusting the Scheduled Start Trigger, and you can swap report sections by editing the HTML Report Builder and HTML Formatter steps. Common tweaks include adding your logo and disclaimers, changing the order of sections (holdings first vs. market recap first), and sending different PDFs to different user segments based on what’s stored in Supabase/Postgres.

Why is my Telegram connection failing in this workflow?

Most of the time it’s a bad bot token or a chat ID mismatch after someone changes usernames or moves to a new group. Regenerate the token in BotFather if needed, then confirm your workflow is sending to the right chat IDs from your database. If it fails only on some messages, Telegram rate limits can also be the culprit when you broadcast to a large list in a tight loop.

How many subscribers can this Telegram PDF reports automation handle?

A few hundred recipients per weekly run is realistic for most setups.

Is this Telegram PDF reports automation better than using Zapier or Make?

Often, yes, because you’re doing more than moving data from A to B. This workflow chains research, AI writing, HTML formatting, PDF generation, and a broadcast-style Telegram send, plus it tracks users in a database and remembers conversations. Zapier or Make can handle pieces of that, but the moment you need branching logic, batching, retries, and “mark as sent” tracking, it gets expensive and brittle. n8n also gives you the option to self-host, which matters when execution volume grows. If you want a sanity check on complexity and cost, Talk to an automation expert.

Once this is in place, your weekly report becomes a routine, not a scramble. The workflow handles the repetitive parts so you can spend your time on the actual decisions.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal