YouTube + Google Sheets: comment sentiment you can use
You check YouTube comments, spot a few spicy ones, then lose them in the scroll. Later, a client asks, “Are people unhappy about the new video?” and you’re stuck guessing, because there’s no clean record.
This hits marketers hardest when campaigns ramp up fast, but creators and small ops teams feel it too. With this YouTube sentiment automation, comments land in a Google Sheet already labeled Positive, Neutral, or Negative, so you can act before a thread turns into a pile-on.
Below, you’ll see how the workflow runs, what it produces, and how to make it fit your reporting style without turning this into a giant data project.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: YouTube + Google Sheets: comment sentiment you can use
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Get Video Urls from Google S..", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "check next fetch time is ava..", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "check next fetch time is bef..", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Comments for video urls"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Analyze sentiment of every c..", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format fields as required to..", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Insert and update comment in..", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Update last fetched time and..", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing1", pos: "b", h: 48 }
n12@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Success Response", pos: "b", h: 48 }
n0 --> n7
n1 -.-> n7
n13 --> n0
n13 --> n11
n6 --> n13
n3 --> n4
n12 --> n3
n7 --> n8
n9 --> n10
n4 --> n6
n4 --> n5
n5 --> n6
n5 --> n2
n8 --> n9
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 n12 trigger
class n7 ai
class n1 aiModel
class n4,n5,n13 decision
class n3,n9,n10 database
class n6 api
classDef customIcon fill:none,stroke:none
class n6 customIcon
The Problem: YouTube comments become “untrackable” the moment you need them
YouTube gives you comments, not clarity. When you’re managing multiple videos (or multiple channels), the same routine repeats: open YouTube Studio, scroll, filter, copy a few examples, then promise yourself you’ll “export it later.” Later rarely comes. And when it does, the data is messy. Sentiment tagging is manual, inconsistent, and honestly a little subjective when you’re tired. The biggest cost isn’t the spreadsheet work. It’s the missed signals: early negativity, recurring confusion, or the one topic your audience keeps bringing up that nobody is tracking.
The friction compounds. Here’s where it breaks down.
- Exporting comments from YouTube Studio turns into a weekly “I’ll do it tomorrow” task that never stays consistent.
- Manual sentiment tagging eats focus, and two people will label the same comment differently.
- By the time negativity is obvious, it’s already public, already screen-shotted, already shared.
- Without a running log per video, it’s hard to prove trends to stakeholders or clients.
The Solution: Automatically label and log comment sentiment in Sheets
This workflow pulls a list of YouTube video URLs from Google Sheets, fetches top-level comments for each video (including pagination, so you’re not stuck with the first page), and runs each comment through OpenAI sentiment classification. Then it formats everything into clean rows, including useful context like author name, likes, and timestamp, and upserts the results back into your Sheet. That last part matters. Instead of dumping duplicates every run, it can update what’s already there and keep your log tidy. There are also guardrails: simple checks for allowed run windows and basic API success validation, which helps prevent half-filled sheets when an API call fails.
The workflow starts with a manual run in n8n, which reads your “video_urls” column. It then retrieves YouTube comments via HTTP requests, sends each comment to the sentiment node powered by OpenAI, and writes structured rows back to Google Sheets. Your Sheet becomes the dashboard-ready source of truth.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you publish 3 videos per week and each video collects about 200 top-level comments. Manually, even a quick pass is maybe 30 minutes per video to scroll, filter, copy examples, and tag sentiment in a sheet, so you’re spending about 2 hours a week just to get “good enough” insight. With this workflow, you trigger the run in about 2 minutes, wait for processing, and then spend your time reviewing a Sheet that’s already labeled and sortable. You typically get that 2 hours back, and your tracking stays consistent week after week.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store URLs and sentiment results
- YouTube Data API v3 key to fetch comments via HTTP requests
- OpenAI API key (get it from your OpenAI API dashboard)
Skill level: Intermediate. You’ll connect credentials, create a simple sheet column, and paste the workflow into n8n.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You trigger a run. The workflow uses a Manual Trigger, so you can run it on demand when a new video drops or after a campaign goes live.
It reads your target videos from Google Sheets. A Sheets node pulls the “video_urls” list, then the workflow checks timing rules (so you’re not hammering APIs at the wrong moment if you add scheduling later).
Comments are fetched and analyzed. An HTTP request pulls YouTube comments (handling pagination), items are separated, and the OpenAI sentiment node labels each comment as Positive, Neutral, or Negative. There’s also a simple API success check, which prevents bad runs from quietly polluting your data.
Everything is written back in a reporting-friendly format. A “set fields” step maps the columns you actually care about, then the workflow upserts rows into Google Sheets and refreshes timestamps so you can track what was processed.
You can easily modify the sentiment rules to include keyword filtering or minimum like counts based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
This workflow starts with a manual run so you can test the pipeline before scheduling it.
- Add or open Manual Run Trigger at the start of the workflow.
- Connect Manual Run Trigger to Fetch Video Links Sheet to match the execution flow.
Step 2: Connect Google Sheets
These nodes read your video list and write sentiment-enriched comments back to Sheets.
- Open Fetch Video Links Sheet and select the spreadsheet and sheet that contain your video URLs and fetch timestamps.
- Open Upsert Comments to Sheet and configure the target spreadsheet and sheet where comment data will be stored.
- Open Refresh Fetch Timestamps and set the sheet and range/columns used to update last fetch times.
- Credential Required: Connect your Google Sheets credentials in Fetch Video Links Sheet, Upsert Comments to Sheet, and Refresh Fetch Timestamps.
Step 3: Configure Fetch Timing and API Retrieval
This section checks whether it’s time to fetch comments and then calls the comments API.
- In Validate Next Fetch Time, define the time-based conditions to determine when fetching should proceed.
- In Verify Fetch Time Window, add rules that enforce the allowed time window for fetching.
- Configure Retrieve Video Comments with the correct API endpoint, method, and parameters for the video comments source.
- In Check API Success, set an IF condition to validate the API response (e.g., success status or required fields).
- Note that Check API Success routes successes to Separate Items and failures to No-Op Placeholder 2 for debugging or safe exits.
Step 4: Set Up Sentiment Analysis
Split comments into individual items and score each comment’s sentiment with OpenAI.
- Ensure Separate Items receives the array of comments so each comment is processed individually.
- Open Evaluate Comment Sentiment and configure the sentiment analysis options for your desired output.
- Confirm OpenAI Chat Engine is connected as the language model for Evaluate Comment Sentiment.
- Credential Required: Connect your OpenAI credentials in OpenAI Chat Engine (AI sub-nodes use the parent model’s credentials).
Step 5: Configure Data Mapping and Output
Map the sentiment output into fields that align with your sheet schema, then upsert comment records.
- In Map Fields for Sheet, define the fields that should be written to the sheet (e.g., comment text, sentiment score, timestamp, video ID).
- Configure Upsert Comments to Sheet with the correct key field (unique identifier) to avoid duplicate rows.
- Ensure Refresh Fetch Timestamps updates the last fetch column so the next run respects the schedule.
Step 6: Test and Activate Your Workflow
Validate the end-to-end flow and then switch the workflow to production mode.
- Click Manual Run Trigger to execute a test run.
- Confirm that Retrieve Video Comments returns data, Evaluate Comment Sentiment produces sentiment output, and Upsert Comments to Sheet writes rows to your sheet.
- Verify that Refresh Fetch Timestamps updates the timestamp fields after a successful run.
- When successful, toggle the workflow to Active for production use.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials panel and the Google account access screen 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.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your API keys are ready.
No. You’ll connect accounts, paste the workflow JSON, and map a few Google Sheets columns.
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 costs (usually pennies for a few hundred comments, depending on model and prompt).
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 one of the best tweaks. You can filter before analysis by adding an IF node after “Retrieve Video Comments” to only keep comments that contain specific keywords, or that meet a minimum like count. If you want different labels (like “Complaint” or “Praise”), adjust the prompt/behavior in the OpenAI sentiment analysis step and update the “Map Fields for Sheet” mapping to match.
Usually it’s an API key issue: the YouTube Data API v3 isn’t enabled in your Google Cloud project, the key is restricted too tightly, or the quota is exhausted for the day. Double-check the HTTP credential used by the “Retrieve Video Comments” request in n8n, then confirm the request URL and parameters match the API docs. If it fails only on some videos, comments may be disabled, or the video ID parsing from your Sheet links needs tightening. Annoying, but fixable.
If you self-host n8n, there’s no execution cap (it mainly depends on your server and API quotas). On n8n Cloud, your monthly execution limit depends on your plan. In practice, this workflow can process hundreds of comments per run comfortably, but YouTube API quota and OpenAI usage are the real governors once you scale to many videos.
Often, yes, because this workflow needs pagination, branching checks, and structured “upsert” behavior into a sheet, which tends to get fiddly (and expensive) in simpler automation tools. n8n also gives you more control over the HTTP requests to YouTube, which matters when you’re pulling comments at scale. Zapier or Make can still work if you’re only monitoring a small number of videos and don’t care about historical tracking. If you’re unsure, think about where you’ll feel the pain first: cost, control, or setup time. Talk to an automation expert and we’ll help you choose quickly.
Once this is running, your “comment sentiment” stops being a vibe and becomes a dataset. The workflow handles the repetitive scanning so you can focus on what to respond to, what to fix, and what to double down 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.