🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

RSS to LinkedIn with Google Sheets, posts stay consistent

Lisa Granqvist Partner Workflow Automation Expert

Your LinkedIn page goes quiet, not because you have nothing to say, but because turning “interesting RSS link” into a solid post takes too much fiddling. You copy. You rewrite. You check if you already shared it. Then you do it again next week.

This RSS LinkedIn automation hits marketing managers hardest, but founders and small agency teams feel it too. You will keep your page active with consistent, on-brand posts while Google Sheets quietly tracks what’s already been published.

Below, you’ll see exactly how the workflow runs in n8n, what it automates, and what kind of time it gives back once it’s set up.

The Problem: Staying consistent on LinkedIn without repeating yourself

Posting “regularly” sounds simple until you’re the one doing it. You have to find an article worth sharing, skim it, pull out a credible angle, write copy that doesn’t sound like a robot, add hashtags, and then double-check you didn’t already post the same link two weeks ago. The worst part is the context switching. Five minutes here, ten minutes there, and suddenly it’s 45 minutes gone with nothing to show but another half-finished draft in your notes app.

The friction compounds. Here’s where it breaks down for most teams.

  • You rewrite the same kind of “news summary” over and over, and it still comes out inconsistent.
  • Duplicates happen because nobody has a reliable log of what has already been posted.
  • Good articles get missed since “I’ll post it later” usually turns into never.
  • Manual posting adds a hidden tax: approvals, formatting, and last-minute edits on mobile.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: RSS to LinkedIn with Google Sheets, posts stay consistent

The Solution: RSS-to-LinkedIn publishing with Gemini and a Google Sheets log

This workflow runs on a schedule, pulls fresh stories from multiple RSS feeds, and filters them down to the newest, most relevant items. For each candidate article, it uses Gemini (through n8n’s AI Agent setup) to analyze the content, generate a clean LinkedIn-ready summary, and build hashtags that fit the topic. Before anything goes live, it checks a Google Sheet to confirm the link has not been published already. If it’s new, it posts to LinkedIn, generates a trackable LinkedIn link (and even creates a QR image asset), then appends the final link into Google Sheets so future runs won’t repost it. Quiet. Reliable. Honestly the kind of background automation you stop thinking about after week one.

The workflow starts with a weekly schedule trigger and multiple RSS readers. Then it sorts, limits the batch, and runs AI content analysis plus post generation. Finally, it publishes via the LinkedIn API and logs the posted URL in Google Sheets to prevent duplicates.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you share 5 curated news posts per week from 3 RSS sources. Manually, you’ll usually spend about 15 minutes per post between reading, writing, hashtags, and checking old posts, which is roughly 75 minutes a week. With this workflow, you schedule it once, let it process the feed batch, and then you only review what it’s about to publish (maybe 10 minutes total). The Google Sheets log prevents repeats automatically, so you don’t waste time second-guessing.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for the “already posted” log.
  • LinkedIn to publish to your profile or company page.
  • Gemini API credentials (get them from Google AI Studio / Google Cloud Console).

Skill level: Intermediate. You’ll connect accounts, handle API credentials, and tweak prompts, but you won’t be writing an app.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A weekly schedule kicks things off. n8n runs automatically on the cadence you choose, then pulls new items from your selected RSS feeds (the workflow includes multiple sources out of the box).

The feed is cleaned up and narrowed down. Articles get filtered to recent items, ordered by timestamp, and limited so you’re not flooding LinkedIn or processing a giant backlog.

Gemini turns “article text” into “LinkedIn post.” AI agents analyze the story, generate a tight summary, and build hashtags and final copy. A cleaning step trims noise so posts read like a human wrote them.

Google Sheets prevents duplicates, then LinkedIn publishes. The workflow looks up the link in your spreadsheet, posts only if it’s new, then writes the final LinkedIn link back to Sheets. It also generates a QR image asset if you want to reuse it elsewhere.

You can easily modify the RSS sources to match your niche based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set up the weekly trigger that kicks off the RSS aggregation pipeline.

  1. Add Weekly Schedule Trigger and set Trigger Interval to weekly with Trigger At Day as 2, 3, 4, 0 and Trigger At Hour as 15.
  2. Connect Weekly Schedule Trigger to Fetch RSS TestingCatalog, Fetch RSS Marktechpost, and Fetch RSS LatinxAI.
  3. Note the parallel execution: Weekly Schedule Trigger outputs to both Fetch RSS TestingCatalog and Fetch RSS Marktechpost and Fetch RSS LatinxAI in parallel.
