OC.Automate.LinkedIn 2.1.0

dotnet add package OC.Automate.LinkedIn --version 2.1.0
                    
NuGet\Install-Package OC.Automate.LinkedIn -Version 2.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OC.Automate.LinkedIn" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OC.Automate.LinkedIn" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="OC.Automate.LinkedIn" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OC.Automate.LinkedIn --version 2.1.0
                    
#r "nuget: OC.Automate.LinkedIn, 2.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OC.Automate.LinkedIn@2.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OC.Automate.LinkedIn&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=OC.Automate.LinkedIn&version=2.1.0
                    
Install as a Cake Tool

OC.Automate.LinkedIn

LinkedIn integration for Umbraco Automate. Post content to LinkedIn as part of your automation workflows.

Installation

dotnet add package OC.Automate.LinkedIn

Setup

Step 1: Create a LinkedIn App

  1. Go to https://www.linkedin.com/developers/apps and sign in.
  2. Click Create app.
  3. Fill in:
    • App name: e.g. "My Umbraco Automate"
    • LinkedIn Page: Select your company page (required — create one first if you don't have one)
    • Logo: Upload any image
  4. Accept the terms and click Create app.

Step 2: Enable Required Products

On your app page, go to the Products tab and request access to:

Product Purpose Approval
Share on LinkedIn Required for posting as a person Usually instant
Sign In with LinkedIn using OpenID Connect Required for automatic Author URN retrieval Usually instant
Community Management API Only needed if posting as an organization May take a few days

Step 3: Get your Client ID and Client Secret

  1. On your app page, go to the Auth tab.
  2. Copy your Client ID and Client Secret — you'll enter these on the connection in the Umbraco backoffice (or in appsettings.json, see Step 5).

Step 4: Configure the Redirect URL in LinkedIn

  1. On your app's Auth tab, scroll down to Authorized redirect URLs for your app.
  2. Click Add redirect URL and enter:
    https://your-site.com/umbraco/api/linkedin/callback
    
  3. Click Update to save.

Important: This URL must match exactly the Authorize Redirect URI you set on the connection — including the protocol (https), domain, and path.

Step 5: Configure appsettings.json

The connection fields in the backoffice (Step 6) come pre-filled with references to Umbraco Automate's built-in Variables (non-sensitive) and Secrets (sensitive) config sections. Add your values there:

{
  "Umbraco": {
    "Automate": {
      "Variables": {
        "LinkedInAuthorizeRedirectUri": "https://your-site.com/umbraco/api/linkedin/callback"
      },
      "Secrets": {
        "LinkedInClientId": "your-client-id",
        "LinkedInClientSecret": "your-client-secret"
      }
    }
  }
}

Or as environment variables:

Umbraco__Automate__Variables__LinkedInAuthorizeRedirectUri
Umbraco__Automate__Secrets__LinkedInClientId
Umbraco__Automate__Secrets__LinkedInClientSecret

The connection fields reference these values with $ syntax — these are the defaults each field starts with:

Connection field Default reference
Client ID $Umbraco:Automate:Secrets:LinkedInClientId
Client Secret $Umbraco:Automate:Secrets:LinkedInClientSecret
Authorize Redirect URI $Umbraco:Automate:Variables:LinkedInAuthorizeRedirectUri

Automate resolves the references automatically, and values under Secrets are masked in the backoffice. If you prefer not to use appsettings, replace the references with literal values directly in the fields (the key names are your choice too — they just have to match the $ reference you enter).

Usage

Step 6: Create a LinkedIn Connection

  1. In the Umbraco backoffice, go to AutomateConnections and create a new LinkedIn connection.
  2. Fill in:
    • Client ID, Client Secret and Authorize Redirect URI — pre-filled with the $ references from Step 5. Leave them as-is if your values are in appsettings, or replace them with literal values.
    • Connection Name — a unique name for this connection (e.g. LinkedIn). This is used internally to store your authorization tokens.
  3. Save the connection. The Authorize step needs the saved settings.

Step 7: Authorize with LinkedIn

  1. Click the "Authorize with LinkedIn" button in the connection settings.
  2. A new window opens and redirects you to LinkedIn — sign in and approve the permissions.
  3. After approving, you'll see a "LinkedIn Connected!" confirmation page showing your Author URN (e.g. urn:li:person:abc123).
  4. Your Author URN and access tokens are saved automatically. Close the window and return to the backoffice.

Step 8: Validate and Use

  1. Back in the Umbraco backoffice, click Test connection on your LinkedIn connection to confirm it's working.
  2. Create an automation and add the Send LinkedIn Post action.
  3. Configure the post:
    • Content — The text of your post. Supports ${binding} syntax for dynamic values (e.g. content name, URL).
    • Post URL (optional) — A URL to append to the post.
    • VisibilityPUBLIC (default) or CONNECTIONS (visible only to your connections).
    • LinkedIn API Version (optional) — The LinkedIn-Version header sent with the request, in YYYYMM format. Leave blank to use the version packaged with this release. See LinkedIn API Version below.

LinkedIn API Version

LinkedIn's Marketing APIs are versioned monthly (YYYYMM format), and each version is supported for a minimum of one year before it is sunset. When a version is sunset, requests using it fail with:

LinkedIn API returned UpgradeRequired: {"status":426,"code":"NONEXISTENT_VERSION","message":"Requested version 20250601 is not active"}

This package ships with a current default version, but you can override it per Send LinkedIn Post action using the LinkedIn API Version field — set it to a supported version (e.g. 202607) without waiting for a package update.

To find the current version, see LinkedIn's versioning documentation — the Latest Version table lists the newest header value. Any version that has not been sunset will work.

Token Management

  • Access tokens are stored in the Umbraco database and managed automatically.
  • When an access token expires (~60 days), you will need to re-authorize by clicking the Authorize with LinkedIn button again.
  • No manual token handling is required.

Migrating from earlier versions

Earlier releases read the LinkedIn credentials from a package-specific config section (OwainCodes:Automate:LinkedIn or Umbraco:Automate:Providers:OCAutomateLinkedIn). Those sections are no longer used:

  1. Remove the old config section from appsettings.json.
  2. If you want config-driven values, move them under Umbraco:Automate:Variables / Umbraco:Automate:Secrets as shown in Step 5.
  3. Edit your existing LinkedIn connection in the backoffice and fill in the new Client ID, Client Secret and Authorize Redirect URI fields (literal values or $ references), then save.
  4. Re-run Authorize with LinkedIn if validation reports missing tokens.

Posting as an Organization

To post as a LinkedIn Company Page instead of a personal profile:

  1. Ensure Community Management API is enabled on your LinkedIn app (Step 2).
  2. After authorizing, the package stores your personal Author URN automatically.
  3. To post as an organization, you'll need to update the stored URN manually via the /umbraco/api/linkedin/me endpoint or by re-configuring the connection.

Note: Organization posting requires additional LinkedIn app approval and the account authorizing must be an admin of the LinkedIn Company Page.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.0 37 7/17/2026
2.0.0 49 7/15/2026
1.1.0-beta020 86 7/10/2026
1.0.1 111 6/29/2026
1.0.0 115 6/28/2026
1.0.0-beta023 116 6/25/2026
1.0.0-beta001 101 6/25/2026