n8n + n8n: YouTube Comment Buy Signals → HubSpot Lead + Auto-Reply
You post a tutorial, it gets 400 comments, and buried somewhere in that flood are three people typing "how much is this?" or "do you offer this as a service?" Those are buyers raising their hand — and
You post a tutorial, it gets 400 comments, and buried somewhere in that flood are three people typing "how much is this?" or "do you offer this as a service?" Those are buyers raising their hand — and by the time you scroll past the "first!" comments and the spam, they've hired someone else. Manually reading every YouTube comment for purchase intent doesn't scale past your first viral video. This article shows you how to build an n8n workflow that scans your comments every two hours, flags the ones with real buy signals, replies to them automatically, and drops the person into HubSpot as a lead — so a comment becomes a pipeline entry without you touching a keyboard.
The problem: buy signals decay in hours, not days
YouTube comments are a terrible CRM. They arrive out of order, they're mixed in with noise, and the platform gives you no way to tag or filter by intent. Worse, purchase intent is perishable. Someone who comments "do you build these for clients?" at 9am is comparison-shopping by lunch. If your reply lands 30 hours later, you're replying to a closed opportunity.
For a technical founder or a small ops team, the math is brutal. A channel doing modest numbers might get 200–500 comments a week. Maybe 2% carry a genuine buy signal — pricing questions, "is this available?", "how do I hire you", "link please". That's 4–10 warm leads weekly that you either catch by hand or lose entirely. Hiring someone to babysit the comment feed is expensive and inconsistent. Doing it yourself means context-switching away from actual work every few hours. Neither is a real answer.
The fix isn't more discipline. It's a pipeline that treats YouTube comments as an inbound lead source and runs on a schedule, whether or not you're paying attention.
The solution: a scheduled intent-scanner that writes to HubSpot
The workflow has one job: every two hours, pull new comments, decide which ones are buyers, act on those, and skip the rest. It's a linear pipeline with a single decision point. At a high level:
Schedule Trigger → YouTube (fetch comments) → dedupe against processed IDs → intent classification → IF buyer → (auto-reply + create HubSpot contact) → mark as processed.
The key design choice is idempotency. YouTube's comment endpoints don't hand you "only new comments since last run" cleanly, so you fetch a recent window and filter out anything you've already handled. Without that, every run re-replies to the same comment and creates duplicate HubSpot contacts. Get dedupe right and the rest is straightforward.
Step-by-step setup in n8n
1. Schedule Trigger. Add a Schedule Trigger node set to an interval of 2 hours. Every-two-hours beats every-15-minutes here — YouTube's API has a daily quota (10,000 units by default), and comment reads plus replies burn units fast. Twelve runs a day keeps you well inside quota while still catching intent while it's warm.
2. Fetch comments. Use the YouTube node (or an HTTP Request node against commentThreads.list with part=snippet and your allThreadsRelatedToChannelId). Authenticate with a Google OAuth2 credential that has the youtube.force-ssl scope — you need write access for the reply step, not just read. Set maxResults=100 and order=time so the newest comments come first.
3. Dedupe. Add a Code node that reads the list of comment IDs you've already processed and filters them out. The simplest durable store is an n8n Data Store (or a Google Sheet / Airtable / Postgres node if you prefer) keyed on commentId. Only comments not in that store pass through. This one node is what makes the whole thing safe to run every two hours forever.
4. Classify intent. This is the brain. Route each remaining comment through a classifier that returns a simple verdict: buyer or ignore. Two ways to do it:
The cheap, deterministic route is a Code or Filter node with a keyword and regex pass — match phrases like "how much", "price", "cost", "do you offer", "available", "hire", "build this for", "link", "for clients", "consulting". Fast, free, no false-positive drama, but blind to phrasing it hasn't seen.
The higher-recall route is an AI Agent or Basic LLM Chain node backed by Claude (the Anthropic Chat Model node — use a current model such as claude-haiku-4-5 for cheap, high-volume classification). Prompt it to return strict JSON: {"intent":"buyer"|"ignore","confidence":0-1,"reason":"..."}, set a low temperature, and only treat buyer with confidence ≥ 0.7 as a lead. A hybrid works best in practice: keyword pre-filter to cut volume, then the LLM only on ambiguous survivors to control cost.
5. Branch on the verdict. An IF node checks intent === "buyer". The false branch goes straight to "mark processed" — you still record that you saw the comment so you never re-scan it. The true branch does the real work.
6. Auto-reply. On the buyer branch, add a YouTube node (or HTTP Request to comments.insert) that posts a reply to the comment thread. Keep the copy human and specific: "Appreciate the interest — sent you the details, and here's the link: [url]. Happy to answer anything." Avoid anything that reads like a bot; YouTube will shadow-remove obviously templated spam. Vary the reply text with a small set of templates picked at random in a Code node.
7. Create the HubSpot lead. Add the HubSpot node, operation Create/Update Contact, authenticated with a Private App token (scopes: crm.objects.contacts.write). YouTube rarely gives you an email from a comment, so key the contact on the channel/author identity and stash the signal in properties: put the comment text in a custom property like youtube_comment, the video URL in source_url, and set lead_source = "YouTube Comment". Use Create/Update rather than Create so a repeat commenter updates their existing record instead of spawning a duplicate.
8. Mark as processed. Both branches converge here. Write the commentId back to your Data Store. Done — the next run will skip it.
Benefits: what this actually changes
Response time collapses from days to under two hours. Every buyer gets a reply while their intent is still live, which is the single biggest lever on comment-to-conversation conversion.
Every signal lands in your CRM. Instead of buy signals dying in a comment feed you'll never re-read, they become HubSpot contacts you can sequence, score, and report on. Your channel becomes a measurable lead source instead of a vanity metric.
It runs whether you're watching or not. The workflow doesn't sleep, take weekends, or get distracted. A comment posted at 2am on a Sunday is replied to and logged by 4am.
It's cheap to operate. Twelve runs a day against a keyword-first classifier costs effectively nothing in API terms, and the LLM only fires on the handful of ambiguous comments per run. You're paying cents to catch leads worth hundreds.
Common pitfalls to avoid
Skipping dedupe. This is the number one failure. Without a durable processed-ID store, every run re-replies to old comments and floods HubSpot with duplicates. Build the Data Store node before you turn the schedule on, and test with the Schedule Trigger set to manual first.
Using the wrong OAuth scope. A read-only YouTube credential fetches comments fine, then silently fails at the reply step. Make sure your Google OAuth2 credential includes youtube.force-ssl from the start.
Over-replying and tripping spam filters. If your classifier is too loose, you'll auto-reply to dozens of comments with near-identical text and YouTube will flag the channel. Keep the confidence threshold high (≥0.7), rotate reply templates, and consider a per-run reply cap in a Code node.
Ignoring API quota. Each comment read and each reply consumes quota units. If you crank the schedule to every 15 minutes on a busy channel you can exhaust the daily 10,000 units by afternoon and the workflow goes dark. Two-hour intervals with maxResults tuned to your comment volume is the safe default; request a quota increase from Google only if you genuinely outgrow it.
Treating classification as fire-and-forget. For the first week, log every ignore verdict to a sheet and skim it. You'll find real buyers phrased in ways your rules missed, and you can tighten the prompt or add keywords before the misses cost you deals.
Build it once, point it at your channel, and your comment section quietly turns into a lead-generation engine that works the entire time you're doing something else.
Ja construimos isso pra voce
Nao comece do zero. O YouTube Comment Buy Signals → HubSpot Lead + Auto-Reply e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.
Instalar por $79 →