🔓 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 Bluesky, posts publish themselves

Lisa Granqvist Partner Workflow Automation Expert

You publish great stuff, then it disappears into the “I’ll share it later” pile. Copy the title, grab the link, hunt for an image, shorten the text, paste it into Bluesky. Again.

This is the kind of grind that drains a marketer managing multiple channels, a founder doing their own social, and an agency lead trying to keep client feeds active. With RSS Bluesky automation, new updates can turn into posts automatically, so your account stays consistent without babysitting it.

This workflow takes new RSS items, builds a clean caption, adds an image, and publishes to Bluesky for you. You’ll see how it works, what you need, and where people usually get stuck.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: RSS to Bluesky, posts publish themselves

The Problem: RSS Updates Don’t Share Themselves

RSS feeds are great at one thing: reliably telling you when something new is published. They are terrible at the next step, which is the part that actually grows your audience. Someone still has to notice the new item, open it, pick an image that won’t look messy in a timeline, and write something short enough for Bluesky. If you skip the image, engagement usually drops. If you paste the full excerpt, it gets cut off or looks spammy. And if you forget for a day or two, your “consistent posting plan” becomes a once-a-week scramble.

The friction compounds. Here’s where it breaks down in real life.

  • You end up reformatting the same kind of post every time, which is pure busywork.
  • Images are inconsistent because some RSS items include one and others don’t.
  • Links get posted late (or not at all) because publishing and sharing live in different tools.
  • Manual copy-paste invites small errors that look unprofessional, like broken links or chopped captions.

The Solution: Auto-Publish RSS Items as Bluesky Posts

This n8n workflow watches your RSS feed and turns every new item into a ready-to-publish Bluesky post automatically. It starts when a fresh feed entry appears, then opens a session with Bluesky using an app password (so your main password stays untouched). Next, it pulls the current time to keep things orderly and fetches the image file linked in the feed item. That image is uploaded as a media asset, and the workflow creates a post that includes the feed title, the link, and a short snippet of content trimmed to fit (up to about 200 characters). When it finishes, the post is already live. No tabs. No rewriting the same format for the hundredth time.

The workflow begins at the RSS Feed Listener, then authenticates with Bluesky and collects what it needs (time, image). Finally, it uploads the media and generates the post entry that Bluesky can publish.

What You Get: Automation vs. Results

Example: What This Looks Like

Say your blog publishes 10 new posts a week. Manually sharing each one to Bluesky often takes about 10 minutes: open the post, copy the title and link, find an image, trim the text, publish. That’s roughly 100 minutes a week. With this workflow, you spend about 10 minutes once to set the feed URL and Bluesky credentials, then each new item posts on its own after the workflow fetches the image and publishes the caption. You’ll mostly just spot-check the first few posts and move on.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Bluesky account to publish posts automatically.
  • RSS feed URL for the site or content source.
  • Bluesky app password (generate it in your Bluesky account settings).

Skill level: Beginner. You’ll copy-paste a feed URL, add credentials, and test one post.

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

How It Works

A new RSS item appears. The RSS Feed Listener node checks your feed and triggers when a fresh entry is available, so you’re not polling manually or relying on reminders.

A Bluesky session starts. The workflow uses your Bluesky app password to initiate a session (this is the authentication step that allows posting).

The image and post data are prepared. n8n pulls the current time, fetches the image file from the RSS item, and uploads it as a media asset so the post looks “native” in the timeline.

The post publishes. The workflow generates the post entry containing the title, link, and a short caption (kept to around 200 characters), then sends it to Bluesky as a finished post.

You can easily modify the post text to include only the title (or change the snippet style) based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the RSS Feed Trigger

This workflow starts when new items appear in your RSS feed. Configure the trigger to poll the correct feed and frequency.

  1. Add the RSS Feed Listener node as the trigger.
  2. Set Feed URL to [YOUR_ID] (replace with your actual RSS feed URL).
  3. Set Poll Times to everyMinute to match the workflow’s polling cadence.

⚠️ Common Pitfall: Leaving Feed URL as [YOUR_ID] will prevent any items from triggering.

Step 2: Connect Bluesky Session Initialization

The workflow authenticates with Bluesky to obtain a session token, which is then used for subsequent API calls.

  1. Add the Initiate Session node and connect it after RSS Feed Listener.
  2. Set URL to https://bsky.social/xrpc/com.atproto.server.createSession.
  3. Set Method to POST and enable Send Body.
  4. In Body Parameters, set identifier to [YOUR_EMAIL] and password to [CONFIGURE_YOUR_TOKEN].

⚠️ Common Pitfall: The Initiate Session node uses placeholders. Replace [YOUR_EMAIL] and [CONFIGURE_YOUR_TOKEN] with valid Bluesky credentials.

Step 3: Set Up Time and Media Retrieval

