logo
Schedulin Developers

n8n

n8n is a workflow automation tool. n8n-nodes-schedulin is the official community node for Schedulin — it wraps the same /v0 REST endpoints as the SDKs and CLI, so you get a real Schedulin node in the n8n panel instead of hand-rolled HTTP Request nodes.

There are two ways to use Schedulin from n8n. The community node is the direct one: it calls the REST API, so it is deterministic and every field is explicit. The alternative is the MCP server via n8n's MCP Client node, which lets an LLM decide which tools to call — better for open-ended agent workflows, less predictable for a fixed pipeline.

Install

In n8n, go to Settings → Community Nodes → Install and enter:

n8n-nodes-schedulin

Self-hosted n8n instances need N8N_COMMUNITY_PACKAGES_ENABLED=true (the default). On n8n Cloud, community nodes are available on paid plans.

Authentication

The node uses a workspace API key (see Authentication), sent as the x-api-key header.

  1. In Schedulin, go to Settings → API keys and create a key (sk_live_...).
  2. In n8n, create a Schedulin API credential and paste the key.

The credential has two more fields you only need to change when self-hosting Schedulin:

FieldDefault
Hosthttps://api.schedulin.app
Media CDN URLhttps://cdn.schedulin.app

Use the credential's Test button to confirm the key works — it calls GET /v0/platforms.

Operations

ResourceOperations
PostCreate, Get, Get Many, Update, Delete, Publish Draft, Get Analytics
Social AccountGet Many, Get Next Queue Slots
TagGet Many, Create
MediaUpload, Get, Get Many, Delete
PlatformGet Many

Social accounts and tags load into searchable dropdowns, so you pick a channel by name rather than pasting an ID.

Creating a post

Post → Create maps directly onto POST /v0/posts. The Action field controls what happens to the post:

ActionResult
DraftSaved, not published (the default)
QueueDropped into the channel's next free queue slot
SchedulePublished at Scheduled At
NowPublished immediately

Action defaults to Draft, so a workflow you are still building never publishes by accident.

Attaching media

Media is attached by URL. If the file is already reachable on the public internet, put its URL straight into the Media field.

To host a file with Schedulin instead, put a Media → Upload node in front of the Create node. It takes a binary property from the incoming item, runs the presign → upload flow from Upload media, and returns the hosted url ready to reference:

HTTP Request (download image)  →  Schedulin: Media → Upload  →  Schedulin: Post → Create
                                          returns { url }        media: {{ $json.url }}

Platform-specific settings

Some platforms need extra fields — a Pinterest board, an Instagram placement. Those go in Additional Fields → Platform Configuration (JSON):

{ "board_ids": ["1234567890"] }

Use Platform → Get Many to see each platform's caption limits, media rules, and which extra fields it requires.

Fields the node doesn't model

The node deliberately leaves an escape hatch rather than blocking on API surface it hasn't modeled explicitly. Additional Fields → Additional Body Fields (JSON) is merged into the request body, so anything the API accepts is reachable — for example an X thread:

{ "parts": [{ "caption": "1/2 first tweet" }, { "caption": "2/2 second tweet" }] }

Errors and rate limits

Failed requests surface as n8n node errors carrying the API's message. Enable n8n's Continue On Fail to route failures down the error branch instead of halting the workflow — the item's json.error holds the message.

The public API allows 300 requests/minute per credential. See Rate limits and Error handling.

See also