← All posts
Tutorials

n8n Social Media Automation: Post to 8 Platforms From One Workflow

A node-by-node n8n workflow that posts to multiple social platforms from a single automation, using the HTTP Request node and n8n's MCP client node.

Zakir Hossen profile imageZakir Hossen··6 min read

n8n Social Media Automation: Post to 8 Platforms From One Workflow

n8n has no native "post to social media" node for most platforms, and that's fine — a single HTTP Request node against a unified social media API covers X, LinkedIn, Facebook, Instagram, YouTube, TikTok, Pinterest, and LinkedIn Pages without eight separate platform integrations. This walkthrough builds that workflow node by node.

For background on why one API call can reach eight platforms instead of eight separate integrations, read What Is a Unified Social Media API?. If you're comparing this to a code-based agent approach, see Building an AI Social Media Agent with LangGraph.

#What You're Building

A workflow with four nodes:

  1. A trigger (manual, webhook, or schedule) that starts the run.
  2. A Set node that defines the post content once.
  3. An HTTP Request node that calls the posting API.
  4. An IF node that branches on success or failure for notification.

#Step 1: Add a Trigger

Open a new n8n workflow. Add a Manual Trigger node for testing, or a Schedule Trigger node if this runs on a recurring basis (for example, publishing a queued post every morning at 9am). For content coming from another system, use a Webhook node instead so an external event kicks off the post.

#Step 2: Add a Set Node for Post Content

Add a Set (or Edit Fields) node after the trigger. Define the fields your HTTP request will need:

Field Value
postText The post copy, e.g. "New feature: IndexNow support is live."
platforms ["x", "linkedin", "facebook", "instagram"]
profileId Your Schedule & Chill profile ID

Keeping these in one node means changing the post text or target platforms later only requires editing this one place, not every downstream node.

#Step 3: Add the HTTP Request Node

Add an HTTP Request node connected after the Set node. Configure it:

  • Method: POST
  • URL: https://api.schedulenchill.com/v1/posts
  • Authentication: Generic Credential Type → Header Auth
    • Header name: Authorization
    • Header value: Bearer YOUR_API_KEY
  • Body Content Type: JSON
  • Body:
 1{
 2  "profile_ids": ["{{ $json.profileId }}"],
 3  "text": "{{ $json.postText }}",
 4  "platforms": {{ $json.platforms }},
 5  "when": "now"
 6}

Use n8n's expression editor (the {{ }} syntax) to pull values from the Set node instead of hardcoding them, so the same HTTP Request node works for every future run.

Store the API key in an n8n credential, not inline in the node — that keeps it out of exported workflow JSON.

#Step 4: Handle the Response

The API returns a JSON body with an id and per-platform status. Add an IF node after the HTTP Request node that checks {{ $json.status }} equals "success".

  • True branch: connect to a Slack or email node confirming the post went out.
  • False branch: connect to a notification node with the error detail from the response body, so a failed post doesn't silently disappear.

#Posting to 8 Platforms in One Call

The platforms array in the request body is what fans a single API call out to multiple destinations. Instead of building eight HTTP Request nodes — one per platform, each with its own auth quirks and payload shape — one node handles all of them because the social media API normalizes the differences server-side. Add or remove platform strings in the Set node's platforms field to change which accounts a given workflow run posts to.

Be aware each platform has its own limits — X's character count, Instagram's image requirement, LinkedIn's link preview behavior. See Social Media API Rate Limits: A Platform-by-Platform Reference if you're running this workflow at volume and need to know where you'll hit a wall.

#Attaching Media

If the post needs an image or video, add an HTTP Request node before the posting node that uploads the file:

  • Method: POST
  • URL: https://api.schedulenchill.com/v1/media
  • Body Content Type: Form-Data (Multipart)
  • Body Parameters: a binary field named file, pointing at the binary data from a previous node (for example, a Read Binary File or HTTP Request node that downloaded the image)

The response includes a media id. Add "media_ids": ["{{ $json.id }}"] to the JSON body in the posting node's HTTP Request. Keep files under 400MB, the free plan's upload cap.

#Using n8n's MCP Client Node Instead

n8n added an MCP Client node that can connect directly to an MCP server and call its tools without you building the HTTP Request payload by hand. If you point it at Schedule & Chill's MCP server, the node exposes tools like create_post and schedule_post directly, with the parameter schema handled by the server rather than typed into a JSON body.

This trades a little flexibility (you're limited to the tool's defined parameters) for less setup — worth it if you're not customizing the request beyond what the tool already supports. Read MCP vs REST for AI agents for the tradeoffs, which apply the same way inside n8n as they do in custom agent code.

#Testing the Workflow

Run the workflow manually first with a test post to a single platform. Check the HTTP Request node's output panel for the raw response — a platform_unavailable or 401 error there tells you immediately whether it's an auth problem or a platform-not-connected problem, before you wire up the schedule trigger and let it run unattended.

#Frequently Asked Questions

Does n8n have a built-in social media node? n8n ships nodes for a handful of platforms individually, but not a unified one covering all major networks. The HTTP Request node against a unified API, as built here, covers more platforms with less workflow complexity than maintaining eight separate native nodes.

Can this workflow schedule posts for later instead of posting immediately? Yes — change "when": "now" to an ISO-8601 timestamp, or "draft" to save it without publishing. See How to Build a Social Media Scheduler with a REST API for the scheduling mechanics behind this.

Is n8n free to run this workflow? n8n's self-hosted option is free; n8n Cloud has its own pricing separate from the social posting API. Schedule & Chill itself is currently free with no credit card required, up to 2 connected accounts and 500 posts a month.

How is this different from Make.com's version of this workflow? The underlying API call is identical. The node names and UI differ — n8n uses an HTTP Request node, Make.com uses an HTTP module. See Make.com + Social Media API: The No-Code Posting Workflow for the Make.com-specific steps.

Try it in a minute.Free, no card. One URL into your AI tool.
Start free