ChirpieDocs

n8n

Post to X, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook, and Telegram from an n8n workflow with the @chirpie/n8n-nodes-chirpie community node, covering posting, threads, scheduling, accounts, analytics, and AI Agent tool use.

@chirpie/n8n-nodes-chirpie is a community node that puts Chirpie in your n8n workflows. One node covers posting, threads, scheduling, listing accounts, and analytics, and it is available to n8n AI Agents as a tool, so an agent can look up your connected accounts and publish on its own.

Install

  1. Open Settings → Community Nodes.
  2. Select Install.
  3. Enter @chirpie/n8n-nodes-chirpie.
  4. Agree to the risks of using community nodes and select Install.

The Chirpie node then appears in the nodes panel.

cd ~/.n8n/nodes
npm install @chirpie/n8n-nodes-chirpie

Restart n8n afterwards.

n8n Cloud only allows community nodes that n8n has verified. One-click install on Cloud is coming. Until then, use a self-hosted n8n instance.

Add your credential

  1. Create an API key in the dashboard.
  2. In n8n, add a Chirpie API credential and paste the key.
  3. Leave Base URL as https://chirpie.ai.
  4. Select Test. The credential calls GET /api/v1/accounts and confirms the key works.

Connect your social accounts once in the dashboard. The node publishes through whatever is connected there, with no per-platform setup inside n8n.

Operations

ResourceOperationDescription
PostCreatePublish now, or schedule with Schedule At
PostGetFetch a single post by ID
PostGet ManyList posts, filtered by status or account. Turn on Include Hidden for the ones you hid
PostUpdateEdit a post that has not published yet, or finish a draft. Leaving Schedule At out keeps the time it already has
PostPublishSend a saved draft now, checking it in full and charging it as a post
PostRetry First CommentPost a first comment that failed, again. It re-sends the text the post already carries
PostDeleteTake the post down from the platform. Chirpie keeps it, marked deleted. A published TikTok post, a Facebook Page story, or a post on an Instagram account connected through Instagram rather than via Facebook, cannot be deleted and refuses with delete_unsupported
PostHideHide a post from your Chirpie listings. Nothing reaches the platform
PostUnhidePut a hidden post back in your listings
ThreadCreatePublish a 2–25 post thread, now or scheduled. A thread is atomic: if any part fails, the parts already published are deleted and the quota is refunded
AccountGet ManyList your connected social accounts
AccountActivateSwitch a connected account on so it can publish
AccountDeactivateSwitch a connected account off, keeping it connected
AnalyticGetEngagement metrics for a published post

Analytic → Get has one option, Refresh: ask the platform for the current numbers instead of reading the stored snapshot. Allowed once per post every 5 minutes; past that it answers 429 and the stored numbers are still one ordinary call away. See Analytics.

Every operation returns the post, thread, account, or metrics object directly: id, status, platform_post_id and the rest are available on the output item without any extra unwrapping.

Create a post

Account ID is the id of a connected account. Run Account → Get Many once to find it, or copy it from the dashboard.

Optional settings live under Options:

  • Media URLs: a comma-separated list of public image or video URLs. Chirpie downloads them and uploads them to the platform for you.
  • Media IDs: ids from the Media -> Upload operation, comma separated. Upload runs on the node's binary input, so a file that arrived from an earlier step can be attached without ever having a public URL.
  • Schedule At: publish at a future time instead of immediately. See Scheduling.
  • Draft: save the post without sending it. Nothing reaches the platform, nothing counts against your monthly quota, and the output lists anything that would stop it publishing as it stands.
  • First Comment: a comment to publish under the post as soon as it goes out, the link-in-the-first-comment pattern. X, Threads, Instagram and Facebook only, and it counts as one post against your monthly quota. See First comment.
  • Timezone: the IANA timezone a Schedule At with no offset is read in, such as America/New_York. Ignored when the time already carries an offset. Leave it empty to use the timezone saved on the Chirpie account. See Timezones.
  • Idempotency Key: makes a retry of this item safe. The same key with the same request replays the first answer for 24 hours instead of publishing again. Set it from something stable across a retry, such as the execution id plus the item index. See Idempotency.

Create a thread

Posts is a list; add one entry per post in the thread, each with its own text and optional media (an ID from Media -> Upload, or a public URL). On X, Bluesky, Threads, Mastodon, and Telegram each post replies to the one before it. On platforms without native threading, each is published as a standalone post.

Options → Draft saves the thread instead of sending it, on the same terms as a post.

Options → First Comment publishes one comment under the thread's last part as soon as it goes out, on the same terms as a post.

Options → Timezone and Options → Idempotency Key work exactly as they do on a post. Media → Upload carries Idempotency Key too, so a retried upload does not leave a second copy behind.

First comments

Post → Update → Update Fields → First Comment replaces the first comment on a post that has not published yet, and an empty value removes it. A first comment never fails its post, so a published post can be carrying one that did not go out: Post → Retry First Comment with Post ID sends it again.

Drafts

A draft is saved and nothing else, so a workflow can write copy now and send it later, or leave it for a person to approve.

  1. Post → Create (or Thread → Create) with Options → Draft switched on.
  2. Post → Get Many with Status set to draft to find what is waiting.
  3. Then either Post → Publish with Post ID, which sends it now and takes the quota, or Post → Update with Schedule At, which queues it. To change only the time a draft remembers, switch Update Fields → Draft on as well.

Everything a create checks is checked at that point, so a draft that would be refused stays a draft, untouched. See Drafts.

Use it with an AI Agent

The Chirpie node is usable as a tool. Connect it to an AI Agent node's tool input and the agent can call it on its own.

A good setup is two Chirpie tool nodes:

  • Account → Get Many, so the agent can resolve "my LinkedIn" to an account ID.
  • Post → Create, with Account ID and Text set to $fromAI(...) expressions so the agent fills them in.

Give the agent a system message telling it to list accounts before posting, and to respect the platform's character limit. Then "post 'shipping today' to X" is enough.

A ready-made workflow ships with the package as examples/ai-agent-social-posting.json. Import it with Workflows → Import from File and set your credentials.

Example workflow: schedule a daily post

  1. Schedule Trigger: every day at 09:00.
  2. Chirpie: Resource Post, Operation Create.
    • Account ID: the account you want to publish through.
    • Text: ={{ $json.text }} from whatever built the copy upstream.
    • Options → Schedule At: ={{ $now.plus({ hours: 3 }) }} to queue it three hours out instead of publishing immediately.
  3. Chirpie: Resource Analytic, Operation Get, with Post ID set to ={{ $json.id }} from step 2, run later to pull engagement.

Schedule At accepts any n8n datetime: a picker value, an expression, or a $now calculation. A value carrying an offset (which is what the date picker and $now both produce) is converted to UTC before sending, so workflow timezones are handled for you. A value with no offset is sent exactly as written and resolved by Chirpie, in Options → Timezone or in the timezone saved on your account. That is the form to use for a time that has to survive a daylight-saving change, because an offset worked out today is wrong on the other side of one.

Errors

The node surfaces Chirpie's API errors directly. The common ones:

StatusMeaning
401The API key is invalid or was revoked
404The account ID doesn't exist, or the account is disconnected
403The API key does not hold the scope the operation needs
409 / 422An Idempotency Key already in progress, or reused for a different request
429Monthly post limit reached, or past your plan's burst limit (120 requests a minute on Free, up to 1,200 on Pro and above)

See Errors for the full list, and Rate limits for quotas.

FAQ

Can I use the Chirpie node on n8n Cloud?

Not yet. n8n Cloud only runs community nodes that n8n has verified, and one-click Cloud install is coming. On a self-hosted n8n instance you can install it today from Settings → Community Nodes.

Which platforms can the node post to?

Every account you have connected. X/Twitter, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook and Telegram connect today, and more are coming soon, which the node picks up automatically. It has no platform picker: you choose an Account ID, and the platform follows from whichever account that is.

Do I need separate credentials for each social network?

No. One Chirpie API credential covers every platform. You connect the social accounts once in the Chirpie dashboard, and the node publishes through them.

How do I find an Account ID?

Add a Chirpie node with Account → Get Many and run it once. Each item's id is an account ID. You can also copy it from the dashboard.

Can an AI Agent use this node?

Yes. The node is exposed as a tool, so it can be attached to an AI Agent node's tool input. Use $fromAI(...) expressions on Account ID and Text to let the agent fill them in.

Can I post to several platforms at once?

In the node, run one Chirpie node per account, for example a Loop Over Items node over a list of account IDs, or parallel Chirpie nodes. Each node call publishes to a single account. The Chirpie API itself takes many accounts in one request, with per-account text and media: see Post to several accounts at once if you are calling it from an HTTP Request node, the SDK, the CLI, or MCP.

Does the node upload image files?

It takes public Media URLs, not binary data. Chirpie downloads each URL and uploads it to the platform. If your workflow produces a binary, put it somewhere publicly reachable first and pass that URL.

Can the node save a draft for approval?

Yes. Switch Options → Draft on in Post → Create or Thread → Create and nothing is sent: the post is saved, and nothing counts against your monthly quota. Send it later with Post → Publish, or queue it with Post → Update and a Schedule At.

Is it free?

The node is MIT licensed and free. Posting counts against your Chirpie plan's monthly quota. See Rate limits.

Where is the source code?

On GitHub at Firefloco/chirpie-n8n. Every npm release is published from that repository by GitHub Actions with an npm provenance statement, so the "Provenance" panel on the npm page links each version back to the exact commit and workflow run that built it.

On this page