List Posts
linkedin.list_posts
ActionChat & messagingconnection required
Calls the LinkedIn API with the connection's credentials.
Page through the posts one person or organization authored, newest first.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Bearer token
- Providers
- Secret shape
- the LinkedIn OAuth2 access token, or {"access_token": "…"}
- Config it needs
- api_version
- Resolved by
- config.connection_id, else node.connection_id
Configuration
5 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
author_urn Who the post is by: urn:li:person:{id} (from linkedin.get_me) or urn:li:organization:{id} (from linkedin.list_organizations). Supports {{ }}. | string | Yes | — | — | urn:li:person:yrZCpj2Z12 |
count How many rows to return on this page. LinkedIn caps it at 100. | number | No | 10 | 1–100 | — |
start Index of the first row to return. To page on, feed the previous step's next_start back in — not its count, which is only how many rows that page happened to hold. | number | No | 0 | 0–100000 | — |
sort_by Order the page by when posts were last modified, or when they were created. | string | No | LAST_MODIFIED | one of "LAST_MODIFIED", "CREATED" | — |
view_context READER returns the published version anyone can see; AUTHOR returns the author's latest, which may still be DRAFT or PROCESSING. | string | No | READER | one of "READER", "AUTHOR" | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"author_urn": "urn:li:person:yrZCpj2Z12",
"count": 10,
"sort_by": "LAST_MODIFIED",
"start": 0,
"view_context": "READER"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
posts[].id The post URN — urn:li:share:… or urn:li:ugcPost:…. | string | — |
posts[].author The person or organization URN that authored it. | string | — |
posts[].commentary The post text, with mentions and hashtags as stored. | string | — |
posts[].visibility PUBLIC, CONNECTIONS, LOGGED_IN or CONTAINER. | string | — |
posts[].lifecycle_state PUBLISHED, DRAFT, PUBLISH_REQUESTED or PUBLISH_FAILED. | string | — |
posts[].created_at When the post was created (epoch milliseconds). | number | — |
posts[].last_modified_at When the post last changed (epoch milliseconds). | number | — |
posts[].published_at When the post went live (epoch milliseconds). | number | — |
posts[].content The attached content — media, article, poll — or {} for text. | object | — |
posts[].distribution feedDistribution and any targeting the post carries. | object | — |
count How many rows this page actually returned. | number | — |
start The index this page started at. | number | — |
next_start The 'start' for the next page — this page's start plus the requested count. Pass it back in as start; stop when a page returns no rows. | number | — |
{
"count": 0,
"next_start": 0,
"posts": [
{
"author": "",
"commentary": "",
"content": {},
"created_at": 0,
"distribution": {},
"id": "",
"last_modified_at": 0,
"lifecycle_state": "",
"published_at": 0,
"visibility": ""
}
],
"start": 0
}Notes
- LinkedIn may return fewer rows than 'count' and still have more pages, so page on with next_start until a page comes back empty — a short page is not the end.
See List Posts run in a workflow.
In a technical demo we add the LinkedIn connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.