Need help please with OAuth2 GHL Api to n8n

Describe the problem/error/question

hey everyone, been stuck on this for a while and could really use some help.

I’m trying to connect my GoHighLevel marketplace app to n8n using OAuth, but it keeps failing at the authorization step. The flow seems to work right up until GHL tries to redirect back to n8n, then everything breaks.

My setup:

  • n8n Cloud
  • Custom GHL marketplace app (currently in Draft status)
  • Using the standard HighLevel OAuth2 API credential in n8n
  • Redirect URL set to https://oauth.n8n.cloud/oauth2/callback

What happens:

When I click “Connect my account” in n8n, it redirects me to GHL fine. I see the login screen, click “Login”, and then I get hit with:

error.noAppVersionIdFound

And then n8n shows “Something went wrong. Please try again!”

Sometimes I also get:

HttpException: No integration found with the id: [my app id]

What I’ve tried so far:

  • Triple-checked the Client ID and Secret match between GHL and n8n
  • Made sure redirect URL is exact (no typos, no trailing slashes)
  • Deleted and recreated the n8n credential multiple times
  • Even recreated the entire GHL marketplace app from scratch
  • Tried the test installation link from GHL - it just loads forever with a spinner
  • Tested in incognito mode

The GHL app itself seems fine - I’ve filled out all the profile stuff, set pricing to Free, added all the OAuth scopes I need (contacts, opportunities, calendars, conversations). The app shows up in my GHL dashboard and I can see the Client ID/Secret just fine.

My questions:

  1. Does the GHL app need to be fully published/submitted for review before OAuth works? Or should Draft status be enough for testing?

  2. Has anyone actually gotten a custom GHL marketplace app working with n8n OAuth? I’m starting to wonder if this is even possible or if I should just use their Private Integration (API key) instead.

  3. Could this be an issue with how n8n Cloud handles the OAuth callback for GHL specifically?

I know Private Integration would be easier but I’m building something that needs multi-tenant support eventually, so I’d really like to get OAuth working if possible.

Would appreciate any help or if someone’s been through this before and can share what worked for them. Thanks!

What is the error message (if any)?

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Welcome to the community @Leo_Diverdi

The error.noAppVersionIdFound error is specific to GoHighLevel’s marketplace app OAuth flow.

The Problem

GoHighLevel marketplace apps require an App Version ID in the OAuth flow, which is different from regular OAuth apps. The standard n8n HighLevel OAuth2 credential doesn’t include this parameter, causing the authorization to fail.

2 Likes

You can switch to Private Integrations, as Oauth2 using API Keys is being phased out by HighLevel (for instance, new subaccounts can’t create and API key anymore). It’s a simpler authentication, based on Header Auth with Bearer Token, no more Oauth. See here: Private Integrations | HighLevel API.

In GHL go to Settings, Private Integrations and create a new one, define the scopes you need (API docs says what scopes are needed for each entry point https://marketplace.gohighlevel.com/docs/) and it will give you a bearer auth Token you can use in n8n with Bearer Auth generic credential type (better that way rather than plaintext in the parameters of a node, for security reasons).
Native Highlevel nodes don’t work with Private Integrations (to this date), as they can’t be used with a Bearer Auth credential, so you need to create your own HTTP Request nodes using the API docs. Sounds like a PITA, but good thing is you can use APIs that are not implemented in the native node i.e. Search Contacts (https://marketplace.gohighlevel.com/docs/ghl/contacts/search-contacts-advanced/index.html ClickUp ), search pipelines, etc.
Hope devs update HighLevel nodes to use Private Integrations soon.

2 Likes

Were you able to figure out anything here? I’m having the same problem.

Thank you so much!

I kept facing the same error ‘No Integration found with the id: xxxxxxx’ and had to implement a workaround to solve this problem.

On the URL, I appended this

&version_id=[[your_ghl_app_id]]

You can get the GHL App Id from here

Then, it opened the right screen and I was able to proceed with the authentication.

Hope this helps.

Hi @Leo_Diverdi , welcome!
If your question has been resolved, please consider liking the reply or marking it as the solution, as this helps the community and the supporters who contribute their time :slight_smile: