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

> Source: <https://schedpilot.com/automate-social-posting-with-n8n-step-by-step/>
> Published: 2026-07-05 17:26:05+00:00

# 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](https://schedpilot.com/pricing)

## 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
|

`smm_`

. We’ll grab it in Step 1.## Step 1 — Get your SchedPilot API key

[app.schedpilot.com](https://app.schedpilot.com)and open

**API Access**.

`smm_xxxxxxxxxxxxxxxx`

.## 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](https://docs.schedpilot.com/) for the exact field.

## Step 3 — Create the workflow & add a trigger

**New workflow**.

**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

**Test workflow** and check the HTTP Request node returns

`202`

.**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](https://schedpilot.com/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.
