🔓 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 21, 2026

YouTube to Google Sheets, Telegram sentiment insights

Lisa Granqvist Partner Workflow Automation Expert

You check a video’s comments, you get a “vibe,” and then you lose it. Next day, you’re back to scrolling, copy-pasting, and trying to remember which criticism mattered and which was just noise.

This YouTube sentiment automation hits marketing managers first. But agency leads doing reporting and founders watching product feedback feel the same drag. You end up reacting late, or not at all, because the data never becomes something you can share and act on.

This workflow pulls comments into Google Sheets, tags them with sentiment + keywords using AI, and sends a Telegram summary you can skim in under a minute. You’ll see what it does, what you need, and where teams usually get tripped up.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: YouTube to Google Sheets, Telegram sentiment insights

The Problem: YouTube comments are valuable, but messy

YouTube comments are market research hiding in plain sight. The problem is you can’t use what you can’t capture. When comments live only inside the YouTube UI, patterns get missed, feedback doesn’t reach the right person, and you’re stuck making decisions off gut feel. Even worse, teams end up debating anecdotes (“I saw a bunch of people complain about X”) because nobody has a shared source of truth. Over a few videos, the manual effort becomes its own reason to stop paying attention.

It adds up fast. Here’s where it breaks down in real life.

  • Manually grabbing comments for a single video can eat about 30–60 minutes once you include cleanup and context.
  • Without a consistent sentiment label, different people interpret the same thread differently, so meetings turn into guesswork.
  • Keyword tracking is usually “search in your head,” which means repeat topics don’t get counted, compared, or prioritized.
  • Updates arrive too late, because nobody wants to re-open YouTube daily just to see if the tone shifted.

The Solution: YouTube comment sentiment + keywords, logged and summarized

This workflow turns YouTube comments into a lightweight feedback pipeline. It starts on a schedule, reads a list of YouTube video IDs (or URLs) from Google Sheets, then loops through each video and calls the YouTube API to fetch top-level comments (up to 100 per video by default). Each comment is flattened into a clean, “one row per comment” format. From there, an AI model analyzes sentiment (positive/neutral/negative), generates a sentiment score, extracts keywords (cleaned up so they’re actually useful), and detects language. Finally, everything is normalized for safe spreadsheet writing, upserted back into Google Sheets using a unique comment ID (so you don’t duplicate work), then aggregated into a short, skimmable Telegram report per video.

The workflow kicks off on a schedule trigger and uses Google Sheets as the control panel. It pulls YouTube comments via an HTTP request, runs an AI sentiment chain, then writes structured results to the sheet and sends a Telegram summary you can read on your phone.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you publish 3 videos a week and you want a quick read on how each one landed. Manually, pulling 100 comments, cleaning them up, and summarizing themes can take about 1 hour per video, so roughly 3 hours weekly. With this workflow, you add the video IDs to Google Sheets once, then the scheduled run does the rest and pings Telegram when it’s done. Your “work” becomes a 2-minute skim and a quick filter in Sheets.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for the video list and stored results
  • YouTube Data API to retrieve video comment threads
  • OpenRouter API key (get it from your OpenRouter dashboard)
  • Telegram Bot API to send summaries to a chat

Skill level: Intermediate. You’ll connect a few accounts, paste API keys, and test with one video before scaling up.

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

How It Works

A scheduled trigger starts the run. n8n launches the workflow at regular intervals so you’re not relying on someone to remember “comment review day.”

Your Google Sheet provides the video list. The workflow reads rows from Google Sheets, then sets the YouTube API key and prepares each video for processing. If you maintain multiple channels or campaigns, you can keep them in separate tabs.

Comments are pulled and cleaned. n8n calls the YouTube API via HTTP Request, flattens the response so each item is one comment, then sends that clean text into the AI sentiment chain (powered by an OpenRouter chat model).

Results are written and reported. The workflow normalizes the AI output (so it always matches your expected format), upserts each comment into Google Sheets using the comment ID, aggregates per-video metrics, then sends a concise Telegram report you can skim quickly.

You can easily modify the keywords you extract to match your category language, or adjust the schedule based on upload cadence. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Scheduled Run Trigger

This workflow starts on a timed schedule and pulls video IDs from Google Sheets for processing.

  1. Add and open Scheduled Run Trigger.
  2. Set the schedule rule interval to your desired frequency (for example, hourly or daily).
  3. Confirm that Scheduled Run Trigger connects directly to Retrieve Sheet Rows in the flow.

Step 2: Connect Google Sheets

These nodes read source video IDs and upsert the sentiment results back into your spreadsheet.

  1. Open Retrieve Sheet Rows and choose your Document and Sheet from the picker.
  2. Open Upsert Sheet Row and select the same Document and target Sheet for results.
  3. In Upsert Sheet Row, keep Operation set to appendOrUpdate and Matching Columns set to comment_id.
  4. Verify the column mappings use expressions like {{ $('Flatten Comment Data').item.json.comment_id }} and {{ $json.sentiment }} exactly as configured.
  5. Credential Required: Connect your Google Sheets credentials (required for both Retrieve Sheet Rows and Upsert Sheet Row).

⚠️ Common Pitfall: If Retrieve Sheet Rows doesn’t return video_id and video_url fields, the YouTube API call and Telegram report will fail.

Step 3: Set the YouTube API Key and Batch Processing

