Reddit to Gmail, daily trend digest you will read
Your “quick Reddit check” turns into 40 minutes. Then you forget what you read, miss the thread that actually mattered, and end up reacting late to the trend everyone else already saw. That’s why Reddit Gmail digest automation is such a relief.
Marketing leads use it to spot hooks and angles before they’re everywhere. Investors lean on it for daily sentiment without doomscrolling. And if you run a small team, you get something even better: a shareable digest that keeps everyone on the same page.
This workflow monitors multiple subreddits, picks the posts that are actually trending, summarizes them with AI (including comment context), and sends a clean email to your Gmail inbox. You’ll see what it solves, what you’ll get, and how to set it up without getting buried in technical stuff.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Reddit to Gmail, daily trend digest you will read
flowchart LR
subgraph sg0["Schedule: Daily run Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule: Daily run", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Subreddit List", 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/reddit.svg' width='40' height='40' /></div><br/>List Hot Posts"]
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/merge.svg' width='40' height='40' /></div><br/>Attach ISO Date to Posts1"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Normalize Post Date (created..", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Select Fields (id, score, ur..", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter: Last 24h & Score 30", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Sort by Score (desc)", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate Posts (single batch)", 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/reddit.svg' width='40' height='40' /></div><br/>Get Post by ID"]
n10@{ icon: "mdi:cog", form: "rounded", label: "Deduplicate by ID", pos: "b", h: 48 }
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/>Build Post Body (root)"]
n12["<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/reddit.svg' width='40' height='40' /></div><br/>List Top-level Comments"]
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/code.svg' width='40' height='40' /></div><br/>Flatten Comment Threads"]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter: Valid Comments", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Append Posts + Comments"]
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/code.svg' width='40' height='40' /></div><br/>Build Thread Text"]
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/merge.svg' width='40' height='40' /></div><br/>Merge: Thread + Post Details"]
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set (id, thread_text, link)", pos: "b", h: 48 }
n19@{ icon: "mdi:cog", form: "rounded", label: "Call Sub-workflow: Summarize..", pos: "b", h: 48 }
n29@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Topic, Subreddits and Em..", pos: "b", h: 48 }
n9 --> n10
n2 --> n4
n2 --> n3
n16 --> n17
n10 --> n11
n0 --> n29
n7 --> n8
n1 --> n2
n11 --> n15
n11 --> n12
n14 --> n15
n15 --> n16
n13 --> n14
n12 --> n13
n3 --> n5
n18 --> n8
n8 --> n19
n8 --> n17
n8 --> n9
n17 --> n18
n6 --> n7
n29 --> n1
n4 --> n3
n5 --> n6
end
subgraph sg1["Sub-workflow Flow"]
direction LR
n20@{ icon: "mdi:play-circle", form: "rounded", label: "Sub-workflow Trigger", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Link", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Thread Text", pos: "b", h: 48 }
n23@{ icon: "mdi:brain", form: "rounded", label: "GPT-4o mini", pos: "b", h: 48 }
n24@{ icon: "mdi:robot", form: "rounded", label: "Summarize Threads", pos: "b", h: 48 }
n25["<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/>Combine Summaries + Links"]
n26@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Summaries & Links", pos: "b", h: 48 }
n27@{ icon: "mdi:robot", form: "rounded", label: "Format HTML for Gmail", pos: "b", h: 48 }
n28@{ icon: "mdi:message-outline", form: "rounded", label: "Send Digest", pos: "b", h: 48 }
n23 -.-> n24
n23 -.-> n27
n21 --> n25
n24 --> n25
n22 --> n24
n20 --> n21
n20 --> n22
n27 --> n28
n25 --> n26
n26 --> n27
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,n20 trigger
class n24,n27 ai
class n23 aiModel
class n6,n14 decision
class n11,n13,n16 code
classDef customIcon fill:none,stroke:none
class n2,n3,n9,n11,n12,n13,n15,n16,n17,n25 customIcon
The Problem: Reddit “Research” Is a Time Trap
Reddit is incredible for early signals, but it’s brutal as a daily workflow. You jump between subreddits, skim headlines, open ten tabs, then try to remember which post had the real insight buried in the third top comment. Next day, you do it again. The cost is not just time. It’s decision fatigue, missed context, and that nagging sense you’re always a step behind because you didn’t catch the right thread when it was hot.
It adds up fast. Here’s where it breaks down in real life.
- Checking even 5 subreddits properly can eat about an hour, and that’s before you read comments.
- High-signal posts are easy to miss because “hot” doesn’t always mean relevant to your goals.
- When you do find something good, you still have to summarize it for yourself or your team.
- Links get lost in Slack threads and browser bookmarks, so your “research” never becomes a reusable asset.
The Solution: A Daily Reddit Trend Digest Sent to Gmail
This workflow turns Reddit into a predictable daily input, not an endless feed. At a scheduled time (it’s set to 6 AM by default), it pulls “hot” posts across the subreddits you choose and filters down to threads with real engagement (for example, posts above 30 upvotes in the last 24 hours). Then it grabs the full thread context: the root post plus the top-level comments that usually contain the best counterpoints, examples, and links. After that, an AI model generates concise summaries for each thread, and n8n compiles everything into a clean HTML email with clickable Reddit links. You wake up to a digest you can scan in minutes and forward to your team without rewriting anything.
The workflow starts on a daily schedule, then loops through your subreddit list and collects the top threads. It enriches each thread with comments, summarizes, and finally formats everything into a Gmail-friendly digest that looks like a real newsletter, not a messy export.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 6 subreddits for a weekly client report. Manually, you might spend about 10 minutes per subreddit skimming posts, then another 30 minutes chasing comment context and saving links, so roughly 1.5 to 2 hours a day in practice. With this workflow, you spend maybe 5 minutes adjusting the subreddit list once, then your daily effort becomes “open Gmail and scan” for about 10 minutes. That’s close to an hour back on most days, and you still catch the important threads.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Reddit for pulling hot posts and comments
- Gmail to send the daily digest email
- OpenRouter API key (get it from your OpenRouter dashboard)
Skill level: Beginner. You’ll copy in your subreddits, connect accounts, and tweak one schedule setting.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A daily schedule kicks it off. n8n runs at your chosen time (6 AM in the current setup), so it’s waiting for you instead of the other way around.
Your subreddit list gets processed in a loop. The workflow takes the array of subreddits you provide, checks each one, and pulls “hot” posts from the last 24 hours. It also converts timestamps and merges the date fields so filtering stays reliable across timezones.
Only high-value threads make the cut. Posts below the engagement threshold are filtered out, and the remaining candidates are sorted by score so the most discussed items rise to the top. Then it batches through posts so your API calls stay manageable.
AI summarizes with comment context and formats the email. For each thread, the workflow fetches post details, collects top-level comments, flattens the comment tree, and runs a summarization chain using an OpenRouter chat model. Finally it aggregates summaries plus links, generates HTML, and sends the digest via Gmail.
You can easily modify the subreddit list and scoring threshold to match what you consider “trending” based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
Set up the daily schedule so the digest runs automatically.
- Open Scheduled Daily Trigger and set the schedule rule to run at
06:00(as configured in the node’s rule interval). - Confirm the workflow timezone in settings is
Asia/Singaporeif you want the 6 AM schedule to match the original timing.
Step 2: Connect Reddit Topics and Recipients
Define the digest topic, subreddits to scan, and the recipient email.
- In Configure Topics & Recipients, set topic to
Investing. - Set subreddits to
["investing", "stocks"]. - Set email to your recipient address (replace
[YOUR_EMAIL]). - In Distribute Subreddit List, keep fieldToSplitOut as
subredditsand destinationFieldName assubreddit.
Step 3: Connect Reddit and Filter High-Quality Posts
This section retrieves hot posts, normalizes dates, and filters to recent, high-scoring items.
- Open Retrieve Hot Posts and select Credential Required: Connect your redditOAuth2Api credentials.
- Confirm Retrieve Hot Posts uses operation
getAll, returnAlltrue, and subreddit set to{{ $json.subreddit }}. - In Convert Post Date to ISO, keep created_iso set to the provided expression
{{ (() => { const ts = Number($json.created_utc); const ms = ts > 1e12 ? ts : ts * 1000; return new Date(ms).toISOString(); })() }}. - In Merge ISO Dates, set mode to
combineand combineBy tocombineByPosition. - In Select Key Post Fields, map subreddit, id, date, score, and url using the expressions shown (e.g.,
{{ $json.created_iso }}). - In Filter Recent High Score, keep the conditions for posts after
{{ new Date(new Date($now).getTime() - 24 * 60 * 60 * 1000).toISOString() }}and score greater than30. - In Order by Score Desc, sort by score in
descendingorder. - In Batch Through Posts, keep batchSize set to
{{ $input.all().length }}so all posts are processed in one batch.
Step 4: Build Post + Comment Threads (Parallel Execution)
This phase enriches posts with details, pulls top comments, and assembles thread text.
- In Fetch Post Details, select Credential Required: Connect your redditOAuth2Api credentials and keep postId as
{{ $json.id }}and subreddit as{{ $json.subreddit }}. - In Remove Duplicate IDs, set compare to
selectedFieldsand fieldsToCompare toid. - Keep Compose Root Post Body in Run Once for All Items mode to output one item per post.
- Compose Root Post Body outputs to both Combine Posts and Comments and Retrieve Top Comments in parallel.
- In Retrieve Top Comments, select Credential Required: Connect your redditOAuth2Api credentials and keep postId as
{{ $json.post_id }}. - Keep Flatten Comment Tree and Assemble Thread Text code as-is to structure threads.
- Use Keep Valid Comments to ensure post_id is not empty before Combine Posts and Comments.
- In Merge Thread and Details, keep mode
combineand combineBycombineByPosition. - In Map Thread Summary Fields, map id, thread_text, and link using
{{ $json.id }},{{ $json.thread_text }}, and{{ $json.url }}.
Step 5: Configure the Sub-Workflow Summarization Entry Point
The main workflow hands each thread to a sub-workflow that summarizes and formats content for email.
- In Run Sub-Workflow (Configure Required), choose the target workflow in workflowId (currently blank).
- Keep the mapped inputs in workflowInputs:
{{ $json.id }},{{ $json.link }},{{ $('Configure Topics & Recipients').first().json.email }},{{ $('Configure Topics & Recipients').first().json['topic'] }}, and{{ $json.thread_text }}. - In the sub-workflow, use Subflow Input Trigger to accept inputs for topic, id, thread_text, link, and email.
- Subflow Input Trigger outputs to both Isolate Link Field and Isolate Thread Content in parallel.
Step 6: Set Up AI Summarization and Email Formatting
These nodes summarize comment threads and convert them into Gmail-friendly HTML.
- Open OpenRouter GPT Mini and select Credential Required: Connect your openRouterApi credentials. Keep model set to
openai/gpt-4o-mini. - Summarize Comment Threads uses OpenRouter GPT Mini as its language model—ensure credentials are added to OpenRouter GPT Mini, not the summarization node.
- In Merge Summaries with Links, keep mode
combineand combineBycombineByPosition. - In Aggregate Summaries Links, ensure fieldsToAggregate includes
output.textandlink. - Format Gmail HTML also uses OpenRouter GPT Mini as the language model—credentials must remain on OpenRouter GPT Mini.
- Keep Format Gmail HTML text prompt exactly as provided to output clean HTML, and confirm the expressions
{{ $json.text }}and{{ $json.link }}are intact.
Step 7: Configure Email Dispatch
Send the formatted digest through Gmail to the configured recipient.
- Open Dispatch Email Digest and select Credential Required: Connect your gmailOAuth2 credentials.
- Set sendTo to
{{ $('Subflow Input Trigger').first().json.email }}. - Set message to
{{ $json.text }}. - Set subject to
{{ $('Subflow Input Trigger').first().json.topic }} {{ 'Daily Digest' }}. - Keep appendAttribution set to
falseunder options.
Step 8: Test and Activate Your Workflow
Validate end-to-end execution before running on schedule.
- Click Execute Workflow to run Scheduled Daily Trigger manually and verify posts flow through Retrieve Hot Posts → Format Gmail HTML → Dispatch Email Digest.
- Check the output of Format Gmail HTML for valid HTML and confirm that links match the summaries.
- Verify the recipient inbox receives the digest email with the expected subject and formatted body.
- When satisfied, toggle the workflow to Active to enable daily runs.
Common Gotchas
- Reddit OAuth2 credentials can expire or require the right app scopes. If things break, check your Reddit credential in n8n and re-authenticate first.
- If you’re using Wait behavior (or your OpenRouter responses are slow), processing times vary. Bump up the wait duration or batch size if downstream nodes fail on empty responses.
- Default summarization prompts are honestly a little generic. Add your topic framing and “what to extract” rules early, or you will end up editing every digest.
Frequently Asked Questions
About 20 minutes once your accounts are ready.
No. You’ll mostly connect accounts and edit the subreddit list and email address in one node.
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 API costs, which are usually a few cents per digest depending on how many threads you summarize.
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 the main reason this workflow is useful long-term. Update the subreddit array and the topic name inside the “Configure Topics & Recipients” (Set) node, then adjust the upvote threshold in the filtering step if you want stricter or looser results. Common tweaks include adding a second digest for a different topic, changing the delivery time, and summarizing fewer threads by lowering the batch size.
Usually it’s expired Reddit OAuth2 credentials or a Reddit app configuration issue. Reconnect Reddit inside n8n, then rerun the workflow and watch the first Reddit fetch node for the exact error message. If you’re pulling lots of data at once, you can also hit rate limits, so reducing the number of subreddits or batching fewer posts per run can stabilize it.
A typical setup handles a few dozen threads per day without drama, and you can scale further by tightening the upvote filter or summarizing fewer posts.
Often, yes, because this workflow isn’t a simple “grab a link and send an email” zap. You’re fetching lists of posts, filtering by date and score, batching items, pulling comments, deduplicating threads, and running an AI summarization chain before you format HTML. n8n handles that kind of branching and looping cleanly, and self-hosting can be a big deal if you want unlimited executions. Zapier or Make can still work if you keep it lightweight, but you’ll usually end up compromising on comment context or paying more as volume grows. If you want help choosing, Talk to an automation expert.
Reddit stays chaotic. Your research doesn’t have to. Set this up once, and your daily trend digest just shows up in Gmail like it always should have.
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.