LinkedIn – Salesforce Integration

Hello All, I am back with another Integration post and in this post, I will show how you can connect with LinkedIn from your salesforce org using a small piece of code.

So, Get ready to do another integration with Salesforce.

Before we start playing with the code we need to create a Custom Setting where we will store Access Token and Expiry time so that we could use this while making the callouts.

Setup Custom Object: –

Go to Setup -> Create -> Objects -> New -> Name it “LinkedIn Information

LinkedIn Informations

Create a VF page and Controller Class: –

Create an Apex class Name it “LinkedlnoAuthController

Go to Setup -> Develop -> Apex Classes -> New -> 

Next, Create a VF page that will do the Authorization with LinkedIn. Name it “LinkedlnoAuth“.

You will get the complete code from my GitHub Repo. Copy Apex Class and VF page code From Here.

After you created VF page Preview it, Copy the URL and paste somewhere into the notepad++ or any other text editor. URL will be something like below


Create an App in LinkedIn: –

Time to create a Connected App into LinkedIn developer account to get the Client Id (Consumer Key)  and Client Secret(Consumer Secret).

Go to LinkedIn Developer Console Create Application. Refer this link to get the complete picture of app configuration. You will get Client Id and Client Secret copy both and store in the text editor.

You LinkedIn app page will look like below

LinkedIn - Application

Make Required Changes into Apex Class: –

