Product Hunt to Google Sheets, clean launch tracking
Tracking Product Hunt launches sounds simple until you’re bouncing between tabs, copying taglines by hand, and realizing half the “website” links redirect somewhere else.
This is the kind of Product Hunt tracking automation that saves marketers time, keeps product managers sane, and gives content curators a clean list they can actually work from. No more messy notes. No more “which URL is the real one?”
This workflow pulls the day’s launches, cleans the fields, checks redirects, and logs everything into Google Sheets. You’ll see what it does, what you need, and how it fits into a simple research routine.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Product Hunt to Google Sheets, clean launch tracking
flowchart LR
subgraph sg0["Daily Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Daily Trigger1", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Date1", pos: "b", h: 48 }
n2["<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/>Fetches today’s Product Hunt.."]
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/>Extracts Product Info"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Resolve Website Redirection"]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Data 2 (website url)", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Data 1 (product info)", pos: "b", h: 48 }
n7@{ icon: "mdi:code-braces", form: "rounded", label: "Merge Data", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Appends all details", pos: "b", h: 48 }
n1 --> n2
n7 --> n8
n0 --> n1
n5 --> n7
n6 --> n7
n3 --> n4
n3 --> n6
n4 --> n5
n2 --> n3
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 n8 database
class n2,n4 api
class n3,n7 code
classDef customIcon fill:none,stroke:none
class n2,n3,n4 customIcon
The Problem: Daily launch tracking turns into tab chaos
Daily launch tracking breaks down in a very human way. You start with good intentions: “I’ll just check Product Hunt each morning and capture the interesting ones.” Then you’re clicking into each product, copying the name and tagline, grabbing a description that’s too long, and pasting everything into a sheet that slowly drifts out of consistency. The worst part is the links. Product pages often send you through tracking URLs, short links, or redirects, so later your “source of truth” is full of dead ends and mismatched domains.
It adds up fast. Here’s where it usually breaks.
- Copy-pasting 10 launches a day into a spreadsheet is about an hour of distracted work.
- Different people paste different fields, which means your “database” can’t be sorted or filtered reliably.
- Redirected URLs hide the real domain, so you mis-tag competitors and duplicate entries without noticing.
- By the time you finish logging, you’ve lost the time you wanted for analysis and content ideas.
The Solution: Auto-log daily Product Hunt launches into a clean sheet
This workflow runs once per day on a schedule and grabs the day’s Product Hunt launches using the Product Hunt API (GraphQL). It then parses each post to extract the fields you actually need: name, tagline, description, and the listed website URL. Next, it checks each website link to see where it really lands by following redirects, capturing the final destination URL so your sheet reflects the true domain. Finally, it standardizes the fields and appends one clean row per product into Google Sheets, ready for tagging, outreach, or content planning. It’s quiet, consistent, and frankly more reliable than humans doing this before coffee.
The workflow starts with a daily trigger, then filters launches by today’s date. After that, it cleans and merges the product fields with a verified final URL. Google Sheets becomes your launch log without the manual busywork.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track the first 10 Product Hunt posts every weekday. Manually, even a “fast” process is maybe 5 minutes per launch to open the product, copy three fields, and paste a URL you still don’t fully trust. That’s roughly 50 minutes a day. With this workflow, you spend about 5 minutes total to review the sheet and star the interesting rows, while n8n does the fetching and redirect checks in the background. Over a week, that’s several hours back.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Product Hunt API token to fetch daily launches via GraphQL.
- Google Sheets to store your launch log as rows.
- Google account access (authorize it in the n8n Sheets node).
Skill level: Intermediate. You’ll paste an API token, connect Google, and match fields to sheet columns.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Daily schedule trigger. n8n runs this workflow once per day, so your sheet stays current without anyone remembering to “go check Product Hunt.”
Date filtering for today’s launches. The workflow assigns the current date in ISO format and uses it to pull the launches for that day, not yesterday’s leftovers.
Product Hunt API fetch plus cleanup. It calls the Product Hunt API, then a code step parses the response and keeps only the fields you care about. Another set of “set” steps (field editing) makes sure the data is shaped consistently for your spreadsheet.
Redirect checking, then logging to Google Sheets. Each website URL is tested so the final destination is captured, then everything is combined into one record per product and appended to your chosen Google Sheet tab.
You can easily modify how many posts you fetch (it defaults to 10) or where the output goes, like swapping Google Sheets for Excel. 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 stamps the current date for the Product Hunt query.
- Add and open Scheduled Daily Start.
- In Rule, keep the default daily interval (as shown in the node).
- Open Assign Current Date and set today to
{{ new Date().toISOString().split('T')[0] }}.
Step 2: Connect the Product Hunt API Request
This step queries Product Hunt’s GraphQL API for the current day’s posts.
- Open Request Daily Product Hunt and set URL to
https://api.producthunt.com/v2/api/graphql. - Set Method to POST, and enable Send Body and Send Headers.
- In Body Parameters → query, use the provided GraphQL query with the date expressions:
{{ $node["Assign Current Date"].json["today"] }}. - In Header Parameters, set Authorization to
Bearer [CONFIGURE_YOUR_TOKEN]and replace the placeholder with your Product Hunt token.
[CONFIGURE_YOUR_TOKEN] with a valid Product Hunt API token.Step 3: Parse and Split Product Data
Product data is parsed and then split into two parallel branches to collect both product fields and redirect URLs.
- Open Parse Product Details and keep the provided JavaScript that maps name, tagline, description, and website.
- Note the parallel flow: Parse Product Details outputs to both Check Redirect Target and Keep Product Fields in parallel.
- In Check Redirect Target, set URL to
{{ $json.website }}, enable full response, and keep Follow Redirect disabled to capture the redirect target. - In Capture Redirect URL, set next_url to
{{$json["headers"]["location"]}}and enable Keep Only Set. - In Keep Product Fields, set name to
{{ $json.name }}, tagline to{{ $json.tagline }}, and description to{{ $json.description }}, with Keep Only Set enabled.
Step 4: Merge Records and Update Google Sheets
Merge product fields with redirect URLs, then upsert the results into a Google Sheet.
- Open Combine Product Records and keep the merge logic that combines product fields with next_url while removing
?ref=producthunt. - Open Update Spreadsheet Rows and set Operation to
appendOrUpdate. - Set Document to
Get product hunt productsand Sheet toSheet1(gid=0). - Ensure column mappings are set to
{{ $json.name }},{{ $json.tagline }}, and{{ $json.description }}, with matching columnname. - Credential Required: Connect your Google Sheets (Service Account) credentials in Update Spreadsheet Rows.
Step 5: Test and Activate Your Workflow
Run a manual test to confirm data retrieval, parsing, and sheet updates before enabling the daily schedule.
- Click Execute Workflow to trigger Scheduled Daily Start manually.
- Verify that Request Daily Product Hunt returns posts and Parse Product Details outputs product items.
- Confirm both branches execute: Check Redirect Target → Capture Redirect URL and Keep Product Fields should both feed Combine Product Records.
- Check that Update Spreadsheet Rows writes or updates rows in your Google Sheet.
- When satisfied, switch the workflow to Active to run daily.
Common Gotchas
- Product Hunt credentials can expire or have missing scopes. If the API call fails, check the HTTP Request node headers and confirm your bearer token is still valid.
- If you’re following redirects, some sites respond slowly or block automated checks. Processing times vary, so increase timeouts or add a short wait if the redirect-check request occasionally returns empty.
- Google Sheets appends will look “broken” if your columns are out of order. Confirm the sheet has Name, Tagline, Description, Original URL, Final URL, and map those exact fields in the append operation.
Frequently Asked Questions
About 30 minutes if your Sheet is already created.
No. You’ll connect Product Hunt and Google Sheets, then map a few fields. The included code step is already done for you.
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 Product Hunt API access (usually free with a valid token).
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, but you’ll want to adjust the Product Hunt API query in the “Request Daily Product Hunt” HTTP Request node and make sure the downstream parsing still matches. Common tweaks include fetching more posts, logging extra fields like votes or maker names, and writing to a second tab for “shortlisted” products. If you scale the volume, also watch for rate limits and longer redirect-check times.
Usually it’s an invalid or expired bearer token in the HTTP Request headers. Regenerate your Product Hunt API token, paste it into the Authorization header, and rerun a single execution to confirm the GraphQL response comes back. If it works sometimes and fails other times, you may be hitting rate limits or your request payload is being blocked, which can happen when you increase the number of posts fetched.
For most teams, dozens per day is fine as long as your redirect checks don’t time out.
Often, yes. This workflow leans on GraphQL, custom parsing, and redirect checking, which is where Zapier-style “simple zaps” can get awkward or expensive. n8n also gives you a self-hosted path, so you’re not forced into per-task pricing when you want to run it daily. On the other hand, if you only want a basic “new Product Hunt post to sheet” and you never care about redirect URLs, Zapier or Make can be quicker to click together. The moment you want consistent fields and clean domains, n8n is a better fit. Talk to an automation expert if you want help choosing.
Once this is running, your launch log shows up neatly every day without the tab hopping. Set it up, let it collect, and use your time for the part that actually matters: deciding what’s worth paying attention to.
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.