Google Trends + Discord: trend reports you can act on
You find a “trend,” chase it for an hour, and then realize it was never real momentum. It was just noise, or a regional blip, or a hashtag bubble that doesn’t match what people are actually searching.
Content strategists feel this every week. So do growth marketers trying to pick the next campaign angle, and founders who need quick validation before they bet a week of posting on a single idea. This trend report automation turns scattered signals into a clean, decision-ready feed.
You’ll see how the workflow pulls daily Google Trends data, cross-checks it against TikTok/Instagram/X via Apify, has AI summarize what’s happening, then posts individual reports straight into Discord.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Trends + Discord: trend reports you can act on
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", 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/>Fetch Google Trends RSS"]
n3@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n5["<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/>Format Google Output"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "TikTok Scrapper", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Instagram Scrapper", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "X Scrapper", 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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n10["<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/>Tiktok Output"]
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/>Instagram Output"]
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/code.svg' width='40' height='40' /></div><br/>X Output"]
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/>Code in JavaScript"]
n14["<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/>Parse Output"]
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/discord.svg' width='40' height='40' /></div><br/>Discord"]
n16@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n9 --> n13
n3 --> n14
n12 --> n9
n16 --> n15
n8 --> n12
n1 --> n2
n14 --> n16
n10 --> n9
n6 --> n10
n11 --> n9
n0 --> n1
n13 --> n3
n7 --> n11
n5 --> n6
n5 --> n7
n5 --> n8
n2 --> n5
n4 -.-> 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 n3 ai
class n4 aiModel
class n6,n7,n8 decision
class n2 api
class n5,n10,n11,n12,n13,n14 code
classDef customIcon fill:none,stroke:none
class n2,n5,n9,n10,n11,n12,n13,n14,n15 customIcon
The Problem: Trends are easy to spot, hard to trust
“What should we post next?” sounds like a creative question, but it usually turns into a research mess. You check Google Trends, then you bounce to TikTok to see if creators are picking it up, then Instagram hashtags, then X to see if anyone is debating it. By the time you’ve triangulated anything, the window is already closing. And honestly, the worst part isn’t the time. It’s the uncertainty. You don’t know if you’re looking at real demand, platform-specific hype, or something that only matters in one region.
The friction compounds. Here’s where it breaks down in real life:
- You end up with five tabs of “maybe” topics and no consistent way to rank or summarize them.
- Manual trend checks are easy to skip for a day, and then your “weekly research” becomes a monthly scramble.
- Social platforms can mislead you because a viral clip doesn’t always map to search intent.
- Teams lose momentum when insights live in someone’s notes instead of where decisions get made (like Discord).
The Solution: Daily trend intelligence, summarized and delivered to Discord
This workflow runs on a schedule and starts with something reliable: Google Trends RSS for rising regional queries. The moment it has fresh queries, it branches out and pulls supporting context from the platforms you actually publish on. Apify actors scrape TikTok, Instagram, and X in parallel (without you logging in or risking account flags), then the workflow cleans and merges those data points so they’re usable. From there, an AI agent (using a Gemini chat model in the workflow) analyzes topic meaning, sentiment, and trend strength, then returns a structured response. Finally, each trend gets “exploded” into an individual report and sent into Discord through a webhook, so your team sees what’s rising, why it matters, and what content angle to test.
The workflow starts daily with a scheduled trigger and a region setting you control. Then it pulls search trends, harvests social proof from three platforms, and compiles everything into a single AI-ready payload. After AI analysis, it posts clean, per-topic cards to Discord so you can make a call fast.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you review 10 rising topics each morning. Manually, you might spend about 5 minutes per topic in Google Trends, then another 5 minutes checking TikTok, Instagram, and X for context, which is roughly 100 minutes before you’ve written a single takeaway. With this workflow, the daily trigger runs in the background: you spend maybe 10 minutes in Discord scanning the AI summaries and picking 2–3 winners. That’s about an hour and a half back, most weekdays.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Apify to scrape TikTok, Instagram, and X.
- Discord to receive reports via webhook messages.
- Google Gemini API key (get it from Google AI Studio)
Skill level: Intermediate. You’ll paste a few keys, set a region code, and confirm Discord webhook delivery.
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. The workflow starts on a schedule trigger, then immediately sets your target region (country code like US, JP, ID) so the rest of the run stays focused.
Search trends get pulled and parsed. An HTTP request grabs the Google Trends RSS feed, then a code step parses the XML into a usable list of rising queries.
Social proof is collected in parallel. Each query is used to trigger Apify actors that gather TikTok signals, Instagram hashtag context, and X chatter. Separate “builder” steps summarize each platform’s results, then a merge node combines the streams into one dataset.
AI turns raw data into decisions. The workflow compiles a single payload, sends it to an AI agent powered by a Gemini chat model, decodes the response, then splits it into individual topics. Each topic gets sent to Discord so your channel receives tidy, readable reports.
You can easily modify the region and the Discord formatting based on your needs. 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 schedule to pull daily social trend data.
- Add and open Scheduled Automation Start.
- Set the schedule rule to run at your preferred time (the current configuration triggers at hour
8). - Connect Scheduled Automation Start to Assign Region Values.
Step 2: Connect Google Trends Data Source
These nodes define the region and pull the Google Trends RSS feed.
- Open Assign Region Values and set Mode to
raw. - Set JSON Output to
{ "region": "US" }. - Open Retrieve Trends Feed and set URL to
=https://trends.google.com/trending/rss?geo={{ $json.region.toUpperCase().trim() }}. - Connect Assign Region Values → Retrieve Trends Feed → Parse Trends XML.
Step 3: Parse Trends and Run Social Harvesters in Parallel
The RSS feed is parsed, then three Apify harvesters run simultaneously.
- Keep the JavaScript in Parse Trends XML as-is to transform the RSS XML into a structured
trendsarray. - Parse Trends XML outputs to TikTok Data Harvester, Instagram Hashtag Harvester, and X Data Harvester in parallel.
- In TikTok Data Harvester, keep Custom Body as
={ "searchQueries": {{ JSON.stringify($json.trends.slice(0, 5).map(t => t.keyword)) }}, "resultsPerPage": 5, "searchType": "video", "sortType": "most-liked", "shouldDownloadVideos": false, "shouldDownloadCovers": false }. - In Instagram Hashtag Harvester, keep Custom Body as
={ "hashtags": {{ JSON.stringify($json.trends.slice(0, 5).map(t => t.keyword.replace(/\s+/g, ''))) }}, "resultsLimit": 5, "enhanceUserSearchWithWildcard": true }. - In X Data Harvester, keep Custom Body as
={ "searchTerms": {{ JSON.stringify($json.trends.slice(0, 5).map(t => t.keyword)) }}, "maxItems": 10, "sort": "Latest", "includeUserInfo": true }. - Credential Required: Connect your apifyApi credentials in TikTok Data Harvester, Instagram Hashtag Harvester, and X Data Harvester.
Step 4: Summarize and Merge Social Streams
Each platform is summarized and then merged into a single payload.
- Verify TikTok Summary Builder, Instagram Summary Builder, and X Summary Builder each create a
summaryarray capped at 5 items. - Connect TikTok Data Harvester → TikTok Summary Builder, Instagram Hashtag Harvester → Instagram Summary Builder, and X Data Harvester → X Summary Builder.
- Set Combine Streams to accept Number of Inputs
3and connect all three summary nodes into it. - Open Compile Social Payload and keep the code that builds
merged_data_textfrom the merged items.
Step 5: Set Up AI Trend Analysis
The AI agent analyzes the merged social payload and outputs a structured JSON response.
- Open Trend Analysis Agent and keep the prompt text as
=Analyze the following merged social media data... DATA: {{ $json.merged_data_text }}to pass the merged payload into the model. - Ensure the system message in Trend Analysis Agent mandates a JSON response with a
topicsarray. - Confirm Gemini Chat Engine is connected as the language model for Trend Analysis Agent.
- Credential Required: Connect your googlePalmApi credentials in Gemini Chat Engine.
- Keep Decode AI Response to parse the model output into structured JSON.
error object you can inspect in execution logs.Step 6: Configure Discord Output
The AI results are split into individual topics and sent to Discord.
- Open Explode Topics List and set Field to Split Out to
topics. - Connect Decode AI Response → Explode Topics List → Discord Alert Sender.
- In Discord Alert Sender, keep Content as the templated message using topic fields:
=🚀 **LAPORAN TREN: {{ $json.topic_name }}** .... - Credential Required: Connect your discordWebhookApi credentials in Discord Alert Sender.
Step 7: Test and Activate Your Workflow
Run a manual test to confirm the full data flow before turning on the schedule.
- Click Execute Workflow and verify that Retrieve Trends Feed returns RSS data and Parse Trends XML outputs a
trendsarray. - Confirm that Combine Streams receives three summaries and Compile Social Payload outputs
merged_data_text. - Check Decode AI Response for a valid JSON object with a
topicsarray. - Verify that Discord Alert Sender posts a formatted message for each topic.
- Once validated, toggle the workflow to Active to run on schedule.
Common Gotchas
- Apify credentials can expire or need specific permissions. If things break, check your Apify token in n8n Credentials 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.
- Discord webhooks can silently fail if the URL was regenerated. If your channel goes quiet, re-copy the webhook URL from Discord and update the Discord node.
Frequently Asked Questions
About 30 minutes if you already have your API keys and Discord webhook ready.
No. You’ll connect Apify, set a region value, and paste in a Discord webhook URL.
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 Apify usage and Gemini API costs, which depend on how many topics you process each day.
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 parts. You change the country code in the “Assign Region Values” (Edit Fields) node, then tighten the AI agent prompt so it ranks topics for your niche (for example, “B2B SaaS,” “fitness coaching,” or “local restaurants”). Many teams also tweak the Discord message format in the final send step so the report includes a suggested hook, a short caption, and one “post this today” angle. If you want deeper control, you can swap the Apify actors for different scrapers or add another platform feed, then merge it alongside TikTok/Instagram/X.
Usually it’s an expired or wrong Apify token stored in n8n Credentials. Update the token, then re-run a single execution to confirm the Apify nodes can start actors. If it still fails, check the actor input settings because some scrapers require specific fields, and make sure “Continue on fail” is enabled so one platform doesn’t stop the whole run.
Plenty for a daily workflow; most teams run 10–50 topics per day, and the real limit is your n8n plan plus how much scraping/AI you want to pay for.
Often, yes, because this workflow isn’t just “send data from A to B.” It does branching, parallel scraping, merging, and some code-based cleanup before the AI step, which is where simpler tools start to feel cramped. n8n also gives you the self-hosting route, which is nice when you’re running daily jobs and don’t want every execution metered into oblivion. Zapier or Make can still work if you strip the scope down to “Google Trends RSS → send to Discord,” but you’ll lose the cross-platform validation that makes the report trustworthy. Talk to an automation expert if you want help choosing the right approach.
Once this is running, trend research stops being a calendar task and starts being a steady input. The workflow handles the repetitive scanning so you can focus on picking angles that actually ship.
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.