1 – Open LinkedlnoAuthController class replace redirect_URI with your VF page preview URI (line #10).

2 – Replace consumerKey with your client Id and consumerSecret with your Client Secret (line #8 and #9).

Now, we are all set to let’s do some testing and see if we have successfully integrated LinkedIn with Salesforce.

Open LinkedlnoAuth VF page and preview it. Click Connect with LinkedIn button, it will open a new screen asking your LinkedIn username and password

Connect with Linkedln

Linked Login

Enter your username and password then sign in Grant permission to Application -> Click Complete Authorization, a success message will show.

Linked Login.png

Now Click on Get Basic Info -> A basic information will show here in PAGE

Basic Info.png

Facing any issue let me know in the comment section.

Happy Coding 🙂 Enjoy Coding 🙂


26 thoughts on “LinkedIn – Salesforce Integration

  1. Prashant February 15, 2019 / 8:11 am

    HI Amit,
    Thanks for the awesome block.
    I have one question can we find all the contacts present on LinkedIn by matching the first name and last name.


    • Amit Singh February 17, 2019 / 7:40 am

      I am not sure but You can explore the API and see if we can. I will implement the same


      • Zulfi April 4, 2019 / 11:05 am

        Hi Amit,

        I am getting 401 error after sucessfull authorization, when I click on basic info button, got 401 error.
        Can you please help me.


    • zulfi April 4, 2019 / 7:15 am

      Hi sir,
      I am getting error, on 25th line
      Select Id, Name, Access_Token__c, Expires_In_Seconds__c
      ^ERROR at Row:1:Column:18
      No such column ‘Access_Token__c’ on entity ‘LinkedIn_Information__c’. If you are attempting to use a custom field, be sure to append the ‘__c’ after the custom field name. Please reference your WSDL or the describe call for the appropriate names.

      63,.Variable does not exist: Access_Token__c 64.Variable does not exist: expire in seconds__c
      Same on 101, 105, 144, 148 line,
      Please help, it will be greatful


      • Amit Singh April 4, 2019 / 12:03 pm

        Hi, Did you created Access_Token__c Field on LinkedIn_Information__c Object?


  2. Deepika October 7, 2018 / 5:06 am

    Hi Amit,

    I am getting below error while clicking on “Complete Authorization”:
    Unexpected Error while communicating with LinkedIn API. Status Bad Request and Status Code 400

    Please help.

    Deepika Ghose


  3. RUSSELL July 10, 2018 / 1:26 pm

    Hi – do you have example code that shows how you replace the references to the custom setting with a custom object name and fields please.


    • Amit Singh July 11, 2018 / 5:04 pm

      Hi Russel,

      No. I do not have but I will post them soon with Custom Object and Updated Code.


      • Amit Singh July 12, 2018 / 5:07 am

        Hi Russel,

        I have updated the code to Use the Custom Object and also added a new feature by which you can share the post to Linkedin from the Code.

        Let me know if you have queries


  4. Akash April 15, 2018 / 1:22 pm

    Hi Amit,

    Thanks for providing such awesome implementation. It’s working perfect.!!

    I have below requirement. Please guide me:

    Req : I want to fetch my contact’s LinkedIn profile’s basic information (Salesforce standard contacts)

    Can you please guide me, what all changed needs to be done in your implementation to achieve my requirement?

    Any help would be highly appreciated

    Thanks a ton.!!


    • Amit Singh April 16, 2018 / 7:12 am

      Hi Akash,

      You want to fetch the Basic profile information of your Salesforce Contacts correct?
      To get the information of your contact your contact must authorize the application atleast once if contact has not authorized the linkedIn application then you can get their information.

      You wanted to fetch the LinkedIn contact information. If so refer below link for the same


      • Akash April 16, 2018 / 9:06 am

        Hi Amit,

        Thanks for the reply.!! Yes I want to fetch the basic profile information of my contact records.

        Can you please guide me below points :

        1) How my contacts should authorize the application? (If any code changes needed, please let me know)

        2) How to make the api callout request for specific contact’s LinkedIn’s basic profile information?

        Also, I’ve gone through the below link :

        It has been mentioned that LinkedIn doesn’t have any way to refresh the access token. So if the current access token get’s expired, is there any automated way we can update it in apex class?



      • Amit Singh April 16, 2018 / 10:23 am


        Put detail page button on the contact level which will open the LinkedIn authentication page and after you get the response from the LinkedIn save the response into the Custom Object.

        To refresh the access token Refer the given link


  5. harish February 21, 2018 / 9:40 am

    when i click on get basic info I am getting this error…

    List index out of bounds: 0
    Error is in expression ‘{!doFetchBasicInfo}’ in component in page linkedlnoauth: Class.LinkedlnoAuthController.doFetchBasicInfo: line 100, column 1

    An unexpected error has occurred. Your development organization has been notified.

    when I click on complete authorization :

    Access Token1: Access Token1: data value too large: AQUyRtz3_y2kJ7YnBVqXX8WEtKzUKw0hhH3_QTY1d0A_SCsIYiunij5HpNg5iu3FFIeyDTbOltLP3wp_1mpM2xmDais9F6IdFnU7Hwg0CFUKY6cF9BQh0dM1N2YbK2fztK4QSIEXVo8NdEHzop3elyt1GDcwXAzcWqa9qHr41MEWo1H6ndvctcxd84WKOScpcsxr11UBqVI3vJ2P3mC5QoVaT5LTaH3bK6cKmpAhmJgJ8k7RcyRvB9oVrb7913OMz_rDKP0qOm4SjB9JnJ1KR8nm9exQ_RRzc0nC4WHm6Nq8OgEScNYIXe55I_Ak-sUUPQbTh7IKFIxU1djAppLshNyEwO51Qg (max length=255)
    Unexpected Error while communicating with LinkedIn API. Status OK and Status Code 200
    Congrattzzzzz….. You have done successfull Integration with Linkedln


    • Amit Singh February 21, 2018 / 12:53 pm

      Hi Harish,

      Need to check the below thing –
      1 – Access Token1: data value too large: Error because access token length is more than 255 Chars. As a solution Create a custom Object with the Exact Value and for Access and Refresh Token use TextArea Long instead of Text Field. And then use that custom Custom Object instead of LinkedIn_Token_Info__c Custom Setting


  6. hanitha February 7, 2018 / 5:19 am

    I have lot of job openings in my job opening object(salesforce) after completion of salesforce and linkedin authorization automatically whatever job postings are there in job opening object that all openings automatically should post in my linkedin

    pls Amith help me regarding to do


    • Amit Singh February 7, 2018 / 7:32 am

      Hi Hanitha,

      For this we need to make some other API Call to post the Job form Salesforce to LinkedLn automaticlly. Let me do the test from my side and then I will post the code here in the comment Section.


    • Amit Singh February 7, 2018 / 11:21 am

      Hi Hanitha,

      I have checked and tested the same using the API Console of the LinkedIn and below are the details with the URL, header and body that you need to use while making callout from the salesforce.

      1- URL Endpoint –
      2 – Header – Content-Type : application/json
      3 – Header – x-li-format : json
      4 – Body in json format and below is sample body
      “comment”: “Check out!”,
      “content”: {
      “title”: “LinkedIn Developers Resources”,
      “description”: “Leverage LinkedIn’s APIs to maximize engagement”,
      “submitted-url”: “”
      “visibility”: {
      “code”: “anyone”

      In your case you need to develop the dynamic body and need to make the callout from the apex trigger with @future method.

      Hope this will be useful for you 🙂



  7. hanitha February 7, 2018 / 5:13 am

    When i click on the complete authorization i am getting error:

    Unauthorize endpoint: An Administer must go to Setup -> Administer -> Security Control -> Remote Site Setting and add Endpoint

    which access token end point i have to give


    • Amit Singh February 7, 2018 / 5:37 am

      Add -> “” url into the Remote Site Setting


  8. Ankit November 30, 2017 / 9:52 am

    Thanks for the solution, but I am facing issues during implementation of above example.

    I am using my developer (free) org, in this I am facing an issue while I am clicking on a “Complete Authorization” Button. facing this below issue:

    15:06:47:863 USER_DEBUG [87]|DEBUG|#### Exception Excuted Class.selflearning.LinkedlnoAuthController.doGetAccessToken: line 76, column 1 Upsert failed. First exception on row 0; first error: STRING_TOO_LONG, Access Token: data value too large: AQXoXkOHB-jcDKI2Vehp3OJS2ajjzaPu-7CVLufzzqbxLPR0_R4sW3pSaJkZZVowRlpVjhptiUmV-Op-2bXDTa7CvBkcSwMBQxKpQQsWVw_FRPR97EsAbXvEIrJEamNfpOlyNAZZ0LdFwHHqyuFiUQqhIfbfH9NIK4GDbB2Xj46O4T_-_Z-pWM5cLjy2uwwGH0V2ldChwwJ0WgN7A7qAoLdgO2yC1zmBHQbKyRkNz1y5MWRQP8VWDYQvpp3Mu4_0DsyPijHY_VDuuxTmx30Tmhz1IKoJqVGtdL2GMcTgH4gt9pKz6i6oxC2ZDtWvmUaMldIxEaDJr_LzatOoqxRJ6b3Zk7TsVA (max length=255): [selflearning__Access_Token__c]


    where field (selflearning__Access_Token__c) of custom setting is of text type with 255 max character.

    Have you any idea how to resolve this.

    Thanks in advance


    • Ankit November 30, 2017 / 11:24 am

      Thanks Amit Singh for the nice startUp. I did it


    • Amit Singh November 30, 2017 / 4:42 pm

      This issue is because that the value of Access Token is larger than 255 character. As an alternative create a custom object with the same attribute as custom setting and for access token create text area long field instead of Text and make the necessary changes into the code replace custom setting in the code.


      • Ankit December 5, 2017 / 6:28 am

        Hey Amit, thanks for reply.

        I did it by same logic on same day.

        Nice setup/plateform you are providing for learning.

        Keep it up. 🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s