How to post to LinkedIn from n8n

To post to LinkedIn from n8n, add one PostWire → Post → Publish node (community node n8n-nodes-postwire) with Networks set to LinkedIn, or send one HTTP Request to https://postwire.io/api/post: it publishes to your LinkedIn profile with a PostWire API key, so the workflow needs no LinkedIn developer app. The node can write the post for you (a hook in the first two lines, short paragraphs, three hashtags), attach an image, and put the link in your own first comment so it stays out of the post body. n8n's built-in LinkedIn node has one operation, Post → Create, and on self-hosted n8n its credential asks for a LinkedIn developer app of your own.

Typical trigger: a new blog post in an RSS feed, an approved row in a sheet, a release on GitHub. The same node sends that news to Bluesky, Mastodon or Facebook in the same step, each with its own text.

Updated . Written from PostWire's own code; vendor prices read on Oct 11, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.

Step by step

  1. Create a free PostWire account

    Open postwire.io/dashboard.html, type your email and press Create my free account. PostWire emails you a link to confirm the address; connecting accounts and publishing unlock once it is confirmed. No password and no card (free plan: 1 business, 20 posts a month, 5 AI drafts a day (about 20 a month), 2 networks per post, 3 scheduled posts at a time — every network connects free, no card).

  2. Connect LinkedIn

    In the dashboard open Accounts, press Connect on LinkedIn and then Continue to LinkedIn. You sign in on LinkedIn itself and approve posting on your behalf; PostWire never sees your password. Posts go out on your own profile, under your name.

  3. Copy your API key

    In the dashboard, open API & MCP and press Copy key on the API key card. It is sent as Authorization: Bearer pw_live_… (the X-API-Key header also works). Keep it server-side.

  4. Install the node (self-hosted n8n)

    In n8n: Settings → Community nodes → Install, enter n8n-nodes-postwire, and add a PostWire API credential with the key. The node is not verified by n8n yet, so it installs on self-hosted n8n; on n8n Cloud use the HTTP Request in step 7.

  5. Configure Post → Publish

    Networks: LinkedIn. Content: Smart Distribute: Write a Native Post per Network, with the Idea from the previous node (e.g. {{ $json.title }} — {{ $json.contentSnippet }}). Media: None for a text post, or URL / Binary File for one image. The LinkedIn draft is written in the first person, with the hook inside the first 210 characters (what the feed shows before "see more"), one idea per short block and three hashtags at the end. Under Options, Dry Run checks everything without publishing and Brand Voice sets the tone.

  6. Put the link in the first comment

    Add the URL to the Idea and the words "link in the comments": the LinkedIn draft comes back with a first_comment that carries the link, and the node publishes it as your own comment right under the post. To write both yourself, set Content to Drafts From a Previous Step and pass an object (the comment takes up to 1,250 characters):

    {
      "linkedin": {
        "text": "We cut our build time from 14 minutes to 3.\n\nHere is the one change that did most of it…",
        "first_comment": "Full write-up: https://example.com/blog/faster-builds"
      }
    }
  7. On n8n Cloud, or for several images or a PDF: one HTTP Request node

    POST to the REST API with header Authorization: Bearer pw_live_…. media takes up to 20 images, each with optional alt text, or one PDF, PowerPoint or Word document that LinkedIn shows as a swipeable carousel:

    POST https://postwire.io/api/post
    Authorization: Bearer pw_live_…
    Content-Type: application/json
    
    // Text, three images and the link in the first comment
    {
      "platforms": ["linkedin"],
      "per_platform": { "linkedin": { "text": "{{ $json.post }}", "first_comment": "Details: {{ $json.url }}" } },
      "media": [
        { "url": "https://…/chart-1.png", "type": "image", "alt": "Build time per week, falling from 14 to 3 minutes" },
        { "url": "https://…/chart-2.png", "type": "image" },
        { "url": "https://…/chart-3.png", "type": "image" }
      ],
      "idempotency_key": "{{ $json.id }}"
    }
    
    // A document carousel
    {
      "platforms": ["linkedin"],
      "text": "Our Q3 report in 9 slides.",
      "media": [{ "url": "https://…/q3-report.pdf", "type": "document", "title": "Q3 report" }]
    }
  8. Read the result, or schedule it

    The node returns the post's id and its link, https://www.linkedin.com/feed/update/…, and first_comment.ok tells you the comment went out. To publish later, use Post → Schedule with When: At a Specific Time or In the Next Free Queue Slot. To react when a post lands, start a second workflow with the PostWire Trigger node (Post Published, Post Failed).

A retry with the same Idempotency Key is refused for 24 hours, so a re-run never posts twice; with Smart Distribute the node sets one per execution. LinkedIn sign-ins last about 60 days: Connection → Check Health in a weekly workflow, or the trigger's Connection Needs Sign-In event, tells you before a scheduled post is due.

Three ways to post to LinkedIn from n8n

n8n's own documentation and each vendor's page, read on Oct 11, 2026.

RouteLinkedIn developer app of your ownWrites the postLink in the first commentFree to start
PostWireNo — a PostWire API keyYes — Smart DistributeYes — first_commentFree plan: 20 posts a month
n8n's LinkedIn nodeYes on self-hosted n8n (Client ID and Secret); n8n Cloud signs in for youNo — you pass TextNot listed — one operation, Post → CreatePart of n8n
Upload-Post nodeNo — an Upload-Post API keyNot listed on its pageNot listed on its pageFree plan: 2 profiles, 10 uploads a month

