Skip to main content
Skip table of contents

LinkedIn - Configuration Guide

The LinkedIn Developer Platform facilitates integration of Expertflow CX with LinkedIn. Expertflow CX interacts with content generated by a LinkedIn Page so third-party application must use an Access Token to authorise API requests on behalf of a LinkedIn member or organisation. The Access Token carries the scope of permissions granted to the application, such as reading page posts, comments or publishing content. To enable this integration, developers must create and configure a LinkedIn App through the LinkedIn Developer Portal, which allows Expertflow CX to communicate with the LinkedIn platform.

Pre-Requisite for LinkedIn Channel

Generating an Access Token for LinkedIn's API

Assuming you already have a verified app on the LinkedIn Developer Portal, also you have requested for the standard upgrade.

  1. Go to the LinkedIn OAuth Token Generator.

  2. Sign in with your LinkedIn account if you aren’t already logged in.

  3. If you have multiple apps in your LinkedIn Developer account, select the app you want to generate a token for from the dropdown menu.

  4. Under "Select OAuth 2.0 Scopes", choose all the permissions for your app.

  5. Check the button 'I understand this tool will update my app’s redirect URL settings.'

  6. Click the "Request access token" button.

    image-20250224-123157.png
  7. If you are not already login on linkedIn then it will ask you to login,

  8. LinkedIn will prompt you to authorize the app. Review the permissions and click "Allow".

    image-20250224-123407.png
  9. Copy the generated Access Token from the tool.

Unified Admin Configuration

To set up the LinkedIn Channel, the LinkedIn connector needs to be configured in the Unified Admin of the Expertflow CX's application.

Channel Type

  1. Create a new Channel Type (if it doesn't exist).

  2. Select a Chat in the MRD.

image-20250224-125533.png

Channel Provider

It's recommended that the component’s service name be used in the "Channel Provider -> Provider's Webhook" field. However, FQDN can also be used with some additional custom configurations.

  1. Create a Channel Provider and give it the name "LinkedIn Provider"

  2. Provide the service name of LinkedIn Connector in the Provider Webhook field as http://{SERVICE-NAME}:{SERVICE-PORT}/comments. Replace the {SERVICE-NAME} and {SERVICE-PORT} in the URL with the component's k3s-based service name and port (It can be fetched using k get svc -n expertflow)

  3. Create the following additional attributes

Name

Type

Organizational-ID

PositiveNumber

Authentication-Token

String2000

Comments-Batch-Size

PositiveNumber

API-Version

PositiveNumber

Host-Url

String100

  1. Click Save  

image-20250303-063144.png

Channel Connector

  1. Create a Channel Connector and give it the name "LinkedIn Connector"

  2. Select LinkedIn in the Channel Provider Interface.

  3. Update Organizational-ID, Authentication-Token, Comments-Batch-Size, API-Version, Host-Url values.

Properties

Description

<ORGANIZATION-ID>

You can get this from the organisation’s LinkedIn page dashboard URL
https://www.linkedin.com/company/<<ORGANIZATION-ID>>/admin/dashboard/

<ACCESS-TOKEN>

Generate using the OAuth token generator tool

  1. Click Save

image-20250303-063425.png


Channel

  1. Add a Channel and give it a name like “LinkedIn”.

  2. Add Service Identifier as your organisation ID.

  3. Select the Bot ID with only the available Rasa Bot.

  4. Select the recently created “LinkedIn Connector” in Channel Connector.

  5. Set 300 sec as Customer Activity Timeout(sec).

  6. Set Channel Mode as HYBRID.

  7. Set the Routing Mode as per your need. PUSH or PULL.

  8. Set the required Queue where you want to route the LinkedIn Chats.

  9. Select LONGEST AVAILABLE as Agent Selection Policy.

  10. Set 300 sec as Agent Response Time(sec).

  11. Save.

image-20250224-131514.png

You have to restart the LinkedIn connector after adding the LinkedIn channel configuration in the unified admin.

 

Webhook Registration

This feature is only valid in CX4.9.5.

Webhooks allow real-time comments notification events. To receive notifications at your webhook, your webhook must be registered and validated.

  • Webhook endpoint must be a public FQDN, ngrok URIs are not supported “https://{FQDN}linkedin-connector/linkedin/webhook”

  • Both GET and POST requests should be enabled on this endpoint.

Developer portal

  • Register your webhook in the "Webhooks" tab of your application in the developer portal.

    image-20250723-120127.png
  • Press create new button

  • Add your valid webhook, and check the Social action check box

    image-20250723-120452.png
  • Press Test this Url button if you have provided a valid client ID and secret. It will return a validated token, and you can see it validated.

    image-20250723-120959.png
  • Press Save webhook button. You can see this webhook registered in the webhook tab

    image-20250723-121215.png

Social Media Event Subscription.

To receive notifications on your validated webhook, you must also subscribe your members using the Subscription API Webhook Subscription.postman_collection.json

Key

Value

developer application ID

It will be available from the URL.
https://www.linkedin.com/developers/apps/{applicationId}/webhooks

member ID

You can get admin memberId from the Following get api

Admin Info

curl --location 'https://api.linkedin.com/rest/me' \
--header 'X-Restli-Protocol-Version: 2.0.0' \
--header 'Linkedin-Version: 202504' \
--header 'Authorisation: Bearer {Auth Token}'

organization ID

You can get this from the organisation's’s LinkedIn page dashboard URL
https://www.linkedin.com/company/<<ORGANIZATION-ID>>/admin/dashboard/

HTTP

CODE
https://api.linkedin.com/v2/eventSubscriptions/(developerApplication:urn%3Ali%3AdeveloperApplication%3A{developer application ID},user:urn%3Ali%3Aperson%3A{member ID},entity:urn%3Ali%3Aorganization%3A{organization ID},eventType:ORGANIZATION_SOCIAL_ACTION_NOTIFICATIONS)

JSONCopy

CODE
{
  "webhook": "https://{FQDN}linkedin-connector/linkedin/webhook"
}

Subscription Lifetime

Your app’s subscriptions for a member are only valid for as long as the member's authorisation grant is valid for your application. If the grant expires or if the member revokes their grant for your application, the subscriptions for the member will be removed. A subscription will also be removed in the case that the member is no longer an administrator of the company they are subscribed to.

Notes

Re-validation and Blocked Endpoints

Webhook endpoints will be periodically re-validated after the initial validation every 2 hours. If the re-validation check fails 3 times in a row, the endpoint will move to a blocked state where events will no longer be sent.

Developers associated with that developer application will receive warning emails for any failed validation attempts. After re-validation checks fail 3 times in a row, an email will be sent notifying developers that the webhook has been blocked. The endpoint will also show as "Blocked" in the developer portal.

After resolving the issue, developers can manually kick off another validation check from the developer portal.

Message Reliability

LinkedIn will attempt to redeliver the notification once every 5 minutes for 8 hours with a batch size of 10, after which redelivery attempts for that notification will be aborted. In case of webhook downtimes over 8 hours, whose notifications events will be lost

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.