LinkedIn channels post to a company page (not a personal profile) through the UmbHost.Automate.LinkedIn package and its Create LinkedIn Company Post action (linkedin.createOrganizationPost).
dotnet add package UmbHost.Automate.LinkedInWhat LinkedIn needs
Section titled “What LinkedIn needs”-
Create an app at linkedin.com/developers, associated with the company page.
-
On Products, request Community Management API. LinkedIn reviews this request, which can take days. Also add Sign In with LinkedIn using OpenID Connect.
-
On Auth, add the redirect URL
https://<your-site>/umbraco/automate/oauth/callback/linkedin. -
Add the app’s credentials to configuration:
{"Umbraco": {"Automate": {"Providers": {"LinkedIn": { "ClientId": "...", "ClientSecret": "..." }}}}}Without a
ClientId, the LinkedIn provider is skipped (and Social doesn’t offer LinkedIn).
The Automate connection
Section titled “The Automate connection”Automate → Connections → Create → LinkedIn → Authorize, signed in to LinkedIn as a member with the Administrator or Content admin role on the page.
LinkedIn access tokens last 60 days and LinkedIn doesn’t issue refresh tokens to most apps. When the token expires, posts fail with an authentication error (Failed, safe to retry): re-authorise the connection, then retry them.
The connection’s API Version setting defaults to 202610. LinkedIn retires each version after about a year, so move it forward when LinkedIn announces a sunset.
Then add the channel as described in Connecting networks.
Channel options
Section titled “Channel options”| Option | Values | Default |
|---|---|---|
organizationId |
The page’s numeric id, from linkedin.com/company/<id>/admin. 1 to 20 digits. Required. |
none |
What is sent
Section titled “What is sent”| Post field | Sent as |
|---|---|
| Text | The post text. Characters LinkedIn reserves are escaped for you; hashtags are kept. |
| Link URL, title, description | A link card. The link isn’t added to the text. |
| Image | Optional. A JPEG, PNG or GIF. |
| Image alt text | Sent. |
Two rules Social checks before a post is saved:
- A link needs a link title (
link.title_required:linkedin). LinkedIn doesn’t fetch the page, so the card is built from what you enter. - A post has a link or an image, not both (
link.image_conflict:linkedin). The link and image belong to the whole post (only the text can differ per channel), so to have an image on other networks and a link card on LinkedIn, write two posts.
LinkedIn allows 3,000 characters. See Network limits.
When a post fails
Section titled “When a post fails”LinkedIn has no idempotency key. If the post request fails without a clear answer, the action doesn’t retry, and Social records the post as Unknown: check the page before retrying.