Checked on Oct 11, 2026 (2026-10-11) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.

Where PostWire is ahead

  • No LinkedIn developer app to create. n8n's credential guide for self-hosted n8n starts with a developer app tied to a LinkedIn Company Page, and two LinkedIn products to request on it.
  • The post is written in the node, for LinkedIn: hook in the first 210 characters, short blocks, three hashtags. n8n's LinkedIn node takes the text you give it.
  • The link goes in your first comment, and a comment LinkedIn refuses at first is retried by itself. n8n's LinkedIn node documents one operation: creating the post.
  • Up to 20 images with alt text, or a PDF carousel, in one request.
  • 20 posts a month on the free plan. Upload-Post's free plan has 10 uploads a month.
  • Nine more networks from the same node, each with its own version of the news: TikTok, Instagram, YouTube, Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Sources, all read on Oct 11, 2026:

What LinkedIn accepts, and what PostWire does with it

  • Text up to 3,000 characters, LinkedIn's limit for a post. A text-only post is fine: set Media to None.
  • 1 to 20 images in one post, each up to 36 MB and each with its own alt text. One image shows as a single photo, two or more as LinkedIn's multi-image grid.
  • One document per post — PDF, PowerPoint or Word, up to 100 MB — on its own, with a title. LinkedIn shows it as a carousel people swipe through.
  • The link goes in your first comment, posted as you right after the post. If LinkedIn has not indexed the new post yet and refuses the comment, PostWire tries the comment alone again a few minutes later; the post itself is never sent twice.
  • Special characters arrive intact: in LinkedIn's Posts API the characters ( ) [ ] { } < > @ | ~ _ * # are markup, and an unescaped one cuts a post short. PostWire escapes them and keeps hashtags clickable.
  • Sign-in lasts about 60 days: when it runs out, the dashboard and the node say "connect LinkedIn again" in those words, and one click on Connect renews it.

Source: PostWire's LinkedIn publisher, read Oct 11, 2026. More on the API itself: Does LinkedIn have an API?

With n8n's own LinkedIn node

n8n ships a LinkedIn node, and its documentation (read Oct 11, 2026) describes it in one line: "n8n supports creating posts". The operation is Post → Create, with Post As (Person or Organization), Text and Media Category for an image or an article URL.

On n8n Cloud you press Connect my account. On self-hosted n8n the credential needs a Client ID and Client Secret from a LinkedIn developer app you create: n8n's guide lists a LinkedIn Company Page as a prerequisite for creating the app, and the products Share on LinkedIn and Sign In with LinkedIn using OpenID Connect to request on it (n8n's LinkedIn credentials guide).

With the PostWire node there is one credential, an API key, and the same node writes the post, adds the first comment, and publishes that news to nine more networks.

What it does not do

PostWire publishes to LinkedIn personal profiles: text, images and documents. It does not post to LinkedIn Company Pages or upload video to LinkedIn, and it does not read your feed, send messages or connection requests, or react to other people's posts. A video in the same workflow still goes to TikTok, Instagram, YouTube and Facebook from the same node.

Questions people ask

Can n8n post to LinkedIn?

Yes, in three ways: n8n's built-in LinkedIn node (Post → Create), the community node n8n-nodes-postwire (Post → Publish with Networks set to LinkedIn), or an HTTP Request to a posting API such as https://postwire.io/api/post. The last two need an API key and no LinkedIn developer app.

Do I need a LinkedIn developer app to post from n8n?

With n8n's own LinkedIn node on self-hosted n8n, yes: its credential asks for the Client ID and Client Secret of an app you create, and n8n's guide lists a LinkedIn Company Page as a prerequisite for creating it (n8n docs, Oct 11, 2026). With the PostWire node you connect LinkedIn once in PostWire's dashboard and the workflow uses an API key.

How do I put the link in the first comment from n8n?

Send first_comment with the LinkedIn draft: in the PostWire node, Content → Drafts From a Previous Step with { "linkedin": { "text": "…", "first_comment": "…" } }, or add the URL and the words "link in the comments" to the Idea and Smart Distribute writes both. The comment is posted as you, right under the post, and takes up to 1,250 characters.

Can I post images or a PDF carousel to LinkedIn from n8n?

Yes. The node's Media field takes one image by URL or as a binary file. For 2 to 20 images, or one PDF, PowerPoint or Word document shown as a swipeable carousel, send media in an HTTP Request to /api/post: [{ "url": "…", "type": "image" }] or [{ "url": "…", "type": "document", "title": "…" }].

Does it work on n8n Cloud?

PostWire's community node is not verified by n8n yet, so it installs on self-hosted n8n only. On n8n Cloud, use the HTTP Request node against https://postwire.io/api/post with the same fields.

Can I schedule LinkedIn posts from n8n?

Yes: Post → Schedule with When set to At a Specific Time (Publish At) or In the Next Free Queue Slot. Scheduled Post → Get Many, Update and Cancel manage what is waiting.

How much does it cost?

The free plan includes LinkedIn, the API and the n8n node: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.