YouTube + Telegram: competitor briefings that arrive
Your competitors ship new messaging quietly. A YouTube video here, a “small” blog post there. And you only notice after a prospect repeats their talking points back to you on a sales call.
This is where YouTube Telegram briefings help most. Market researchers feel it first, but founders and content leads get dragged into the same scramble. You need the shift, the context, and the source link, without spending your mornings scrubbing timelines.
This n8n workflow monitors competitor YouTube channels and RSS feeds, pulls transcripts when needed, runs an AI analysis, then drops a clean briefing into Telegram and archives the full report in Notion. You’ll see what it does, what it replaces, and how to set it up without getting lost in the weeds.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: YouTube + Telegram: competitor briefings that arrive
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:cog", form: "rounded", label: "YouTube (Competitor A): Sear..", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Apify - Get Dataset Items", 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/code.svg' width='40' height='40' /></div><br/>Code - Normalize Apify Items"]
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/merge.svg' width='40' height='40' /></div><br/>Merge (YouTube) (Mode Append)"]
n5@{ icon: "mdi:cog", form: "rounded", label: "YouTube (Competitor B): Sear..", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Apify - Run an Actor", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "RSS Feed (Competitor A): Tec..", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "RSS Feed (Competitor B): n8n..", pos: "b", h: 48 }
n9["<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/merge.svg' width='40' height='40' /></div><br/>Merge (RSS): Mode Append"]
n10["<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/merge.svg' width='40' height='40' /></div><br/>Merge (All Data): Mode Append"]
n11["<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/code.svg' width='40' height='40' /></div><br/>Code (Data Prep)"]
n12@{ icon: "mdi:robot", form: "rounded", label: "Google Gemini - Generate", pos: "b", h: 48 }
n13["<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: Send Message"]
n14["<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/code.svg' width='40' height='40' /></div><br/>Code (Build Notion Blocks)"]
n15["<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/notion.dark.svg' width='40' height='40' /></div><br/>Notion - Create Database Page"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request (Notion Append .."]
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/code.svg' width='40' height='40' /></div><br/>Code - Robust Parser (Gemini.."]
n11 --> n12
n0 --> n1
n0 --> n5
n0 --> n7
n0 --> n8
n6 --> n2
n12 --> n17
n9 --> n10
n2 --> n3
n14 --> n16
n3 --> n10
n10 --> n11
n4 --> n6
n15 --> n14
n8 --> n9
n17 --> n15
n17 --> n13
n7 --> n9
n1 --> n4
n5 --> n4
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 n12 ai
class n2,n6 decision
class n15 database
class n16 api
class n3,n11,n14,n17 code
classDef customIcon fill:none,stroke:none
class n3,n4,n9,n10,n11,n13,n14,n15,n16,n17 customIcon
The Problem: Competitor updates are easy to miss
Keeping up with competitor messaging sounds simple until you try to do it consistently. You skim RSS headlines, open a few posts, and tell yourself you’ll “watch the video later.” Later rarely happens. Even when you do watch, the key claims are buried at minute 17, and the “real” shift is in tone, positioning, or what they’re suddenly not saying. Then you’re stuck summarizing it for the team, answering follow-up questions, and hunting down the link again when someone asks for proof. It’s exhausting. Honestly, it’s also avoidable.
The friction compounds. Here’s where it breaks down in real teams.
- You end up tracking competitors in multiple places (YouTube, blogs, newsletters), so something always slips through.
- Watching a single 20-minute video to find two meaningful minutes burns focus you needed for actual strategy work.
- Manual summaries drift from person to person, which means your team debates the recap instead of the implication.
- There’s no durable archive, so “What did they say last month?” becomes a time-wasting scavenger hunt.
The Solution: Automated briefings from YouTube + RSS
This workflow turns competitor monitoring into a recurring, structured output your team can rely on. On a schedule, n8n checks specific YouTube channels and RSS feeds you define. When it finds something new, it pulls the content into one combined “intelligence bundle.” For YouTube, it goes a level deeper than metadata by using Apify to fetch the full transcript, so the analysis is based on what was actually said. Then an AI model (Google Gemini in this template) reviews the consolidated text, identifies themes, positioning changes, tone, and likely intent, and produces a clear briefing. Finally, the workflow posts the executive summary to Telegram with source links, and stores the full report in Notion for long-term research and comparisons.
It starts with scheduled monitoring of your chosen channels and feeds. Next, transcripts and articles are merged and cleaned so the AI sees one coherent input. Then the workflow generates a structured summary and ships it to Telegram while also creating a Notion record you can search later.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 2 competitor YouTube channels and 2 RSS feeds, and you check each source three times a week. Manually, that’s maybe 10 minutes per source just to scan (about 2 hours weekly), plus another 30 minutes when a new video drops and you try to find the “important” parts (easily pushing it to about 3 hours). With this workflow, you spend about 5 minutes up front setting the sources, then your ongoing work is just reading the Telegram briefings. Most weeks, that’s a few minutes total, and you still get a full Notion archive for later.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Apify to scrape YouTube transcripts.
- Google Gemini to analyze messaging and positioning.
- Telegram to deliver briefings to your team.
- Notion to store full reports in a database.
- YouTube Data API key (get it from Google Cloud Console).
Skill level: Intermediate. You’ll paste API keys, pick channel IDs and feed URLs, and do light editing of prompts.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Scheduled monitoring kicks it off. On a set cadence, n8n checks your competitor YouTube channels and your chosen RSS feeds for anything new.
Content gets consolidated and cleaned. RSS items are merged together, YouTube items are merged together, then both streams combine into one input. A preparation step normalizes the data so summaries stay consistent across sources.
Transcript deep dive and AI analysis happens in the middle. New videos trigger an Apify actor that retrieves transcripts, then Google Gemini analyzes the combined content to extract messaging, intent, and strategic shifts (not just a bland recap).
Outputs go to Telegram and Notion. Telegram receives a concise, readable briefing with direct links. Notion gets the full report as formatted blocks, attached to a database record you can search and compare over time.
You can easily modify the analysis prompt to focus on pricing changes or feature launches based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
This workflow starts on a daily schedule and then fans out to multiple sources in parallel.
- Add the Scheduled Run Launcher node as your trigger.
- Set Rule → Interval → Trigger At Hour to
8. - Confirm the parallel execution: Scheduled Run Launcher outputs to Fetch YouTube Rival A, Fetch YouTube Rival B, Read RSS Rival A, and Read RSS Rival B in parallel.
Step 2: Connect YouTube and RSS Inputs
Pull the latest competitor videos and RSS articles, then merge the streams.
- In Fetch YouTube Rival A, set Resource to
videoand Limit to3. - Set Filters → Channel ID to
[YOUR_ID]and Filters → Published After to{{ new Date(Date.now() - 24*60*60*1000).toISOString() }}. - Credential Required: Connect your
youTubeOAuth2Apicredentials in Fetch YouTube Rival A. - Repeat the same settings in Fetch YouTube Rival B and connect
youTubeOAuth2Apicredentials there as well. - In Read RSS Rival A, set URL to
[YOUR_RSS_URL]. - In Read RSS Rival B, set URL to
[YOUR_RSS_URL]. - Confirm Fetch YouTube Rival A and Fetch YouTube Rival B both feed into Combine YouTube Streams.
- Confirm Read RSS Rival A and Read RSS Rival B both feed into Combine RSS Streams.
[YOUR_ID] and [YOUR_RSS_URL] placeholders before testing, or the workflow will return empty results.Step 3: Configure Apify Transcript Enrichment and Merging
Use Apify to retrieve transcripts and normalize YouTube data alongside RSS content.
- In Run Apify Actor, set Actor ID to
[YOUR_ID]. - Set Custom Body to
{ "videoUrls": ["{{'https://www.youtube.com/watch?v=' + $json.id.videoId}}"] }. - Credential Required: Connect your
apifyOAuth2Apicredentials in Run Apify Actor. - In Retrieve Apify Dataset, set Dataset ID to
{{ $json.defaultDatasetId }}. - Credential Required: Connect your
apifyOAuth2Apicredentials in Retrieve Apify Dataset. - Keep Normalize Apify Results connected from Retrieve Apify Dataset to standardize transcripts and metadata.
- Confirm Normalize Apify Results and Combine RSS Streams both feed into Merge Content Sources.
Step 4: Set Up Insight Processing and AI Generation
Build a compact context payload, generate insights via Gemini, and parse the JSON response.
- Keep Prepare Insight Payload connected from Merge Content Sources to assemble the competitor context.
- In Generate Gemini Insights, ensure JSON Output is enabled and Simplify is set to
false. - Credential Required: Connect your
googlePalmApicredentials in Generate Gemini Insights. - Verify the prompt in Generate Gemini Insights references
{{ $json.competitorContext }}and the date from{{$node["Prepare Insight Payload"].json.date}}. - Keep Parse Gemini JSON connected to handle JSON parsing and Telegram HTML sanitization.
- Confirm parallel execution: Parse Gemini JSON outputs to both Create Notion Record and Send Telegram Briefing in parallel.
Step 5: Configure Output Destinations (Notion and Telegram)
Send the daily briefing to Telegram and store a structured report in Notion.
- In Send Telegram Briefing, set Chat ID to
[YOUR_ID]and Text to{{ $json.telegram_html }}. - Credential Required: Connect your
telegramApicredentials in Send Telegram Briefing. - In Create Notion Record, set Database ID to
[YOUR_ID]. - Set Properties → date to
{{ $json.meta.date }}and Properties → Name to{{ $json.report_title }}. - Credential Required: Connect your
notionApicredentials in Create Notion Record. - Keep Assemble Notion Blocks connected to build the page content and then connect it to Append Notion Children.
- In Append Notion Children, set URL to
{{`https://api.notion.com/v1/blocks/${$node["Create Notion Record"].json.id}/children`}}. - Set JSON Body to
{{ JSON.stringify({ children: $node["Assemble Notion Blocks"].json.children }) }}and keep the method asPATCH. - Credential Required: Connect your
notionApicredentials in Append Notion Children.
Step 6: Test and Activate Your Workflow
Run the workflow once to validate data flow, then activate it for daily automation.
- Click Execute Workflow to run a manual test from Scheduled Run Launcher.
- Confirm that Send Telegram Briefing posts a formatted HTML message with sources.
- Verify a new page is created by Create Notion Record and enriched by Append Notion Children.
- When successful, toggle Active to enable scheduled runs.
Common Gotchas
- YouTube Data API credentials can expire or lack the right quota. If things break, check your Google Cloud Console API key and quota limits 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.
- Apify runs can fail silently if the actor or dataset permissions aren’t right. Open the Apify run log and confirm the dataset actually contains transcripts before blaming the AI step.
Frequently Asked Questions
About an hour if you already have your API keys.
No. You’ll mostly connect accounts and paste keys. The only “technical” part is copying channel IDs and a Notion database ID.
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 Apify usage and your Gemini API costs.
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 mostly a prompt change. Update the instructions inside the “Generate Gemini Insights” node to prioritize pricing pages, packaging language, and upgrade paths, then adjust the “Parse Gemini JSON” mapping so Telegram shows a dedicated “Pricing signals” section. Many teams also tweak the “Prepare Insight Payload” code to include only the newest items each run, which keeps analysis focused.
Usually it’s a revoked bot token or the bot not being added to the target chat. Regenerate the Telegram bot token in BotFather, update the credential in n8n, and confirm the chat ID is correct. Also check that the message formatting you’re sending is valid HTML, since Telegram is picky.
On a typical small-team setup, dozens of new posts and a handful of videos per day is fine.
Often, yes, because this is not a simple “new item → send message” zap. You’re merging sources, calling Apify, preparing payloads, parsing structured AI output, and writing formatted Notion blocks, which is the kind of multi-step logic that gets awkward (and expensive) on simpler tools. n8n also gives you the option to self-host, so you’re not paying per tiny step once volume grows. Zapier or Make can still be fine if you only want link-forwarding with a basic summary and no archive. If you’re unsure, Talk to an automation expert and describe your monitoring volume and team needs.
Once this is running, competitor monitoring stops being a background anxiety. You get the briefing, the link, and the archive, then you move on.
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.