The workflow injects the YouTube API key, then iterates across each row with a batch iterator.

  1. Open Set YouTube Key and set Youtube API Key to your key value, replacing [CONFIGURE_YOUR_API_KEY].
  2. Confirm Set YouTube Key connects to Batch Iterator.
  3. In Batch Iterator, keep default options unless you need a specific batch size.
  4. Note that Batch Iterator sends items to Idle Placeholder and then to YouTube API Call for processing.

Tip: Idle Placeholder is a NoOp node used for flow control and can remain unchanged.

Step 4: Fetch and Flatten YouTube Comments

Comments are fetched from the YouTube API and flattened into a row-ready format.

  1. Open YouTube API Call and verify the URL is set to =https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId={{ $('Retrieve Sheet Rows').item.json.video_id }}&maxResults=100&key={{ $json['Youtube API Key'] }}.
  2. Ensure YouTube API Call connects to Flatten Comment Data.
  3. In Flatten Comment Data, keep the provided JavaScript which outputs fields like comment_id, comment_text, and like_count.

Step 5: Set Up AI Sentiment Analysis

This chain sends each comment to the LLM, enforces JSON output, and normalizes the response.

  1. Open LLM Sentiment Chain and keep the Text prompt set to =Data to analyze: youtube_comment_text: "{{ $json.comment_text }}" like_count: {{ $json.like_count }} Consider like_count only as a weak signal (slightly increase |score| if like_count is high and sentiment is clear). Return the JSON only. .
  2. Verify LLM Sentiment Chain uses the system message defining JSON-only output and key rules.
  3. Open OpenRouter Chat Engine and set Model to google/gemini-2.0-flash-exp:free.
  4. Open JSON Schema Parser and confirm the example schema matches your desired output structure.
  5. Open Normalize LLM Output and keep the normalization script intact to enforce consistent sentiment, score, keywords, and language fields.
  6. Credential Required: Connect your OpenRouter credentials in OpenRouter Chat Engine. The JSON Schema Parser is an AI sub-node—add credentials to OpenRouter Chat Engine, not the parser.

⚠️ Common Pitfall: If the LLM returns non-JSON text, Normalize LLM Output will fall back to neutral sentiment and a score of 0.

Step 6: Aggregate and Report Results

Sentiment data is aggregated and summarized into a Telegram report.

  1. Open Aggregate Results and verify it aggregates sentiment, sentiment_score, and keywords.
  2. In Summarize Metrics, keep the summarization script to produce totals, percentages, and top keywords.
  3. Open Send Telegram Report and set Chat ID to your Telegram ID, replacing [YOUR_ID].
  4. Keep the Text field exactly as configured to include expressions like {{ $json.total_comments }} and {{ $json.top_keywords.join(", ") }}.
  5. Credential Required: Connect your Telegram credentials in Send Telegram Report.

Step 7: Test and Activate Your Workflow

Run the workflow once to confirm data flows from Sheets to YouTube, through the LLM, and back to Sheets and Telegram.

  1. Click Execute Workflow to run a manual test.
  2. Confirm YouTube API Call returns comment threads and Flatten Comment Data outputs individual comment items.
  3. Verify Upsert Sheet Row adds or updates rows with comment_id, sentiment, sentiment_score, and keywords.
  4. Check that Send Telegram Report posts a summary with totals and top keywords.
  5. When satisfied, 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

  • Google Sheets credentials can expire or need specific permissions. If things break, check the n8n credentials screen and confirm the connected Google account still has access to the spreadsheet.
  • 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

How long does it take to set up this YouTube sentiment automation?

Plan for about 45 minutes if your APIs are ready.

Do I need coding skills to automate YouTube sentiment insights?

No. You will mainly paste keys, connect Google Sheets, and test a run.

Is n8n free to use for this YouTube sentiment automation 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 OpenRouter usage (usually a few dollars a month at small volumes) and any Google/YouTube API limits for your account.

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 YouTube sentiment automation workflow for multi-language channels?

Yes, and it’s a smart tweak. The AI chain already outputs a 2-letter language code, so you can route comments by language and store them in separate columns or separate tabs. If you want different keyword rules per language, adjust the AI prompt in the LLM Sentiment Chain so it extracts keywords the way your team expects. Some teams also send separate Telegram summaries per language to different chats.

Why is my Google Sheets connection failing in this workflow?

Usually it’s expired OAuth access or the connected Google account no longer has permission to that spreadsheet. Reconnect the Google Sheets credential inside n8n, then confirm the exact spreadsheet is shared with that account. If the sheet was moved between Drives, n8n may be pointing at an old file reference. Also check that the target tab name still matches what your “Retrieve Sheet Rows” and “Upsert Sheet Row” nodes expect.

How many comments can this YouTube sentiment automation handle?

It pulls up to 100 top-level comments per video by default, and you can extend it with pagination if needed.

Is this YouTube sentiment automation better than using Zapier or Make?

Often, yes, because this workflow benefits from batching, data normalization, and structured AI output before writing to a sheet. n8n makes it easier to loop through many videos, avoid duplicates with an upsert pattern, and add guardrails when the AI output is messy. Self-hosting is also a big deal if you want volume without paying per task. Zapier or Make can be fine for simple “new row → send message” use cases, but they get awkward when you’re iterating through comment lists and cleaning data. If you’re torn, Talk to an automation expert and we’ll map it to your actual volume.

Once comments are captured, scored, and summarized automatically, you stop “checking YouTube” and start tracking feedback like an asset. Set it up once, then let the workflow keep you honest.

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