n8n-nodes-gohighlevel-pit
v0.1.0
Published
n8n community node for GoHighLevel v2 API with Private Integration Token (PIT) auth
Readme
n8n-nodes-gohighlevel-pit
GoHighLevel v2 API node for n8n, built around Private Integration Token (PIT) auth. The built-in HighLevel node in n8n is OAuth2-only and silently breaks on Custom Fields. This node uses PIT auth — no OAuth redirect, no expiring refresh tokens — and fixes Custom Fields on Contacts and Opportunities. It also adds live Pipeline/Stage dropdowns, a Tags resource, and full CRUD on Custom Values, none of which the built-in node covers.
Comparison
| Feature | Built-in HighLevel Node | This Node | |---|---|---| | Auth method | OAuth2 only (known refresh bugs) | PIT + OAuth2 | | Custom Fields on Contacts | ❌ Broken | ✅ Working | | Custom Fields on Opportunities | ❌ Not supported | ✅ Working | | Pipeline/Stage dropdowns | ❌ Paste IDs manually | ✅ Live search | | Tags resource | ❌ Not available | ✅ Add / Remove | | Custom Values resource | ❌ Not available | ✅ Full CRUD | | Contact Search (POST) | ❌ Not available | ✅ Available | | Pipelines queryable | ❌ Not available | ✅ Available |
Installation
Via n8n UI (self-hosted):
Settings → Community Nodes → search n8n-nodes-gohighlevel-pit → Install
Via npm:
npm install n8n-nodes-gohighlevel-pitNot yet verified for n8n Cloud. Verification in progress.
Setup: Getting your Private Integration Token
- Log into your GHL sub-account (not the agency dashboard)
- Go to Settings → Private Integrations → Create New Integration
- Name it anything — e.g.
n8n Automation - Grant the following scopes:
contacts.readonlycontacts.writeopportunities.readonlyopportunities.writelocations/customValues.readonlylocations/customValues.writelocations/customFields.readonlylocations/customFields.write
- Click Create — copy the token immediately, it is shown only once
- Also copy your Location ID from Settings → Business Profile
Setup: Configuring the credential in n8n
- Add a GoHighLevel node to your workflow
- Click Credential → Create New → GoHighLevel API
- Paste your Private Integration Token
- Paste your Location ID
- Click Save — a green checkmark confirms the connection
Operations
| Resource | Operations | Notes |
|---|---|---|
| Contact | Create, Get, Update, Delete, Get Many, Search | Custom Fields supported on Create and Update |
| Opportunity | Create, Get, Update, Delete, Get Many | Pipeline and Stage use live searchable dropdowns. Custom Fields supported. |
| Pipeline | Get Many | Read-only. Populates the Pipeline and Stage dropdowns in Opportunity operations. |
| Tag | Add, Remove | Adds or removes tags on a contact. To read a contact's tags, use Get Contact — tags are returned in the contact object's tags field. |
| Custom Value | Create, Get, Get Many, Update, Delete | Location-level merge variables used in GHL email and SMS templates. |
Known Limitations
- OAuth2 support is included as a secondary auth option, but PIT is recommended. OAuth2 refresh token failures with the GHL API are a known n8n issue outside the scope of this node.
- Not yet verified for n8n Cloud. Self-hosted n8n is fully supported.
- Tag reading is done via Get Contact, not a standalone Get Tags operation. GHL's v2 API does not expose a dedicated endpoint for listing tags on a contact — they are returned as part of the contact object.
Contributing
Fork the repo, create a branch, open a PR. Bug reports and issues are welcome on GitHub.
