Reference · Tools
Create posts on LinkedIn as a person or organization, with support for text, article links, and image uploads.
The LinkedIn node publishes posts as either a person or an organization, handling plain text, article link shares, and image posts where the picture is uploaded and attached for you. A typical build is cross-posting each published blog article to a company page with its thumbnail.
- Node type
- Action (binary)
- Parameters
- 11
- Outputs
- Output, Error
- Credentials
- LinkedIn OAuth2
Create posts on LinkedIn with text, images, or article links
Overview
Publishes posts to LinkedIn through the LinkedIn REST API, either as yourself or on behalf of an organization you administer. Three kinds of post are supported: text only, an article share built from a link with an optional custom thumbnail, and an image post where the picture is taken from the item’s binary data and uploaded before the post is created. Personal posts can choose their visibility; organization posts are always public.
Category: Marketing
Tool Name: linkedin
Version: 1
Appearance: Icon: lucide-Briefcase | Color: #0A66C2
Node Type
Action (Binary) — handles file/binary data operations
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires LinkedIn OAuth2 credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Post | post |
Operations
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a new post |
Parameters
Post: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Post As | options | No | person | Whether to post on behalf of a person or an organization. |
Options: person, organization | ||||
| Person | string | Yes | — | Person ID to post as. This is the user ID from your LinkedIn profile URN (e.g., the value after urn:li:person:). You can find this via the LinkedIn /v2/userinfo or /v2/me endpoint. (shown when Post As is person) |
| Organization URN | string | Yes | — | The numeric ID of the organization to post as (from the organization page URL). (shown when Post As is organization) |
| Text | string | Yes | — | The primary content of the post. Special characters for LinkedIn little-text format will be auto-escaped. Supports expressions like {{ $json.message }}. |
| Media Category | options | No | NONE | The type of media to include in the post. |
Options: NONE (text-only post without media), ARTICLE (post contains an article URL link), IMAGE (post contains an uploaded image) | ||||
| Input Binary Field | string | Yes | data | Name of the binary property containing the image to upload. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Media Category is IMAGE) |
| Additional Fields | collection | No | {} | Optional extras for article and image posts, and visibility for personal posts. |
| — Description | string | No | — | Short description for the article. (shown when Media Category is ARTICLE) |
| — Original URL | string | No | — | URL of the article to share. (shown when Media Category is ARTICLE) |
| — Thumbnail Binary Field | string | No | data | Name of the binary property containing the thumbnail image for the article. (shown when Media Category is ARTICLE) |
| — Title | string | No | — | Title for the image or article. (shown when Media Category is ARTICLE, IMAGE) |
| — Visibility | options | No | PUBLIC | Post visibility. Only applicable when posting as a person. (shown when Post As is person) |
Options: CONNECTIONS, PUBLIC |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| LinkedIn Account | credential | No | — | Connect your LinkedIn account via OAuth2. |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. LinkedIn has strict rate limits, so keep this low. |
Output Data
One output item per input item — this node never fans out. The result is merged onto the input item JSON: the API response is spread over the item, then postAs and shareMediaCategory are added so a downstream node can tell what kind of post was made without re-reading the node’s configuration. Binary on the input item is forwarded unchanged, and the node creates no new binary — an image or thumbnail is read from the item and uploaded, not written back.
A successful create returns the new post’s identifier on urn, so a typical output item looks like:
{
"urn": "urn:li:share:7212345678901234567",
"postAs": "person",
"shareMediaCategory": "IMAGE"
}
alongside every field the input item already carried. Reference it downstream by expression, e.g. {{ $json.urn }}.
An item that reaches the node with a resource/operation combination the tool does not implement is passed straight through with a _warning field explaining why, rather than being failed.
Usage Examples
- Create a text-only LinkedIn post
- Post an image to LinkedIn with a caption
- Share an article link on LinkedIn with a thumbnail
- Post on behalf of a LinkedIn organization
Example Configuration
Publish a text-only post as yourself, visible to everyone:
{
"type": "linkedin",
"parameters": {
"resource": "post",
"operation": "create",
"postAs": "person",
"person": "{{ $json.personId }}",
"text": "{{ $json.message }}",
"shareMediaCategory": "NONE",
"additionalFields": {
"visibility": "PUBLIC"
}
}
}
Share an article with a title and description, limited to your connections:
{
"type": "linkedin",
"parameters": {
"resource": "post",
"operation": "create",
"postAs": "person",
"person": "AbC123dEf4",
"text": "Worth a read — our take on {{ $json.topic }}.",
"shareMediaCategory": "ARTICLE",
"additionalFields": {
"originalUrl": "{{ $json.url }}",
"title": "{{ $json.title }}",
"description": "{{ $json.summary }}",
"visibility": "CONNECTIONS"
}
}
}
Post an image that an upstream node placed on the teamPhoto binary property:
{
"type": "linkedin",
"parameters": {
"resource": "post",
"operation": "create",
"postAs": "person",
"person": "AbC123dEf4",
"text": "{{ $json.caption }}",
"shareMediaCategory": "IMAGE",
"binaryPropertyName": "teamPhoto",
"additionalFields": {
"title": "{{ $json.title }}"
}
}
}
Announce something as a company page:
{
"type": "linkedin",
"parameters": {
"resource": "post",
"operation": "create",
"postAs": "organization",
"organization": "1234567",
"text": "{{ $json.announcement }}",
"shareMediaCategory": "NONE",
"maxConcurrency": 2
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Create LinkedIn posts with text, images (3-step binary upload), or article links as a person or organization.
Notes
- Media Category decides which extras apply. With
NONE, the article and image fields are ignored. WithARTICLE, set Original URL — the post is a link share, and Title, Description and Thumbnail Binary Field decorate it. WithIMAGE, the picture named in Input Binary Field is uploaded first and then attached to the post. - Visibility applies to personal posts only. Organization posts are always public, so setting Visibility alongside
Post As: organizationhas no effect. - Person is an ID, not a URL. Use the value that follows
urn:li:person:for your profile. The organization field takes the numeric ID from the company page URL. - Images have a size ceiling. A file larger than roughly 36 MB is rejected before upload rather than being sent and refused by LinkedIn.
- Keep Max Concurrency low. LinkedIn rate-limits aggressively; the node backs off and retries when it is throttled, but a high concurrency simply spends that budget faster. The default of 5 is already conservative — lower it for large batches.
- A post cannot be edited or deleted from this node. It creates posts only; keep the returned
urnif you need a record of what was published.
Frequently asked questions
How do I control what kind of post is created?
Media Category decides. With NONE the article and image fields are ignored; with ARTICLE you set Original URL and the post becomes a link share decorated by Title, Description and Thumbnail Binary Field; with IMAGE the file in Input Binary Field is uploaded then attached.
Why is my visibility setting having no effect?
Visibility applies to personal posts only. Organization posts are always public, so the setting is ignored when posting as a company page.
How does the image get to LinkedIn?
Through LinkedIn's three-step binary upload, which the node performs for you — register the upload, send the bytes, then reference it on the post.
Which credential does it need?
A LinkedIn OAuth2 credential with permission to post for the person or organization you are targeting.
Build with the LinkedIn node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need LinkedIn OAuth2 credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.