Automate LinkedIn Posts with Images and Videos
LinkedIn has no native node in n8n. Make.com has a LinkedIn module, but it breaks often and lacks video support. The LinkedIn API itself requires a multi-step upload flow for images (register upload, binary PUT, then create post referencing the asset) and an even more complex flow for video. Users on both forums spend weeks debugging OAuth scopes, upload URLs, and undocumented error responses.
This is the platform that causes the most frustration in social media automation workflows. On the n8n forum, multiple threads describe workflows that execute without errors but never publish the post. On Make.com, users report the LinkedIn module silently failing after API changes.
Here is how to skip the LinkedIn API entirely and post text, images, and videos to LinkedIn with one API call.
Why the LinkedIn API is painful
Posting an image to LinkedIn through their API requires four steps:
Register an upload with
POST /rest/images?action=initializeUpload, providing your organization or person URN.Upload the binary image data with a PUT request to the upload URL returned in step 1.
Create the post with
POST /rest/posts, referencing the image asset URN from step 1.Handle OAuth2 token refresh when your access token expires (every 60 days for most apps).
Video uploads are worse. LinkedIn requires chunked uploads for videos over 4MB, with a separate "finalize" step after all chunks are uploaded, followed by a processing wait before you create the post.
On n8n, users build this with 4-6 HTTP Request nodes chained together. On Make.com, users add custom HTTP modules because the native LinkedIn module does not support image or video uploads reliably.
If any step fails, debugging is difficult. LinkedIn returns vague error messages like PERMISSION_DENIED or INVALID_MEDIA_UPLOAD without specifying which permission or which upload step failed.
The simpler approach: one API call
With the Blotato Publish API, posting to LinkedIn is one request. Pass image or video URLs directly -- no upload step, no binary PUT, no asset URNs.
Text-only post
Post with an image
Post with a video
Post to a company page
Add pageId in the target object. Get your pageId by calling GET /v2/users/me/accounts/{accountId}/subaccounts (docs).
Step-by-step: n8n workflow
Install the Blotato community node in n8n (Settings > Community Nodes > search "Blotato").
Add a trigger node. Use Google Sheets, Airtable, a webhook, or a schedule.
Add a Blotato Publish Post node.
Set the platform to LinkedIn.
Pass your
accountId. To find it, add a Blotato List Accounts node earlier in the workflow, or look it up in the Blotato dashboard.For company page posts, add a Blotato List Subaccounts node to get the
pageId, and pass it in the target.Set the
textfield with your post content.Pass image or video URLs in the
mediaUrlsfield. No upload step required.Run the workflow.
For a full walkthrough, see: n8n Post Everywhere
Step-by-step: Make.com scenario
Add a trigger module (Google Sheets, Airtable, webhook).
Add an HTTP module:
Method: POST
URL:
https://backend.blotato.com/v2/postsHeaders:
blotato-api-key: your-api-keyBody type: JSON
Body: your post JSON with
platformandtargetTypeset to"linkedin"
Add a second HTTP module to poll
GET https://backend.blotato.com/v2/posts/{postSubmissionId}for the publish status.Run the scenario.
LinkedIn-specific limits
Text
Up to 3,000 characters
Images
JPG, PNG, GIF -- up to 5 MB
Video
MP4 -- up to 500 MB, up to 30 minutes
Aspect ratios
16:9 (landscape), 9:16 (portrait), 1:1 (square)
For full details, see: LinkedIn Supported Posts and Media
Scheduling LinkedIn posts
Add scheduledTime to queue a post for a specific time instead of publishing immediately:
Or use "useNextFreeSlot": true to fill the next open slot in your content calendar. See Build a Social Media Scheduler for a full scheduling setup.
Combining with AI content generation
Pair LinkedIn publishing with Blotato's Source API to repurpose content:
Feed a blog post URL into the Create Source endpoint with custom instructions: "Rewrite as a LinkedIn post with a hook, 3 key points, and a call to action."
Pass the extracted text into the Publish Post endpoint.
Schedule it for peak LinkedIn hours (Tuesday-Thursday, 8-10am in your audience's timezone).
See Repurpose a URL into Social Media Posts for the full repurposing workflow.
Forum threads referenced
These are the community discussions that prompted this post:
Automate social media (Make)
Automation for social media (Make)
Last updated