---
title: "How to Set Up LinkedIn Webhooks with Unified"
img: https://s3.us-east-2.amazonaws.com/unified-article-images/how_to_set_up_linkedin_webhooks_with_unified-icon.png
date: 2026-02-14T23:04:00.000Z
tag: Guides
description: "LinkedIn's Organization Social Action Notifications let you receive real-time updates when people interact with your company page -- likes, comments, shares,..."
url: "https://docs.unified.to/guides/how_to_set_up_linkedin_webhooks_with_unified"
---

# How to Set Up LinkedIn Webhooks with Unified
------
_February 14, 2026_

LinkedIn's Organization Social Action Notifications let you receive real-time updates when people interact with your company page -- likes, comments, shares, and mentions. With Unified, you can subscribe to these events through the same webhook API you use for every other integration, so there's no need to learn LinkedIn's proprietary webhook protocol.


## **What You'll Need**


Before starting, review the [Getting Started with Unified](https://docs.unified.to/guides/getting_started_with_unified) article if you haven't already. You'll also need:

- A LinkedIn developer app (see setup instructions below)
- A LinkedIn connection created through Unified's embedded auth flow
- A publicly accessible URL to receive webhook events

## **Setting Up Your LinkedIn Developer App**


Before you can receive webhook events, you need a LinkedIn app configured with the right products and permissions.


**Creating the App**

1. Go to [linkedin.com/developers/apps](https://www.linkedin.com/developers/apps)and click **Create App**
2. Fill in the required fields:
    - **App name**: Your application's name
    - **LinkedIn Page**: Select the LinkedIn company page you want to monitor (you must be an admin of the page)
    - **App logo**: Upload a logo for your app
3. Accept the legal terms and click **Create app**

**Requesting API Products**


LinkedIn gates webhook access behind specific API products. From your app's settings page:

1. Navigate to the **Products** tab
2. Request access to **Community Management API** -- this grants the `r_organization_social` scope needed for social action notifications
3. If you also want to send messages, request **LinkedIn Marketing API Partner Program** for the `w_messages` scope

Product approvals can take a few business days. You can check the status on the **Products** tab.


**Configuring OAuth Scopes**


Once your products are approved:

1. Go to the **Auth** tab in your app settings
2. Under **OAuth 2.0 scopes**, verify that `r_organization_social` is listed
3. Copy your **Client ID** and **Client Secret** -- you'll need these when creating a connection in Unified
4. Under **Authorized redirect URLs**, add your Unified OAuth callback URL

**Verifying Your Company Page**


LinkedIn requires that your developer app is associated with a verified company page:

1. Go to the **Settings** tab in your app
2. Under **App Settings**, confirm the correct LinkedIn Page is linked
3. A page admin must verify the app -- click **Generate URL** next to the verification prompt and share it with a page admin if needed

Once the page is verified and the products are approved, your app is ready to receive social action notifications.


## **Creating a Webhook for LinkedIn Events**


You can create a webhook subscription through the API or the Unified dashboard. The webhook will listen for `messaging_event` objects with the `created` event, which is how LinkedIn's social action notifications are surfaced.


**Via the API**


`import { UnifiedTo } from '@unified-api/typescript-sdk';

const sdk = new UnifiedTo({
    security: {
        jwt: process.env.UNIFIED_API_KEY!,
    },
});

const webhook = await sdk.unified.createUnifiedWebhook({
    webhook: {
        hookUrl: 'https://your-app.com/webhooks/linkedin',
        connectionId: process.env.LINKEDIN_CONNECTION_ID!,
        objectType: 'messaging_event',
        event: 'created',
    },
});

console.log('Webhook created:', webhook.webhook?.id);`


**Via the Dashboard**

1. Open [app.unified.to](https://app.unified.to/) and navigate to your workspace
2. Go to **Webhooks** and click **Create Webhook**
3. Select your LinkedIn connection
4. Set the object type to `messaging_event` and the event to `created`
5. Enter your webhook URL and save

Once the webhook is active, Unified registers your endpoint with LinkedIn's event subscription API using the organization URN from your connection.


## **Receiving Events**


When someone interacts with your LinkedIn company page, Unified converts the raw LinkedIn notification into a standard `MessagingEvent` object and POSTs it to your `hook_url`. Here's what that looks like:


`import express from 'express';

const app = express();
app.use(express.json());

app.post('/webhooks/linkedin', (req, res) => {
    const event = req.body;

    switch (event.type) {
        case 'MESSAGE_RECEIVED':
            // Someone commented on a company post, shared it, or edited/deleted a comment
            console.log('Comment or share from:', event.user?.id);
            console.log('On organization:', event.channel?.id);
            break;

        case 'REACTION_ADDED':
            // Someone liked a company post
            console.log('Like from:', event.user?.id);
            break;

        case 'APP_MENTION':
            // Your company was mentioned in a share
            console.log('Mentioned by:', event.user?.id);
            break;
    }

    res.sendStatus(200);
});`


## **Event Type Mapping**


LinkedIn's social action types are mapped to Unified's standard `MessagingEvent`types:

- **COMMENT** and **ADMIN_COMMENT**become `MESSAGE_RECEIVED` -- a new comment was posted on your organization's content
- **LIKE** becomes `REACTION_ADDED` -- someone liked your organization's post
- **SHARE** becomes `MESSAGE_RECEIVED` -- someone shared your organization's content
- **SHARE_MENTION** becomes `APP_MENTION` -- your organization was mentioned in a share
- **COMMENT_EDIT** and **COMMENT_DELETE** become `MESSAGE_RECEIVED` -- an existing comment was modified or removed

Each event includes the `channel` field set to your organization's ID, the `user`field with the actor's person ID, and a `created_at` timestamp. The original LinkedIn payload is always available in the `raw` field if you need additional detail.


## **Sending Messages Alongside Webhooks**


While webhooks cover inbound events, you can also send outbound messages through LinkedIn's Messages API using the same connection. This is useful for responding to engagement by reaching out to the people interacting with your content.


`const message = await sdk.messaging.createMessagingMessage({
    messagingMessage: {
        message: 'Thanks for engaging with our content!',
        destinationMembers: [
            { userId: 'urn:li:person:ABC123' },
        ],
    },
    connectionId: process.env.LINKEDIN_CONNECTION_ID!,
});`


Note that LinkedIn's Messages API requires partner-level access with the `w_messages` scope. Message creation supports new conversations (via `destinationMembers`) or replies to existing threads (via `channelId`).


## **Troubleshooting**


**Webhook not receiving events?** LinkedIn requires the `r_organization_social`OAuth scope, which is granted through the Community Management API product. Verify your app has this product approved on the [LinkedIn Developer Portal](https://www.linkedin.com/developers/apps), and that your connection has the scope by checking the connection details in the Unified dashboard.


**Events arriving for the wrong organization?** The webhook subscription is tied to the `organization_id` stored in your connection metadata, which is set during the initial OAuth flow. If you manage multiple LinkedIn organizations, create separate connections for each one.


**LinkedIn Page not verified?** Your developer app must be associated with a verified company page. Go to your app's **Settings** tab on the LinkedIn Developer Portal and complete the page verification process. A page admin must approve the association.


With just a few lines of code, you're now receiving real-time LinkedIn engagement data through the same webhook infrastructure you use for Slack, Discord, and every other messaging integration on Unified. No custom protocol handling required.


[→ Start your 30-day free trial](https://app.unified.to/login)


[→ Book a demo](https://calendly.com/d/cph9-g8n-jzg/connect-with-unified)