If your expected publish time is off, confirm the workflow timezone is set correctly in n8n (this workflow uses America/Guayaquil).

Step 2: Connect RSS Feeds

Aggregate multiple sources, normalize fields, and keep only recent items before analysis.

  1. In Fetch RSS TestingCatalog, set URL to https://www.testingcatalog.com/rss/ and enable Ignore SSL.
  2. In Fetch RSS Marktechpost, set URL to https://www.marktechpost.com/feed/.
  3. In Fetch RSS LatinxAI, set URL to https://medium.com/feed/latinxinai.
  4. In Combine RSS Feeds, set Number Inputs to 3 and connect all three feed nodes.
  5. In Map Date Fields, map fields using expressions: title to {{ $json.title }}, content to {{ $json.contentSnippet }}, link to {{ $json.link }}, timestampDate to {{ new Date($json.isoDate).getTime() }}, and categories to {{ $json.categories }}.
  6. In Filter Recent Items, set the condition to keep items where timestampDate is greater than {{ Date.now() - 7 * 24 * 60 * 60 * 1000 }}.
  7. In Order by Timestamp, sort by timestampDate in descending order.
  8. Connect Order by Timestamp to Limit Article Count to cap the number of items processed.
  9. Note the parallel execution: Limit Article Count outputs to both Map Article Fields and Map Category Data and Content Analysis Agent in parallel.
⚠️ Common Pitfall: If the RSS feeds return items without isoDate, Filter Recent Items may filter everything out. Validate the feed output before proceeding.

Step 3: Set Up AI Analysis and Hashtag Generation

Analyze each article, merge metadata, and build a structured prompt for hashtags and later post generation.

  1. In Content Analysis Agent, keep the analysis prompt as provided to summarize core innovation, goal, problem, benefits, context, significance, and entities.
  2. Gemini Chat Engine A is connected as the language model for Content Analysis AgentCredential Required: Connect your googlePalmApi credentials.
  3. Note the parallel execution: Content Analysis Agent outputs to both Combine Analysis Inputs and Set Analysis Field in parallel.
  4. In Set Analysis Field, set Analisis to {{ $json.output }}.
  5. In Map Article Fields, map Enlace to {{ $json.link }}, Fecha_sinFormato to {{ $json.timestampDate }}, Titulo_original to {{ $json.title }}, and Contenido to {{ $json.content }}.
  6. In Map Category Data, set Categorias to {{ $json.categories }}.
  7. In Combine Analysis Inputs, set Mode to combine and Combine By to combineByPosition.
  8. In Hashtag Prompt Builder, keep the JavaScript prompt generator for LinkedIn hashtags.
  9. In Language Agent Core, set Text to {{ $json.prompt }}.
  10. Gemini Chat Engine is connected as the language model for Language Agent CoreCredential Required: Connect your googlePalmApi credentials.
  11. In Merge Analysis Data, set Mode to combine, Combine By to combineByPosition, and Number Inputs to 3.

Step 4: Prevent Duplicates and Compose the LinkedIn Post

Check for existing links in Google Sheets, then generate the LinkedIn post copy and clean it for image prompt generation.

  1. In Lookup Spreadsheet Row, set a filter where Link_raw equals {{ $json.Enlace }}.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Lookup Spreadsheet Row.
  3. In Check Link Exists, keep the condition Link_raw exists with {{ $json.Link_raw }}.
  4. Connect the false output of Check Link Exists to Compose Post Prompt so only new items are published.
  5. In Compose Post Prompt, keep the JavaScript that builds the post prompt using merged fields from Merge Analysis Data.
  6. In LinkedIn Copy Agent, set Text to {{ $json.prompt }} and keep the Spanish system message.
  7. Gemini Chat Engine B is connected as the language model for LinkedIn Copy AgentCredential Required: Connect your googlePalmApi credentials.
  8. In Clean News Text, keep the JavaScript to remove line breaks and quotes before image prompt generation.
  9. In Image Prompt Agent, keep the prompt template and system message for creating a professional LinkedIn image prompt.
  10. Gemini Chat Engine C is connected as the language model for Image Prompt AgentCredential Required: Connect your googlePalmApi credentials.
⚠️ Common Pitfall: If Check Link Exists is wired incorrectly, you may republish the same article. Ensure the false path goes to Compose Post Prompt.

Step 5: Configure Image Generation and LinkedIn Publishing

Generate the post image, convert it to binary, and publish the final post to LinkedIn.

  1. In Image Generation Request, set URL to https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp-image-generation:generateContent and keep the JSON body with {{ $json.output.slice(0, -2) }}.
  2. Credential Required: Connect your googlePalmApi credentials in Image Generation Request.
  3. In Convert Image Binary, set Operation to toBinary and Source Property to candidates[0].content.parts[0].inlineData.data.
  4. In Post to LinkedIn, set Text to {{ $('LinkedIn Copy Agent').item.json.output }}, Post As to organization, Organization to [YOUR_ID], and Share Media Category to IMAGE.
  5. Credential Required: Connect your linkedInCommunityManagementOAuth2Api credentials in Post to LinkedIn.
  6. In Build LinkedIn Link, set JSON Output to { "link": "https://www.linkedin.com/feed/update/{{ $json.urn }}" }.
  7. Note the parallel execution: Build LinkedIn Link outputs to both Generate QR Request and Append to Spreadsheet in parallel.
⚠️ Common Pitfall: Replace [YOUR_ID] in Post to LinkedIn and the Google Sheets URLs with your actual organization and spreadsheet IDs before testing.

Step 6: Configure QR and Spreadsheet Logging

Generate a QR code for the LinkedIn post and log publishing details to Google Sheets.

  1. In Generate QR Request, set URL to https://api.qrserver.com/v1/create-qr-code/ and configure query params data as {{ $json.link }} and size as 300x300.
  2. In Write QR File, set File Name to qr.png.
  3. In Append to Spreadsheet, set Operation to append, Document ID to your spreadsheet URL, and Sheet Name to Hoja 1.
  4. Map columns in Append to Spreadsheet: Title to {{ $('Merge Analysis Data').item.json.Titulo_original }}, Link_pub to {{ $json.link }}, and Link_raw to {{ $('Merge Analysis Data').item.json.Enlace }}.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append to Spreadsheet.

Step 7: Test and Activate Your Workflow

Validate the end-to-end flow, then turn on scheduled publishing.

  1. Click Execute Workflow to run a manual test from Weekly Schedule Trigger.
  2. Confirm that Post to LinkedIn publishes a post and that Build LinkedIn Link generates a valid https://www.linkedin.com/feed/update/ URL.
  3. Verify a new row is appended in Append to Spreadsheet with the correct title and links.
  4. Check that Write QR File creates qr.png in your configured environment.
  5. Activate the workflow using the Active toggle to enable weekly publishing.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • LinkedIn credentials can expire or need specific permissions. If things break, check your LinkedIn app access and page permissions first (then re-auth inside n8n).
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this RSS LinkedIn automation?

About 45 minutes if your accounts and API keys are ready.

Do I need coding skills to automate RSS to LinkedIn posting?

No. You’ll mostly connect accounts and paste credentials. You might tweak a prompt or two, but it’s not “developer-only” work.

Is n8n free to use for this RSS LinkedIn automation workflow?

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 Gemini API usage costs.

Where can I host n8n to run this automation?

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.

Can I customize this RSS LinkedIn automation workflow for different RSS sources and brand voice?

Yes, and you should. You can swap RSS feeds by editing the RSS read nodes (for example, the Tech/AI sources in the workflow) and adjust tone by updating the prompt-building code and the Gemini agent instructions. Common tweaks include changing the hashtag rules, forcing a specific post format (hook + 2 bullets + link), and setting a stricter “only post if it matches these topics” filter.

Why is my LinkedIn connection failing in this workflow?

Most of the time it’s permissions or an expired auth session. Reconnect your LinkedIn account in n8n, confirm you have access to the company page you’re trying to post to, and double-check the app scopes you granted. If it fails only on some runs, you may also be hitting LinkedIn rate limits when you process too many items at once.

How many articles can this RSS LinkedIn automation handle?

Plenty for a typical weekly publishing rhythm, and you can cap volume using the workflow’s Limit node.

Is this RSS LinkedIn automation better than using Zapier or Make?

Usually, yes, because this workflow isn’t a simple two-step “RSS in, post out.” You’re doing filtering, duplicate checks, and multi-stage AI generation, which is where Zapier or Make can get pricey or awkward. n8n also gives you a self-hosted path, so you’re not paying per tiny action when you want to expand to more feeds. The tradeoff is setup effort: n8n gives you more control, but you have to own the workflow. If you’re on the fence, Talk to an automation expert and we’ll tell you bluntly which route fits.

Once this is running, LinkedIn consistency stops being a weekly scramble. The workflow handles the repetitive stuff, and you keep control over the voice and the topics.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal