The moment it happens
Post an image to LinkedIn by sending a link
Send an image URL and caption and it appears as an image post on your profile.
- Runs
- The moment it happens
- Apps
- AI
- Not needed
- Access
- w_member_social
Send this to your assistant
Create a ClickRuntime automation: give me a link I can send an image URL and caption to, and publish each one as a LinkedIn image post on my profile.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Posting a photo to LinkedIn from a phone is easy; posting one automatically from another system is not. Marketing teams that keep images in a content tool, a shared drive or a design platform have to download each file, open LinkedIn, upload, type the caption and publish. Event photographers and community managers repeat that dozens of times a month, and the images that should go out the same day wait until someone has a gap.
You send ClickRuntime an image URL and a caption. It downloads the image, goes through LinkedIn's upload steps, creates the post with the image attached and publishes it. The image, which LinkedIn requires to be uploaded rather than linked, ends up on your profile exactly as if you had posted it by hand.
It works well as a building block for other tools that produce images and captions.
What you get out of it
Photos go out while they are fresh
Pictures from an event or a product release matter most within hours. Posting straight from a link means the moment is shared before the audience loses interest. Timeliness is often what makes a post worth reading.
Other tools can feed LinkedIn
Any system that can send a URL and a caption, such as a design tool or a spreadsheet script, can publish a post. You do not need a separate LinkedIn integration for each of them.
The tedious upload steps are handled
LinkedIn requires registering an upload, sending the file and referencing it in the post. Doing that for each image is slow and error-prone, and the automation takes care of it every time.
Captions and images stay together
The caption is sent with the image, so they are never mismatched or posted separately. Mistakes like captioning the wrong photo become less likely. That removes a whole class of avoidable mix-ups.
Social posting does not need desktop access
Because it is triggered by a request, anyone with the link, or a tool, can publish. Team members on the road do not need to log in to LinkedIn to share an image.
How it works
What happens, step by step
When you send an image link and caption to the automation's private link, it starts.
It downloads the image and uploads it to LinkedIn.
It publishes a post with the image and your caption on your LinkedIn profile.
Before it runs live
- Connect LinkedIn
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other LinkedIn steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, http, credentials
API = "https://api.linkedin.com/rest"
@on_event
def handle(event):
body = event.json or {}
token = credentials.connection("linkedin", "main")
headers = {"Authorization": f"Bearer {token}", "LinkedIn-Version": "202405", "X-Restli-Protocol-Version": "2.0.0"}
owner = "urn:li:person:" + http.get("https://api.linkedin.com/v2/userinfo", headers=headers).json()["sub"]
init = http.post(f"{API}/images?action=initializeUpload", headers=headers,
json={"initializeUploadRequest": {"owner": owner}}).json()["value"]
image = http.get(body["image_url"]).content
http.put(init["uploadUrl"], headers={"Authorization": f"Bearer {token}"}, data=image).raise_for_status()
resp = http.post(f"{API}/posts", headers=headers, json={
"author": owner, "commentary": body.get("caption", ""), "visibility": "PUBLIC",
"distribution": {"feedDistribution": "MAIN_FEED", "targetEntities": [], "thirdPartyDistributionChannels": []},
"content": {"media": {"id": init["image"]}},
"lifecycleState": "PUBLISHED",
})
resp.raise_for_status()
return {"post": resp.headers["x-restli-id"]}FAQ
Common questions
What image types and sizes are supported?
Does the URL need to be public?
Can I post to a company page instead of my profile?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post a video to LinkedIn from a link
Send a video URL and caption and the video is posted to your profile, with a confirmation email.
See how it worksTurn a topic into a published LinkedIn post
You send a one-line topic and get a finished post on your profile, with a copy in your inbox.
See how it worksPost weekly updates to your company page
One update from your list goes out on your company page every Wednesday.
See how it worksKeep exploring
Set up “Post an image to LinkedIn by sending a link” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.