How to Automate Social Media Posts with Postiz and n8n
Automate social media posting to 19+ platforms using Postiz and n8n. Step-by-step setup, workflows, and troubleshooting for open-source content automation.
- Connect n8n to Postiz to schedule posts across 19+ social platforms from RSS, Google Sheets, Notion, or any data source.
- Install the official Postiz custom node in n8n (68 GitHub stars, MIT license) and authenticate with your Postiz API key.
- Build a basic workflow in 30 minutes: RSS feed triggers hourly, pulls the latest article, formats it, and posts to X, LinkedIn, and Bluesky.
Connect Postiz to n8n to automate social media posting across 19+ channels from a single workflow. You can schedule posts from RSS feeds, Google Sheets, Notion, or any data source n8n supports. Postiz handles the distribution; n8n handles the logic.
Why Integrate n8n with Postiz?
Postiz alone schedules posts to multiple social platforms. n8n alone orchestrates workflows. Together they become a content pipeline that transforms raw data into scheduled social posts.
You get multi-platform distribution without clicking social dashboards. One RSS feed, one Google Sheet, or one Notion database feeds your entire social presence. n8n can also add logic: filter posts by topic, enrich with AI-generated descriptions, or route different content to different platforms.
Postiz is open source (AGPL-3.0, 41.5k GitHub stars as of Oct 2026). n8n is open source too. Neither charges you per post or per schedule. You self-host both or use their managed services. If you already run n8n for other workflows, adding Postiz integration means no new platform, no new vendor, just one more node in your existing automation layer.
The alternative is manual posting, buffer, Hootsuite, or other SaaS tools. Those charge per user or per post. This workflow costs infrastructure time, not monthly fees.
Prerequisites and What You Need
Before you connect the two, gather these pieces:
A Postiz instance running. You can run it in Docker on your own server, use Postiz's cloud at postiz.com, or use a managed host like Opsily. You need the base URL where your Postiz instance is accessible (e.g., your domain or IP address where Postiz is running).
An n8n instance running. Cloud at n8n.io, self-hosted Docker, or a managed host. You need n8n's URL and access to create new nodes and workflows.
Social media accounts connected to Postiz. Postiz stores OAuth tokens for X, LinkedIn, Instagram, TikTok, Bluesky, Mastodon, and 12+ other platforms. Connect the ones you want to post to before building the n8n workflow.
Postiz API credentials. Your Postiz instance generates an API key. You can find this in Postiz's settings. Copy it; you'll paste it into n8n.
Basic n8n knowledge. You should know how to create a workflow, add nodes, and wire up inputs and outputs. If n8n is new, their docs cover workflow basics in ~20 minutes.
Estimate 30-45 minutes total setup time (credentials, testing, first workflow).
Two Ways to Connect: Custom Node vs HTTP Request
Postiz maintainers built an official n8n node. You can use it, or you can use n8n's generic HTTP Request node to call Postiz's API directly. Each has trade-offs.
Option 1: Postiz Custom Node (Recommended for Beginners)
The custom node lives on GitHub at gitroomhq/postiz-n8n (68 stars, MIT license). It abstracts the HTTP details into a user-friendly interface.
In n8n's node library, search "Postiz" and install it. You paste your API key, select the action (create post), add your content, and wire it into your workflow.
Pros: Simple UI, no HTTP knowledge required, fewer typos, official support. Cons: Depends on GitRoom's maintenance, slower to update if Postiz API changes, less flexibility for edge cases.
Use this if you're new to n8n or want a quick setup.
Option 2: HTTP Request Node (For Advanced Users)
n8n's built-in HTTP Request node lets you craft raw API calls to Postiz. You manually write the request body, headers, and error handling.
Pros: Full control, works immediately if the custom node lags behind API changes, portable knowledge (applies to any API). Cons: More complex, need to read Postiz API docs, higher chance of mistakes.
Use this if you know HTTP APIs or want to build complex logic (conditional posting, batching, etc.).
For this guide, we'll use Option 1 (the custom node) because most teams prefer the faster path.
Step-by-Step: Installing and Setting Up the Postiz Custom Node
Step 1: Add the Custom Node to n8n
In n8n's web UI, open the Nodes panel (left sidebar). Click "Nodes" then "Add Node". Search for "Postiz". Click the Postiz integration and click "Install".
n8n downloads and installs gitroomhq/postiz-n8n. This takes 1-2 minutes.
Step 2: Create a Postiz Credential
Create a new workflow. Drag the Postiz node into the canvas. A red exclamation mark appears because you haven't authenticated yet.
Click the node. In the panel that opens, find "Credentials". Click "Create New Credential". A modal appears asking for:
- Host: The full URL of your Postiz instance (the base address where Postiz is running). If Postiz is on Opsily's managed servers, use the URL Opsily gives you.
- API Key: Your Postiz API key from Postiz settings.
Paste both, click "Create". n8n tests the connection. If the credential turns green, you're authenticated.
Step 3: Configure the Postiz Node
With credentials set, the node is now active. You can now configure what it does.
Click the Postiz node. In the panel, you see options:
- Resource: Choose "Post" (the main resource for scheduling posts)
- Operation: Choose "Create" (to schedule a new post)
New fields appear:
- Content: The text of your post. This can be static text or dynamic (wired from a previous node, e.g., from Google Sheets data).
- Platforms: Select which social platforms to post to (X, LinkedIn, Instagram, etc.). Postiz will schedule to each one.
- Schedule Delay: Hours or minutes from now. Leave blank to post immediately.
Save the workflow with Ctrl+S or Cmd+S.
Step 4: Test the Connection
If your workflow only has the Postiz node and no trigger, click "Execute Workflow" (the play button). n8n runs the workflow.
Watch the execution logs. If you see a green checkmark and output data, the node fired successfully. If red, check your credential, API key, and Postiz URL. Common errors:
- "401 Unauthorized": API key is wrong or expired. Regenerate it in Postiz.
- "404 Not Found": URL is wrong. Double-check the Postiz host.
- "Connection refused": Postiz is down or unreachable. Is it running? Can you curl the URL from n8n's server?
Once the test passes, move to building a real workflow.
Building Your First Workflow: RSS Feed to Multi-Platform Posts
Here's a real, copyable workflow: Pull articles from an RSS feed (e.g., TechCrunch) every hour, post the headline and link to X, LinkedIn, and Bluesky.
Workflow Overview:
- Trigger: Cron job (every 60 minutes)
- RSS Read: Fetch latest article from TechCrunch feed
- Format: Extract title and link, build post text
- Postiz: Schedule to three platforms
- End
Building It:
-
Click "Add Trigger" in n8n. Choose "Cron". Set it to repeat every 60 minutes.
-
After the Cron node, click "+" to add a node. Search "RSS" and choose "RSS Read". In the node, paste the feed URL for your chosen RSS source (e.g., TechCrunch's startup news feed). Set "Limit" to 1 (fetch only the newest article). Connect the Cron node to RSS Read.
-
Add another node: "Function" (n8n's code node). Paste this JavaScript to format the post:
const article = items[0].json; return [{ json: { text: `${article.title}\n\n${article.link}`, platforms: ['twitter', 'linkedin', 'bluesky'] } }];Connect RSS Read to Function.
-
Add the Postiz node after Function. Wire Function's output to Postiz. In the Postiz node:
- Content: Click the lightning icon, select "text" from Function output
- Platforms: Select Twitter, LinkedIn, Bluesky
- Schedule Delay: 0 (post immediately)
-
Save and execute. If the test passes, your workflow is live. At the top-of-hour every day, your feed's latest article will post to all three platforms.
This saves hours per week of manual posting.
Advanced Patterns: Content from Google Sheets and AI Enrichment
Once the basics work, you can layer in more sources and logic.
Pattern 1: Spreadsheet-Driven Content Calendar
Your marketing team maintains a Google Sheet with columns: Date, Content, Platforms, Status.
n8n can read the sheet nightly, find rows scheduled for tomorrow, and queue them in Postiz.
Instead of RSS Read, add a "Google Sheets" node. Authenticate with a service account. Query the sheet for rows where Date = tomorrow. Wire into the Postiz node. Postiz schedules everything for the right date.
Pattern 2: AI-Generated Post Variants
You have a product update (one sentence). You want three different posts: one for engineers, one for marketers, one for founders.
Add an OpenAI node between your source (RSS, Sheets, Notion) and Postiz. Have OpenAI generate three variants of the post. Then loop through them, sending each to different platforms:
- Engineers: Dev Twitter, Hacker News comments
- Marketers: LinkedIn, Instagram
- Founders: Y Combinator forum post (via webhook if you have one)
n8n's "Loop" and "Switch" nodes let you route posts conditionally.
Pattern 3: Rate Limiting and Batching
If you post to 19+ channels at once and some platforms throttle, posts fail. n8n's "Wait" node can stagger requests.
After Postiz schedules a batch, add a "Wait" node set to 2 seconds. This delays the next batch by 2 seconds, preventing API rate limits.
These patterns take 30-60 minutes each to build but save you hours per month.
Error Handling and Troubleshooting
Automation fails. When it does, you want to know and fix it fast.
Common Errors:
-
"Missing API Key" - The Postiz credential was deleted or the key was regenerated. Recreate the credential in n8n and re-authenticate the Postiz node.
-
"Rate Limit: Too Many Requests" - You posted to too many channels at once. Add a Wait node (2-5 seconds) between batches. Or spread posts over time instead of all at once.
-
"Platform Not Connected" - You selected Instagram but didn't connect Instagram to Postiz yet. Log into Postiz, go to Settings > Social Accounts, and authorize Instagram via OAuth.
-
"Invalid Scheduling Time" - You set a schedule time in the past or too far in the future. Postiz typically accepts posts up to 12 months ahead. Set times within that window.
-
"503 Service Unavailable" - Postiz is down or restarting. n8n's retry logic will retry 3 times by default. Check Postiz's status page or restart the container if self-hosted.
Handling Failures Gracefully:
In n8n, click the Postiz node and find the "Catch" option. This lets you define what happens if posting fails:
- Send you a Slack message alerting you
- Log the failure to Google Sheets for manual review
- Re-queue the post for tomorrow
A mature workflow never silently drops posts. You see every failure and can respond.
Docker and Networking Issues:
If you self-host both Postiz and n8n in Docker, they need to communicate. Common pitfall: Postiz is running in its container but n8n cannot reach it using a container-local hostname.
Solution: Use Docker's internal DNS by using the container name as the hostname. Or use Cloudflare Tunnel to expose Postiz publicly, so n8n reaches it by public URL.
If you're not sure, test connectivity before building the workflow: SSH into the n8n container and curl the Postiz URL. If curl works, n8n will too.
Next Steps: Scaling Your Social Automation
Once you have one working workflow, scaling means adding more triggers (more RSS feeds, more Sheets), more logic (AI enrichment, image attachment), and more platforms.
But at some point, managing the infrastructure becomes tedious. You're patching Docker updates, debugging networking, monitoring uptime, and backing up databases.
Opsily manages hosted Postiz and n8n for you. That means you focus on workflows, not servers. Check out Opsily's managed Postiz offering to learn about deployment, sizing, and pricing options.
For now, you have a working automation. Test it, gather feedback, and expand from there.