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.
- In Schedulin, go to Settings → API keys and create a key (
sk_live_...). - 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:
| Field | Default |
|---|---|
| Host | https://api.schedulin.app |
| Media CDN URL | https://cdn.schedulin.app |
Use the credential's Test button to confirm the key works — it calls GET /v0/platforms.
Operations
| Resource | Operations |
|---|---|
| Post | Create, Get, Get Many, Update, Delete, Publish Draft, Get Analytics |
| Social Account | Get Many, Get Next Queue Slots |
| Tag | Get Many, Create |
| Media | Upload, Get, Get Many, Delete |
| Platform | Get 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:
| Action | Result |
|---|---|
| Draft | Saved, not published (the default) |
| Queue | Dropped into the channel's next free queue slot |
| Schedule | Published at Scheduled At |
| Now | Published 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
- API reference
- CLI — the same endpoints from a terminal
- Upload media