LinkedIn Oauth profile data


I’ve had users able to log in with LinkedIn since January and was able to take a whole range of info from their LinkedIn accounts to bubble such as email address, public url, about me, etc etc. And now suddenly all of the options have disappeared. Has something changed recently in LinkedIn permissions?


I’m working with LinkedIn now. I can retrieve user’s name, photo, id.
Do you mean email in database, for example?

Yes, now all I can get is the name, photo and ID. Where as before I got the email address, public url, about me section, and their intro line. Most crucial is email really - now I have users for whom I don’t have email addresses.

Oh, now I’m confused. Because I thought that I have a bug and test emails are not shown in the database. Most likely this is due to some kind of update.

They removed email address from the profile in 2.0 - it is now a scope of r_liteprofile as standard.

You now need to request r_emailaddress scope and do another call to get the email address.

1 Like

I don’t understand what I need to do now. Do I have to remove the existing plugin and start over? At the moment my plugin page looks like this… is this all outdated?

1 Like

Also just realised that page you shared was created last year. I’ve been retrieving the email addresses up until a couple of weeks ago so I don’t understand what’s changed.

Linkedin Deprecated v1.0 in the last few weeks.

Ok, thanks. So in terms of what I need to do… is the LinkedIn plugin by bubble that I’m using now redundant? I need to do something different?

I tried to use the plugin myself recently and found the same. I found this post where Neerja links to a video walkthrough of how to create your own LinkedIn sign-up connection using the API connector. I haven’t got to it yet but it seems straightforward enough.

1 Like

Thanks, I just watched the video and it looked straightforward so started to copy the steps but looks like LinkedIn has changed a fair amount already, so not much matches the steps in the video. Right now I’m waiting on LinkedIn to approve my product requests before I can do anything, which wasn’t mentioned in the vid at all. On LinkedIn it says this approval can take up to 15 days! I hope not!

Summary of changes from LinkedIn v1 to v2 API:

  1. Scope
  • instead of r_basicprofile, you are now expected to use r_liteprofile which only shares 4 fields id, first and last names, profile picture id
  • r_emailaddress can be added to scope to get email but this triggers a review process in LinkedIn which can take 12 hours for Product Requests to show under Added Products and then Permissions
  1. User profile endpoint has changed

  2. Email is pulled from a different endpoint

  3. We recommend using LinkedIn plugin from the marketplace as it uses a slightly different method than the API Connector and results in fewer issues in our testing. We’ll update this thread with the API Connector method as well shortly. For plugin:

  • API key = Client ID and Secret key = Client Secret
  • Scope is r_liteprofile by default and does not pull emails for authenticated user
  • Enable generic redirect in Bubble plugin tab and add that to LinkedIn Developer account app settings
  1. Linkedin Developer account app views



Thanks so much, @neerja!

You note the LinkedIn plugin provided by Bubble is the recommended method; is that now updated to API v2 and includes user email addresses?

1 Like

@jwtuckr Yes, LinkedIn plugin by Bubble has been updated to v2 API but does not pull in email address as it’s using r_liteprofile scope. LinkedIn has updated its policy to make accessing emails harder and the app approval in LinkedIn can be delayed using r_emailaddress scope

API Connector setup:

  1. Call - id added in user profile endpoint and email removed from key path

  2. Profile fields - Initializing call will show locale like en_US for fields where this might not work for other countries unless you specify locale. See raw data for how to set this up manually. Plugin handles this for you automatically.

projection = (id,profilePicture(displayImage~:playableStreams),firstName,lastName)

To display image in an image element, get data from external API and select API’s body profilePicture displayImage~ elements’s identifiers’s identifier:first item

  1. Email - initializing call shows email returned as first item in elements(list)


Ok, so to collect the email address we should stick to the API Connector as it’s not available through the LinkedIn plugin?

@MrsHS Yes, the API Connector is currently the only method to get email from LinkedIn. However, we would recommend using the plugin and not using email if possible.

But there’d be no point in users signing up if I don’t capture their email because I can’t send them the weekly newsletter they opt in to, or the messages they receive in their inboxes in the platform I’ve built… I’ve tried to explore allowing users to sign up via LinkedIn and then request their email in an additional step in the sign up process but then I can’t apply the email to their user profile without making an additional email data field…

1 Like

Also what is the reason for recommending the plugin over the API Connector?

@MrsHS We recommend the plugin as it simplifies setup and parses data returned from the API for you. The changes were made by LinkedIn to separate email access from profile fields as users who use social login typically don’t want to share their email information with apps. You can always request this separately as part of opting into your newsletter.