RSS to LinkedIn, posts drafted and logged in Sheets
Your RSS feed is full of ideas. The problem is what happens next: tabs everywhere, half-finished drafts, and that nagging feeling you already posted something similar last week.
This RSS LinkedIn automation hits content marketers first, but founders trying to stay visible and agency folks managing multiple client voices feel it too. Instead of rewriting articles by hand, you get LinkedIn-ready drafts that are logged, trackable, and hard to accidentally repeat.
Below, you’ll see how the workflow ingests RSS items, uses AI to pick the best ones, writes platform-native posts, then logs and routes everything so you can publish with confidence.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: RSS to LinkedIn, posts drafted and logged in Sheets
flowchart LR
subgraph sg0["RSS Feed Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "RSS Feed Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", 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/code.svg' width='40' height='40' /></div><br/>Code"]
n3@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", 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/>Code1"]
n6@{ icon: "mdi:database", form: "rounded", label: "Store Content", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "New for Review", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Archive", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Content AI", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Scoring AI", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Quality Filter", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Quality Filter 2", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Upload to Twitter,Linkedin a..", pos: "b", h: 48 }
n2 --> n11
n5 --> n13
n5 --> n6
n9 --> n5
n10 --> n2
n3 -.-> n10
n11 --> n9
n11 --> n12
n12 --> n7
n12 --> n8
n0 --> n10
n1 -.-> n10
n4 -.-> n9
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 n9,n10 ai
class n1,n4 aiModel
class n3 ai
class n11,n12 decision
class n6,n7,n8 database
class n2,n5 code
classDef customIcon fill:none,stroke:none
class n2,n5 customIcon
The Problem: Posting Consistently Without Rewriting Everything
Turning news into LinkedIn posts sounds simple until you do it every day. You scan a feed, open a few articles, copy a quote into a doc, then try to “make it yours” without sounding like a summary bot. Meanwhile, you’re second-guessing quality (“Is this even worth posting?”), chasing consistency (“Does this match our voice?”), and you have no reliable record of what you chose or why. It’s slow work, and frankly, it steals energy from the parts that actually grow an audience: having an opinion and showing up regularly.
It adds up fast. Here’s where it breaks down in real teams.
- You end up reading 10 articles to publish one, and that selection time quietly eats an hour.
- Drafts get written in DMs, docs, and notes, so the “final version” is always hard to find.
- Without a log, it’s easy to repost the same angle and burn out your audience.
- Manual rewriting creates inconsistent hooks and structure, which means weaker posts and more editing.
The Solution: RSS to AI-Scored Drafts, Routed and Tracked
This workflow monitors one or more RSS feeds on a schedule, then hands each new item to OpenAI for quality and relevance scoring. Good candidates move forward into content generation, where a second AI step turns the article into platform-native copy (including a professional LinkedIn post, and optionally an X thread). From there, n8n parses the AI output into clean fields, appends the details to a Google Sheet, and then routes the item to one of three paths: publish automatically, queue for review, or archive. The result is a repeatable pipeline where every decision is recorded, so you can trust what gets posted and you can always audit what happened later.
The workflow starts with scheduled RSS ingestion. Then AI filters and formats the content into a usable draft. Finally, it logs to Google Sheets and either publishes via Upload-Post or sends the item to a review sheet (your call).
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you publish 5 LinkedIn posts a week from industry news. Manually, you might spend about 20 minutes finding a solid article, then another 20 minutes rewriting it into a LinkedIn draft, plus 5 minutes logging it somewhere (if you remember). That’s roughly 4 hours a week. With this workflow, RSS runs on schedule, drafts are generated automatically, and the Google Sheet log is created as part of the same run. You’re usually left with a quick review pass, maybe 10 minutes per post.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- OpenAI for scoring and draft generation
- Google Sheets to log drafts and routing decisions
- Upload-Post to publish to LinkedIn (and more)
- OpenAI API key (get it from your OpenAI dashboard)
Skill level: Intermediate. You’ll connect accounts, paste in an RSS URL, and adjust a few quality thresholds and prompts.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
RSS feed triggers new work. A schedule-based RSS monitor checks your chosen feed(s) and passes each new article forward, including the title, link, and basic metadata.
AI scoring filters the noise. OpenAI reviews the content and produces a structured scoring payload (quality, relevance, and a usable summary/angle). n8n parses that payload into clean fields you can reference later.
Quality gates decide the path. If the scores clear your thresholds, the workflow generates a LinkedIn draft (and optionally an X thread). If it doesn’t, it can be archived automatically, which keeps your pipeline clean.
Sheets logging and publishing happen at the end. Every item gets written to Google Sheets so you have a record, and the “good” path can publish via Upload-Post or drop into a review queue for approval.
You can easily modify the scoring thresholds to be stricter (or looser) based on your niche. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the RSS Trigger
Set up the feed polling so the workflow ingests new articles on a schedule.
- Add and open RSS Intake Monitor.
- Set Feed URL to
https://morss.it/https://techcrunch.com/feed/. - Confirm the schedule is set to run Every Hour (from the Poll Times configuration).
Step 2: Connect OpenAI Models and Memory
Wire up the AI language models and the session memory used by the agent nodes.
- Open OpenAI Scoring Model and select the model
gpt-4o. Credential Required: Connect your openAiApi credentials. - Open OpenAI Content Model and select the model
gpt-4.1. Credential Required: Connect your openAiApi credentials. - Open Session Memory Buffer and set Session Key to
{{ $execution.id }}with Session ID Type set to Custom Key. - Confirm Session Memory Buffer is connected to Article Scoring Agent via the ai_memory connection.
Step 3: Set Up Article Scoring and Parsing
Score incoming articles and normalize the AI output into structured fields for routing.
- Open Article Scoring Agent and set Text to
Analyze this article: {{ $json.title }} - {{ $json['content:encoded'] }}. - Ensure OpenAI Scoring Model is connected as the language model for Article Scoring Agent.
- Open Parse Score Payload and keep the provided JavaScript Code to parse the AI JSON response and merge it with the RSS fields.
- Open Quality Gate Check and set the condition to Number > 4 with Left Value set to
{{ $json.quality_score }}.
quality_score: 5 and action: "REVIEW", which will send items to review flows. Keep the system prompt in Article Scoring Agent strict to reduce parsing errors.Step 4: Build Content and Parse Outputs
Generate social content and prepare output fields for publishing and logging.
- Open Content Builder Agent and set Text to
Create social media content for this article:with the full template shown in the node, including{{ $json.title }},{{ $json.summary }},{{ $json.content_angle }},{{ $json.link }},{{ $json.quality_score }}, and{{ $json.relevance_score }}. - Ensure OpenAI Content Model is connected as the language model for Content Builder Agent.
- Open Parse Content Output and keep the provided JavaScript Code to parse the generated JSON into fields like
twitter_threadandlinkedin_post. - Confirm the execution flow is Quality Gate Check → Content Builder Agent → Parse Content Output.
Step 5: Configure Routing and Output Destinations
Route qualified content to publishing and spreadsheets, and send low-quality items to review or archive.
- Note the parallel execution: Parse Content Output outputs to both Publish Social Posts and Append Content Sheet in parallel.
- Open Publish Social Posts and set User to
automated-tests, Operation touploadText, Title to{{ $json.twitter_thread }}, and LinkedIn Title to{{ $json.linkedin_post }}. Set Target LinkedIn Page ID to[YOUR_ID]. Credential Required: Connect your uploadPostApi credentials. - Open Append Content Sheet, set Operation to
append, and map columns like Article Link to{{ $json.link }}and Twitter Content to{{ $json.twitter_thread[0] }}{{ $json.twitter_thread[1] }}{{ $json.twitter_thread[2] }}{{ $json.twitter_thread[3] }}. Credential Required: Connect your googleSheetsOAuth2Api credentials. - Open Secondary Quality Check and set the condition to Number ≥ 5 with Left Value set to
{{ $json.quality_score }}. - Open Queue Review Sheet with Operation set to
appendand map fields such as Link to{{ $json.link }}and Content Angle to{{ $json.content_angle }}. Credential Required: Connect your googleSheetsOAuth2Api credentials. - Open Archive Records Sheet with Operation set to
appendand map fields such as Reason to{{ $json.summary }}. Credential Required: Connect your googleSheetsOAuth2Api credentials.
[YOUR_ID] placeholders in Publish Social Posts, Append Content Sheet, Queue Review Sheet, and Archive Records Sheet with real IDs before testing.Step 6: Test and Activate Your Workflow
Validate end-to-end processing before enabling the workflow in production.
- Use RSS Intake Monitor to trigger a manual test run and observe items flowing into Article Scoring Agent and Parse Score Payload.
- Confirm that Quality Gate Check routes higher-quality items to Content Builder Agent and lower-quality items into Secondary Quality Check for review or archive.
- Verify that successful runs create rows in Append Content Sheet, and optionally publish via Publish Social Posts with the expected
twitter_threadandlinkedin_post. - Activate the workflow by toggling it to Active after testing confirms outputs are correct.
Common Gotchas
- Google Sheets OAuth permissions can be picky. If appends fail, check the n8n credential connection and confirm the target spreadsheet is accessible to that Google account.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- OpenAI prompts start generic, which is fine for testing but rough for real publishing. Add your brand voice, banned phrases, and “point of view” rules early so you’re not rewriting every draft.
Frequently Asked Questions
About an hour if your accounts and sheets are ready.
No. You will mostly be connecting accounts and tweaking prompts and thresholds.
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 costs, which are usually a few cents per item depending on the model and prompt length.
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 a common setup. You can keep publishing turned off and route everything through the “Secondary Quality Check” so the workflow writes drafts into the “Queue Review Sheet” instead of sending them to Upload-Post. Many teams also customize the OpenAI prompts to enforce a house style, add a CTA, and require a contrarian takeaway so the draft feels like you, not the source article.
Usually it’s expired OAuth access or the workflow is pointing at the wrong spreadsheet/tab. Reconnect the Google Sheets credential in n8n, then confirm the target spreadsheet is shared with that Google account and the sheet names match what the nodes expect. If it fails only sometimes, it can also be a quota hiccup on the Google side, so spacing executions out a bit helps.
A typical setup can process a few hundred RSS items a day, assuming your OpenAI usage limits and Sheets quotas are reasonable.
For this workflow, n8n has a few advantages: more complex branching with quality gates, a self-hosting option for unlimited executions, and an easier path to “agent-style” AI steps for scoring plus drafting. Zapier or Make can still work, but you’ll often end up stitching together multiple zaps/scenarios and paying more as volume grows. The bigger difference is control: you can decide exactly when to publish vs. route to review, and you can log every decision in one place. If you want help choosing, Talk to an automation expert.
Once this is running, your RSS feed stops being “reading material” and starts being a steady draft pipeline. Set it up, tune the quality bar, and get your week back.
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.