When trying to connect LinkedIn to n8n using the LinkedIn OAuth2 API credential, I get this error after clicking “Connect my account”:
Error message:
Error: Insufficient parameters for OAuth2 callback.
Received following query parameters: {
"error":"unauthorized_scope_error",
"error_description":"Scope \"w_organization_social\" is not authorized for your application"
}
Failed to connect. The window can be closed now.
What’s happening:
I click “Connect my account” in n8n
LinkedIn’s login page loads (I can see it)
I authenticate with my LinkedIn credentials
LinkedIn asks for permission to access my account
Instead of completing the connection, I get the error above
Created a LinkedIn Developer app Added Client ID and Client Secret to n8n credential Set “Connect using” to “Standard” (not Community Management) Filled in the OAuth Redirect URL in n8n: https://asim.sg-node8n.serverdoor.com/rest/oauth2-credential/callback My n8n instance is self-hosted on a VPS and accessible via HTTPS
My Setup Details
n8n instance: Self-hosted on VPS at asim.sg-node8n.serverdoor.com (HTTPS)
LinkedIn app type: Sign in with LinkedIn (Standard)
yeah that w_organization_social scope error is a linkedin app permissions issue, not your redirect uri. in the app settings on the linkedin developer portal, you need to explicitly request that scope — just having it in your oauth config doesn’t give you the permission to use it. check if your app has it listed under “products requested” or “sign in permissions”. if its grayed out, your app might not be approved for that scope yet (linkedin takes a while to approve some of them). if thats not it, sometimes switching to the basic openid scope first and testing that works helps isolate whether its a credential config issue or a permissions one
Thanks for breaking that down! That makes total sense now.
Just to clarify: I’m just trying to post to my personal LinkedIn profile, not a company page. And looking at my app settings, I already have the w_member_social scope approved, which is what I need for personal posts.
But the testing with minimum scope is a great idea; I didn’t think to try it out like that.
I’ll report back with results. Thanks for the guidance!
Thanks for getting back! I haven’t tried that yet. I was trying to use the native Lk node first since I thought that would be simpler , also in linkedin node I can also update with a media, but going to try the http request ! thanks a lot
glad that makes sense! yeah w_member_social is all you need for personal post publishing — w_organization_social is strictly for company page content so you can safely ignore it for your use case. once the scope list is clean the connection should go through without issues. looking forward to hearing how the test goes
hi @Asim_Arman
One thing that hasn’t really been called out yet is that this does not look like a redirect URI problem. The callback is reaching n8n, but LinkedIn is rejecting the authorization because w_organization_social is being requested and your app is not allowed to use it. So if your goal is to post to your personal profile, I’d check whether the credential is still requesting organization access at all. In n8n, the Organization Support option is what adds w_organization_social , so I’d make sure that is off and then recreate the credential from scratch before reconnecting.
I’d also verify that your LinkedIn app has the Share on LinkedIn product enabled, since that is what grants w_member_social for personal posting. Once the credential connects cleanly with only the member scope, then the LinkedIn node or HTTP Request path should both be viable.
Thanks for the clarity on Organization Support — that’s often the key detail people miss when setting up LinkedIn credentials. Clean scope list from the start saves a lot of back-and-forth.
I set it up to only ask for personal posting permissions (w_member_social), but n8n’s LinkedIn integration kept automatically requesting w_organization_social (which is for company pages). That is why Linkedin kept rejecting it. So I am trying the token system
Thanks for breaking that down! I’ve been testing exactly what you suggested - toggling Organization Support and recreating the credential fresh. But I’m hitting a catch-22:
With Organization Support ON: w_organization_social is rejected (not approved for my app) With Organization Support OFF: r_emailaddress is rejected (legacy scope, not in my app)
So it seems n8n’s LinkedIn credential is requesting scopes beyond what I can control with the UI toggles.
Since my goal is just personal profile posting, I’m going to build the OAuth flow manually using HTTP Request nodes - that way I can request only w_member_social and avoid both of these scope conflicts entirely.
I’ll report back once I have it working. Thanks for the guidance!
Good move! The manual OAuth flow approach is solid — it gives you complete control over exactly which scopes to request, no unnecessary scope creep. That’s the right strategy for this use case. Let me know how the testing goes!
Ok so it worked! Thanks for helping so much. I basically had to turn off the Organization Support and than the legacy scope aswell, and bascially create another new client secret and it has worked!
The error w_organization_social scope is not authorized usually means your LinkedIn app does not have that product enabled. Go to your LinkedIn Developer App > Products tab and check if you have “Share on LinkedIn” or “Marketing Developer Platform” added. The w_organization_social scope specifically requires the Marketing Developer Platform product which needs to be requested and approved by LinkedIn separately.
Also double check that the OAuth 2.0 Authorized Redirect URLs in your LinkedIn app settings exactly matches what n8n is using. Even a trailing slash difference will cause issues.
Awesome! Glad you got it sorted and that the manual approach is working out. That’s exactly the kind of flexibility you get when you handle the OAuth flow yourself. Happy to have helped — enjoy building!
Nice, glad you got it working @Asim_Arman !
Please consider leaving a like or marking the reply that helped you as the solution
It makes it easier for others to find answers and supports community contributors.