Automate social posting with n8n (step-by-step)

By Andrei Last updated: July 5, 2026 6 min read
Automate social posting with n8n (step-by-step)

Want your social media to post itself? By connecting n8n to SchedPilot, any workflow — a new blog post, an RSS item, a Google Sheets row, or a form submission — can automatically draft and schedule posts across all your social accounts. This step-by-step guide shows you how to build it with n8n’s HTTP Request node, add an optional AI caption step, and keep a human approval step before anything goes live.

No custom node to install and no code to write: SchedPilot exposes a simple REST API, and n8n can call it directly. Let’s build the automation.

Try SchedPilot for free

Free trial · No upfront payment · 10+ platforms
Post on 10 platforms at once. Great for influencers, marketers, agencies.

Get started for free

What you’ll build

A single n8n workflow that:

  • Triggers on an event (new RSS item, blog post, sheet row, webhook, or a schedule).
  • Generates a caption with an AI node (optional).
  • Waits for your approval in Slack or email (optional but recommended).
  • Schedules the post to every connected social account via SchedPilot.

Prerequisites

You’ll need Notes
A SchedPilot account with API access API keys are available on the Platinum plan.
At least one connected social account Connect X, Instagram, LinkedIn, TikTok, and more in the SchedPilot dashboard.
An n8n instance n8n Cloud or a self-hosted instance — either works.
Your SchedPilot API key Starts with smm_. We’ll grab it in Step 1.

Step 1 — Get your SchedPilot API key

1Log in to app.schedpilot.com and open API Access.
2Create a new API key and copy it. It looks like smm_xxxxxxxxxxxxxxxx.
Treat your API key like a password. Store it in n8n’s credential manager (Step 3) — never paste it into a public workflow or share it.

Step 2 — (Optional) List your connected accounts

By default, SchedPilot schedules your post to every connected account. If you want to confirm what’s connected — or later target specific accounts — call the accounts endpoint first:

curl "https://api.schedpilot.com/developers/v1/accounts" \
  -H "Authorization: Bearer smm_your_key"

This returns each connected account with its platform and ID. To scope a post to specific accounts, pass their IDs in your request — see the create-post reference for the exact field.

Step 3 — Create the workflow & add a trigger

1In n8n, click New workflow.
2Add a trigger node for your use case:

  • RSS Feed Trigger — post every new item from a blog or podcast feed.
  • Schedule Trigger — post daily/weekly at a fixed time.
  • Webhook — fire from your app, a CMS, or a form.
  • Google Sheets Trigger — post the next row from a content calendar.

Step 4 — (Optional) Generate a caption with AI

Add an OpenAI (or Google Gemini) node between your trigger and SchedPilot to turn raw input into a platform-ready caption. A simple prompt:

Write a short, engaging social media caption for this content.
Keep it under 280 characters and add 2 relevant hashtags.

Content: {{ $json.title }} — {{ $json.contentSnippet }}

The generated text becomes the content of your post in the next step.

Step 5 — Add the HTTP Request node (this posts to SchedPilot)

This is the core of the automation. Add an HTTP Request node and configure it:

Field Value
Method POST
URL https://api.schedpilot.com/developers/v1/post
Authentication Generic → Header Auth
Header name Authorization
Header value Bearer smm_your_key
Send Body On, as JSON

Set the JSON body. Use n8n expressions ({{ }}) to pull in data from previous nodes:

{
  "content": "{{ $json.caption }}",
  "date": "2026-07-15",
  "time": "09:00",
  "timezone": "America/New_York"
}
Field reference: content is your post text. date (YYYY-MM-DD) and time (HH:mm) set the schedule; add an optional timezone. To publish immediately instead, send "post_instant": true. You can also attach media (attachments) and add an X reply thread (replies).

To post at a dynamic time (e.g. “tomorrow at 9am”), compute the date in a Set or Code node and reference it: "date": "{{ $json.date }}".

What SchedPilot returns

A successful call returns 202 Accepted with the scheduled post details:

{
  "post_id": 8791,
  "status": "scheduled",
  "scheduled_date": "2026-07-15 09:00:00",
  "timezone": "America/New_York",
  "accounts": 4,
  "media": 0,
  "replies": 0
}

Step 6 — (Recommended) Add a human approval step

Letting automation publish unchecked is risky. Add n8n’s Send and Wait for approval action (or a Slack/email node) before the HTTP Request node, so a person signs off first.

Belt and suspenders: Even after approval in n8n, every post lands in your SchedPilot calendar before it goes live — so you get a second chance to edit or cancel. That human-in-the-loop safety net is exactly why teams pair n8n with SchedPilot instead of blind auto-posting.

Step 7 — Test, then activate

1Click Test workflow and check the HTTP Request node returns 202.
2Open your SchedPilot calendar to confirm the post appears as scheduled.
3Toggle the workflow to Active. Done — your social posting now runs on autopilot.

Real workflows you can build today

  • Blog → social: RSS Trigger → AI caption → SchedPilot. Every new article auto-posts to X, LinkedIn & Threads.
  • Content calendar: Google Sheets Trigger → SchedPilot. Schedule a month of posts from a spreadsheet.
  • Product launches: Webhook from your app → SchedPilot. A new release announces itself.
  • Evergreen recycling: Schedule Trigger → pick a random past post → SchedPilot. Keep channels active automatically.
  • Form to post: Typeform/Tally → AI caption → approval → SchedPilot.

Bonus: close the loop with webhooks

Want n8n to know when a post actually goes live (or fails)? Add a Webhook node in a second workflow and register its URL in SchedPilot under API Access → Webhooks. SchedPilot will POST a post.published or post.failed event so you can log results, alert Slack, or retry.

Frequently asked questions

Do I need a special SchedPilot node for n8n?

No. SchedPilot works with n8n’s built-in HTTP Request node calling the REST API, so there’s nothing extra to install.

Do I need to know how to code?

No. Everything is configured with n8n’s visual nodes. The only “code” is a small JSON body you copy from this guide.

Which SchedPilot plan includes API access?

API keys are available on the Platinum plan. See pricing for details.

Which platforms can I post to?

SchedPilot supports 9 networks: Instagram, X (Twitter), LinkedIn, TikTok, Threads, Facebook, YouTube, Pinterest, and Bluesky.

Can I review posts before they publish?

Yes. Add an approval step in n8n, and every scheduled post also waits in your SchedPilot calendar so you stay in control.

Automate your social media the smart way

Connect n8n to SchedPilot and let your workflows post across every network — with you in control.

Start your 7-day trial for $0

Related posts

Grow your social presence with the best tool for creating content

Schedule posts, find your best time to publish, and keep your calendar full — without the chaos. SchedPilot makes consistency simple across every channel.

Start for free

Free trial available. Cancel anytime.