This step captures the current time and fetches the RSS item’s image file for later upload. The execution flow is Initiate SessionRetrieve Current TimeFetch Image File.

  1. Add the Retrieve Current Time node and connect it after Initiate Session.
  2. Keep the default Options in Retrieve Current Time (no changes required).
  3. Add the Fetch Image File node and connect it after Retrieve Current Time.
  4. Set URL to {{ $('RSS Feed Listener').item.json.enclosure.url }}.
  5. In Fetch Image File options, set Response Format to file.

Tip: If your RSS feed doesn’t include enclosure.url, the image fetch will fail. Verify the feed format or adjust the expression.

Step 4: Configure Bluesky Upload and Post Creation

The image is uploaded as a blob and then embedded in the final Bluesky post. The execution flow is Fetch Image FileUpload Media AssetGenerate Post Entry.

  1. Add Upload Media Asset and connect it after Fetch Image File.
  2. Set URL to https://bsky.social/xrpc/com.atproto.repo.uploadBlob and Method to POST.
  3. Set Content Type to binaryData and Input Data Field Name to data.
  4. In Header Parameters, set Authorization to =Bearer {{ $item("0").$node["Initiate Session"].json["accessJwt"] }}.
  5. Set Content-Type to {{ $json.enclosure.type }}.
  6. Add Generate Post Entry and connect it after Upload Media Asset.
  7. Set URL to https://bsky.social/xrpc/com.atproto.repo.createRecord and Method to POST.
  8. In Header Parameters, set Authorization to =Bearer {{ $item("0").$node["Initiate Session"].json["accessJwt"] }}.
  9. Set JSON Body to the existing expression block, including the embedded thumb and time fields: {{ $node['Initiate Session'].json['did'] }}, {{ JSON.stringify($node['RSS Feed Listener'].json['content:encodedSnippet']) }}, {{ $node['RSS Feed Listener'].json['link'] }}, {{ $node['RSS Feed Listener'].json['lintitlek'] }}, {{ $node['RSS Feed Listener'].json['contentSnippet'] }}, {{ $json.blob.$type }}, {{ $json['blob']['ref']['$link'] }}, {{ $json.blob.mimeType }}, {{ $json.blob.size }}, and {{ $node['Retrieve Current Time'].json['currentDate'] }}.

⚠️ Common Pitfall: The JSON body in Generate Post Entry references lintitlek. Confirm your RSS feed actually contains this field or correct the field name to match your feed data.

Step 5: Test and Activate Your Workflow

Validate the end-to-end flow before activating it for production use.

  1. Click Execute Workflow and confirm that RSS Feed Listener pulls a recent item.
  2. Verify Initiate Session returns a valid accessJwt and did.
  3. Check that Fetch Image File returns a binary file and Upload Media Asset returns a blob object.
  4. Confirm Generate Post Entry responds with a successful JSON response and the post appears on Bluesky.
  5. Toggle the workflow to Active to run automatically on the configured poll schedule.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Bluesky credentials can expire or fail if the app password was revoked. If posts stop publishing, check your Bluesky app passwords first, then update the Initiate Session node in 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.
  • RSS feeds are inconsistent about images, honestly. If your feed doesn’t provide one, define a static fallback image URL in the Fetch Image File (or Download image) step so the Upload Media Asset call doesn’t fail.

Frequently Asked Questions

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

About 20 minutes if you already have your RSS feed URL and Bluesky app password.

Do I need coding skills to automate RSS-to-Bluesky posting?

No. You will mainly paste values into a few fields and run a test execution.

Is n8n free to use for this RSS Bluesky 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 Bluesky usage (this workflow uses an app password, so there are no API usage fees in the workflow itself).

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 Bluesky automation workflow for title-only posts?

Yes, and it’s one of the easiest tweaks. In the Create post step (the node that builds the JSON for the post), change the JSON text value to use only the feed item title instead of the content snippet. People also customize this workflow by adding hashtags, adding a “Read more” phrase before the link, or forcing a consistent fallback image when the RSS item has none.

Why is my Bluesky connection failing in this workflow?

Usually it’s the app password. Generate a new Bluesky app password, then update the Initiate Session node credentials in n8n. Also double-check that you didn’t paste extra spaces, and confirm the device/app-password is still active in your Bluesky settings.

How many RSS items can this RSS Bluesky automation handle?

On n8n Cloud Starter, you’re limited by monthly executions, while self-hosting has no execution cap (it depends on your server). In practice, most small sites can post every new RSS item comfortably because each post is just a few HTTP requests. If your feed drops dozens of items at once, consider adding simple filtering so you don’t flood your Bluesky timeline.

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

Often, yes. n8n is more forgiving when you need branching logic (like “if there’s no image, use a fallback”), and self-hosting can be a big deal if you run a lot of automations. Zapier and Make can still work, but you may end up juggling webhooks, extra steps, or higher costs as volume grows. Frankly, the biggest win is ownership: you can see every request and adjust it when Bluesky changes something. If you’re unsure, Talk to an automation expert and get a quick recommendation based on your posting volume.

Once this is running, new content promotes itself while you’re doing actual work. Set it up, test a couple posts, and let the workflow handle the routine stuff.

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