LinkedIn Publishing Pipeline
The only pipeline that never touches the media library — LinkedIn takes bytes directly, so identity is resolved live and the image is registered, uploaded and posted with nothing to clean up.
- Client
- EpsolDev
- Category
- Automation Engineering
- Completed
- 2026-08-15
- Built with
- n8n, Google Vertex AI, REST API
- Topics
- API Development, Automation
n8n 44 nodes Direct binary upload Publishing daily
The only pipeline in the set that never touches the content platform's media library. LinkedIn accepts image bytes directly, so the generated image goes straight from the generator to LinkedIn's asset API — no upload, no public URL, no cleanup.

Part of the Social Distribution Network.
Same opening, different exit

Dispatch, Loop Over Sites, the per-site due check, the claim gate, CBM Next Post → CBM Get Identity → CBM Get Prompts, then caption and image generation with primary-and-fallback on both.
Then the divergence, visible in a single connection:
Prep Image ─> LI Get Creds (LinkedIn: bytes go direct)
Prep Image ─> CBM Media Upload (Instagram, Facebook, GBP: needs a URL)
That one edge removes three nodes and an entire cleanup concern from this graph.
You cannot post as a token

LinkedIn will not accept "post this, here is my token". It needs an author URN — the identifier of the member or organisation the post belongs to. So the workflow resolves identity before it does anything else:
LI Get Creds -> LI Parse Creds -> LI Creds OK? -> LI Get Me -> LI Me OK?
│
LI Image Init
LI Get Me is a live call, not a cached value. A token that is valid but no longer associated with the expected page fails here, at zero cost, rather than posting to the wrong account.
Registering an asset, then waiting for it

LinkedIn's image flow is a register-then-upload handshake:
LI Image Init— register the intent, receive an upload URL and an asset URNLI Image Bin— prepare the binary payloadLI Image Upload— send the bytesLI Image Wait→LI Image Status→LI Image Ready?— the asset is processed asynchronously
Only then does LI Create Post reference the asset URN, and LI Verify confirms it.
The one deliberately unbounded-looking branch
LI Image Ready? false does not loop back. It goes to LI Image Wait 2 and then straight to LI Create Post:
LI Image Ready? ─┬─ yes ──────────────> LI Create Post
└─ no ─> LI Image Wait 2 ─> LI Create Post
That looks like a missing retry loop. It is a choice. One extra wait, then post anyway. LinkedIn's asset processing is fast and usually already finished; the status check is a courtesy, not a gate. Blocking the post on a slow status read would trade a near-certain success for an indefinite wait.
The other pipelines poll with a give-up because they wait on video, which genuinely takes minutes. This waits on a still image, which does not.
Nothing to clean up
No CBM Media Upload, so no CBM Media Delete. The graph ends LI Verify → CBM Record Post → back to the site loop. Fewer moving parts than any other image pipeline in the set, because the platform asked for less.
Stack
n8n LinkedIn API Google Vertex AI Imagen JavaScript REST API