Google Trends to Google Sheets, posts ready to approve
Your content calendar shouldn’t depend on someone remembering to “check what’s trending” every morning. But that’s how it goes: a quick look at Google Trends turns into 45 minutes, then Reddit, then notes, then “we’ll write it later,” and suddenly it’s 4pm and nothing’s ready.
This kind of trends content automation hits social media managers first. A marketing lead feels it when approvals stall. And if you run a small business, honestly, you don’t have spare brainpower for trend research plus copywriting plus posting.
This workflow pulls trends from multiple sources, scores them with AI, drafts platform-ready posts, routes approvals by email, then publishes and logs everything in Google Sheets. You’ll see exactly how the moving parts fit together, and what to tweak so it matches your brand voice.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Trends to Google Sheets, posts ready to approve
flowchart LR
subgraph sg0["Daily Trigger Idea Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Default Inputs", pos: "b", h: 48 }
n1["<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 Twitter Trends"]
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 Twitter Mentions"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>SERP-Google Trends"]
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/>Fetch Breaking News"]
n5@{ icon: "mdi:robot", form: "rounded", label: "Analyze News Sentiment", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Detect Audience Mood", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Translate Tweets to English", pos: "b", h: 48 }
n8["<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 All Data"]
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/code.svg' width='40' height='40' /></div><br/>Merge Items into Single Item"]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Fix Translated Tweets Output", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Fix Audience Mood Output", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Fix News Sentiment Output", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Trend Relevance Scoring (Wow..", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Google Trends", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract News Headlines", pos: "b", h: 48 }
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/>Log Reddit Response"]
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/reddit.svg' width='40' height='40' /></div><br/>Posts from Reddit"]
n18["<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/>Exctract Reddit Trends"]
n19["<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 Trend Scores"]
n20@{ icon: "mdi:robot", form: "rounded", label: "Generate Social Media Content", pos: "b", h: 48 }
n21["<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 Social Media Content"]
n22@{ icon: "mdi:database", form: "rounded", label: "Retrieve Latest Trend Scores", pos: "b", h: 48 }
n23["<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 Retrieved Trend Scores"]
n24@{ icon: "mdi:robot", form: "rounded", label: "Generate Images", pos: "b", h: 48 }
n25@{ icon: "mdi:database", form: "rounded", label: "Store Selected Trend", pos: "b", h: 48 }
n26["<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/>Extract Google Trends2"]
n27@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Fallback", pos: "b", h: 48 }
n28@{ icon: "mdi:play-circle", form: "rounded", label: "Daily Trigger Idea", pos: "b", h: 48 }
n29["<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 Headlines"]
n30["<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/>Combine Trends and UGCc"]
n31["<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/>Filter English Trends"]
n32["<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/>Prepare Trends Scoring Input"]
n33["<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/>Select Top 5 Trends"]
n34["<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/>Find Latest Timestamp"]
n35["<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/>Extract Latest Row"]
n36["<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/>Select Top Trend"]
n37@{ icon: "mdi:message-outline", form: "rounded", label: "Send Approval Email", pos: "b", h: 48 }
n38@{ icon: "mdi:database", form: "rounded", label: "Store Social Media Content", pos: "b", h: 48 }
n39@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Content Fields", pos: "b", h: 48 }
n40["<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/>Debug Url"]
n41@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n42@{ icon: "mdi:cog", form: "rounded", label: "Wait3", pos: "b", h: 48 }
n41 --> n39
n42 --> n21
n27 --> n26
n24 --> n40
n24 --> n41
n8 --> n9
n29 --> n5
n36 --> n20
n17 --> n16
n28 --> n0
n35 --> n23
n19 --> n33
n3 --> n27
n39 --> n38
n0 --> n4
n0 --> n2
n0 --> n1
n0 --> n3
n0 --> n17
n4 --> n15
n16 --> n18
n33 --> n25
n6 --> n11
n1 --> n8
n25 --> n34
n14 --> n8
n31 --> n32
n34 --> n22
n5 --> n12
n18 --> n8
n26 --> n14
n15 --> n29
n2 --> n7
n30 --> n31
n11 --> n8
n12 --> n8
n21 --> n24
n38 --> n37
n7 --> n10
n10 --> n6
n9 --> n30
n23 --> n36
n32 --> n13
n22 --> n35
n20 --> n42
n13 --> n19
end
subgraph sg1["Google Sheets Flow"]
direction LR
n43["<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/>Reddit"]
n44["<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/facebook.svg' width='40' height='40' /></div><br/>Facebook Posts"]
n45["<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/facebook.svg' width='40' height='40' /></div><br/>Instagram Container"]
n46["<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/facebook.svg' width='40' height='40' /></div><br/>Post to Instagram"]
n47@{ icon: "mdi:play-circle", form: "rounded", label: "Google Sheets Trigger", pos: "b", h: 48 }
n48@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n49@{ icon: "mdi:swap-vertical", form: "rounded", label: "Facebook Filter", pos: "b", h: 48 }
n50@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n51@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Reddit", pos: "b", h: 48 }
n52@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set LinkedIn", pos: "b", h: 48 }
n53["<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/>Reverse Rows"]
n55["<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/>Get Newest Row"]
n56["<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/linkedin.svg' width='40' height='40' /></div><br/>LinkedIn"]
n48 --> n50
n48 --> n49
n48 --> n52
n48 --> n51
n51 --> n43
n50 --> n45
n53 --> n55
n52 --> n56
n55 --> n48
n49 --> n44
n45 --> n46
n47 --> n53
end
subgraph sg2["Flow 3"]
direction LR
n54["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Handle Approval/Rejection"]
n57@{ icon: "mdi:database", form: "rounded", label: "Social Media Content Update", pos: "b", h: 48 }
n54 --> n57
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 n28,n47 trigger
class n5,n6,n7,n13,n20,n24 ai
class n27,n48 decision
class n22,n25,n38,n57 database
class n1,n2,n3,n4,n44,n45,n46,n54 api
class n9,n16,n18,n19,n21,n23,n26,n29,n30,n31,n32,n33,n34,n35,n36,n40,n53,n55 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n8,n9,n16,n17,n18,n19,n21,n23,n26,n29,n30,n31,n32,n33,n34,n35,n36,n40,n43,n44,n45,n46,n53,n55,n56,n54 customIcon
Why This Matters: Trend Research That Never Turns Into Posts
Trend research feels productive, but it’s a trap when there’s no clean path from “interesting” to “posted.” You grab a few Google Trends queries, skim Reddit threads, maybe check what people are saying on X, and then… you’re left with a pile of half-ideas. Then you still need to decide what fits your audience, write versions for each platform, get someone to approve it, and publish at the right time. Do that manually for a week and you’re spending hours just to stay consistent, plus you’ll miss the window when a trend is actually hot.
The friction compounds. Here’s where it breaks down.
- Someone has to check multiple sources and copy the “best” trends into a doc or sheet, which is pure busywork.
- Trends get picked based on gut feel, so you end up posting things that don’t match your audience mood.
- Approvals happen in DMs or Slack threads, and there’s no audit trail when a post goes sideways.
- Publishing becomes a separate project, because every platform wants a slightly different format and image.
What You’ll Build: A Trend-to-Approved-Post Pipeline in Sheets
This workflow turns trend discovery into a repeatable content pipeline you can actually trust. It starts on a schedule (daily by default), then pulls trend signals from Google Trends (via SerpApi), Reddit, X mentions, and even breaking news headlines. OpenAI scores the trends for relevance using your chosen brand voice and the detected “audience mood,” so you’re not guessing what will land. Then it generates platform-specific copy for channels like LinkedIn, Instagram, Facebook, and Reddit, and can also generate visual assets for the post. Finally, it routes content for approval through Gmail, waits for an approval signal, publishes to the right platforms, and updates Google Sheets so you have a clean log of what happened.
The workflow begins with trend collection and normalization, so everything is comparable. Next comes scoring and selection (top trends first), followed by content and asset generation. Then approvals and publishing kick in, and the sheet gets updated as the single source of truth.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you publish one trend-based post per weekday across three places: LinkedIn, Instagram, and Facebook. Manually, it’s easy to spend about 30 minutes finding and validating a trend, then another 45 minutes writing variants and prepping an image, plus 10 minutes posting and logging. That’s roughly 90 minutes a day. With this workflow, you’ll usually spend about 10 minutes reviewing the draft in Google Sheets and replying to the approval email; publishing and logging are handled automatically while you do other work.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store trends, drafts, and statuses
- OpenAI API for scoring trends and generating copy
- SerpApi key (get it from your SerpApi dashboard)
Skill level: Intermediate. You’ll connect a few accounts, paste credentials, and do light testing to confirm each platform can publish.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A daily schedule triggers the run. The workflow starts with a Schedule Trigger and sets base inputs like brand voice and default fields, so every run follows the same rules.
Trends and context get collected and cleaned. It pulls from Google Trends (via SerpApi), Reddit posts, X trends and mentions, and breaking news, then merges everything into one normalized dataset. Translation and formatting nodes keep the text consistent, which matters when you’re scoring with AI.
OpenAI scores and drafts content. The workflow prepares a scoring prompt (including audience mood and sentiment), uses OpenAI to score relevance, selects top items, then generates platform-specific copy. There’s also an image generation step, which can create visual assets and attach them to the content record.
Approval happens through email, then publishing updates the log. The draft is stored in Google Sheets, a Gmail approval email is sent, and the workflow waits. Once an approval signal comes in, it routes to the correct posting path (LinkedIn, Instagram via Meta Graph, Facebook, Reddit), then updates the sheet so you can see what posted and what didn’t.
You can easily modify the trend sources (or the platforms you publish to) without changing the whole workflow. 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 also listens for spreadsheet updates and approval webhooks.
- Add a schedule trigger and name it exactly Daily Schedule Trigger.
- Set the schedule timing in Daily Schedule Trigger based on your preferred daily cadence.
- Add a sheet trigger and name it exactly Sheets Update Trigger to listen for content approval updates.
- Add a webhook node named Process Approval Webhook to receive approval callbacks.
Step 2: Connect Google Sheets
Google Sheets is used to store and retrieve trend scores and the generated social content.
- Open Fetch Latest Score Sheet and connect your sheet that stores historical scores.
- Configure Save Chosen Trend to write the selected trend row.
- Set Store Social Content to append new social copy and metadata.
- Configure Update Content Sheet for approval status updates coming from Process Approval Webhook.
- Ensure Sheets Update Trigger watches the same sheet used by Store Social Content.
Step 3: Set Up Source Collection and Normalization
The workflow pulls trend signals from multiple sources and normalizes them for analysis. The collection phase starts after Initialize Base Inputs and runs in parallel.
- Configure Initialize Base Inputs with any static defaults needed for your pipeline.
- Set up Retrieve X Trend List, Collect X Mentions, SERP Trends Lookup, Pull Breaking News, and Fetch Reddit Posts with the appropriate endpoints and query parameters.
- Note that Initialize Base Inputs outputs to Pull Breaking News, Collect X Mentions, Retrieve X Trend List, SERP Trends Lookup, and Fetch Reddit Posts in parallel.
- Keep the data shaping steps grouped: Extract Headline List, Format News Headlines, Log Reddit Result, Derive Reddit Trends, and Extract Trends List prepare the feeds before merging.
- Confirm Merge All Sources collects the normalized streams from Retrieve X Trend List, Normalize Mood Output, Normalize Sentiment Output, Extract Trends List, and Derive Reddit Trends.
Step 4: Set Up AI Processing and Trend Scoring
OpenAI nodes translate, analyze sentiment, gauge mood, score trends, generate copy, and create assets.
- Configure Translate Posts to English to translate UGC before analysis, then normalize via Normalize Translated Output.
- Set up Gauge Audience Mood and follow with Normalize Mood Output.
- Configure Assess News Sentiment and follow with Normalize Sentiment Output.
- Ensure Combine Trends and UGC → Filter English Topics → Prepare Scoring Input feeds Score Trend Relevance.
- Connect Score Trend Relevance → Parse Scoring Results → Pick Top Five Trends → Save Chosen Trend.
- Confirm Pick Top Trend sends the chosen item to Generate Social Copy, then Pause Before Parse → Parse Social Copy → Create Visual Assets.
Step 5: Configure Content Storage and Approval Flow
After assets are created, the workflow stores content, requests approval, and waits for responses.
- Map final content into Map Content Fields, then send to Store Social Content.
- Configure Dispatch Approval Email to send an approval request after the content is stored.
- Use Pause Before Parse and Pause Execution to wait for downstream processing; Create Visual Assets outputs to both Debug Asset URL and Pause Execution in parallel.
- Ensure Process Approval Webhook updates the sheet through Update Content Sheet.
Step 6: Configure Social Channel Routing and Publishing
Approved content is routed to specific social channels in parallel and posted.
- Confirm Sheets Update Trigger feeds Reverse Sheet Rows → Get Most Recent Row → Conditional Routing.
- Conditional Routing outputs to both Edit Instagram Fields, Filter Facebook Fields, Map LinkedIn Fields, and Map Reddit Fields in parallel.
- Connect Edit Instagram Fields → Create IG Container → Publish to Instagram.
- Connect Filter Facebook Fields → Publish Facebook Post.
- Connect Map LinkedIn Fields → Post to LinkedIn and Map Reddit Fields → Post to Reddit.
Step 7: Test and Activate Your Workflow
Run the full pipeline once manually to validate data, AI outputs, and channel posting.
- Click Execute Workflow and watch that Daily Schedule Trigger begins the pipeline.
- Verify that Initialize Base Inputs triggers all parallel collection nodes and that Merge All Sources receives inputs from each branch.
- Confirm Generate Social Copy, Parse Social Copy, and Create Visual Assets produce expected content and asset URLs.
- Check that Store Social Content adds a row and that Dispatch Approval Email sends successfully.
- Trigger Process Approval Webhook or update the sheet to ensure Conditional Routing posts to all enabled social channels.
- When satisfied, toggle the workflow Active for daily production runs.
Troubleshooting Tips
- Google Sheets credentials can expire or use the wrong Google account. If rows aren’t updating, check the connected account inside n8n Credentials and confirm the spreadsheet is shared with it.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Meta (Instagram/Facebook Graph API) permissions are picky and can silently fail in dev mode. Verify your app has posting permissions and that the IG container creation step is returning a valid container ID before publish.
Quick Answers
About an hour if you already have API access approved.
No. You’ll mostly connect credentials and adjust prompts and sheet 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 usage (often a few dollars a month at small volumes) and SerpApi costs depending on how often you pull Google Trends.
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 you should. Most people start by changing the “brand voice” and “audience mood” defaults in the Initialize Base Inputs / Set Default Inputs step, then adjust the OpenAI prompts in Score Trend Relevance and Generate Social Copy. You can also swap publishing targets by editing the Conditional Routing paths (for example, disable Reddit posting and focus on LinkedIn only). If you want different sources, add or remove inputs before Merge All Sources.
Usually it’s the wrong Google account or missing spreadsheet access. Reconnect Google Sheets credentials in n8n, then confirm the target spreadsheet is shared with that account and the column names match exactly (case-sensitive). If your sheet was duplicated, double-check the spreadsheet ID in the node because it often points to the old file.
Practically, dozens of trends per day is comfortable on a small setup, because the main limiter is API usage (OpenAI and SerpApi) and your social platform rate limits. If you self-host, you’re not capped by executions, but your server and API quotas still matter. On n8n Cloud, your limit depends on the plan, and higher-volume runs may require upgrading. If you want to scale, keep more logic inside one execution (batch trends) rather than triggering per trend.
For this workflow, n8n has a few advantages: more complex logic with unlimited branching at no extra cost, a self-hosting option for unlimited executions, and native code/merge-style processing that is hard to keep tidy in simpler builders. The approval loop is also easier to control when you can pause and resume workflow executions. Zapier or Make can still work if you only want “pull a trend, write a draft, send to a sheet” with no publishing and no approvals. Once you add multiple sources, scoring, and conditional posting, things get messy fast. Talk to an automation expert if you’re not sure which fits.
Once this is running, trend research stops being a daily fire drill and turns into a steady stream of drafts you can approve in minutes. The workflow handles the repetitive parts so your team can focus on the call, the angle, and the actual marketing.
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.