# GoHighLevel setup for PopMCP

You end up pasting two things into PopMCP: a Private Integration Token (a one-time-visible string starting with pit-) and the Location ID of the sub-account it should control.

- Auth: API credentials
- Setup time: 6 min
- API base URL: https://services.leadconnectorhq.com
- Credentials screen: https://app.gohighlevel.com/
- Provider docs: https://marketplace.gohighlevel.com/docs/

## Before you begin

- A HighLevel (GoHighLevel) sub-account you can open
- Admin user on that sub-account, or agency access to it
- Private Integrations visible under Settings. On older accounts you may have to switch it on under Settings -> Labs first
- A free slot for a new token. Each location holds at most 5 Private Integration Tokens

## Get your credentials

### 1. Open the sub-account and copy its Location ID

Switch into the sub-account PopMCP should control and open Settings -> Business Profile. Copy the `/location/<id>/` segment out of the address bar.

Screen: https://app.gohighlevel.com/

### 2. Go to Settings -> Private Integrations

In the sub-account left nav click Settings, then Private Integrations in the settings list. If the item is missing, switch it on under Settings -> Labs and reload.

Screen: https://app.gohighlevel.com/

### 3. Name the integration and tick the scopes

Click Create new Integration, name it `PopMCP`, and write a one-line description. Tick View/Edit Contacts, View/Edit Conversations, View/Edit Opportunities, View Calendars and Edit Calendar Events, plus the invoice scopes if you bill through HighLevel.

### 4. Copy the token before you close the dialog

Click Copy token on the `pit-...` value in the confirmation dialog. If you lose it, delete the integration and create a new one.

### 5. Paste the token and Location ID into PopMCP

Put the `pit-...` string in Private Integration Token and the sub-account id in Location ID (sub-account), then click Connect.

## Fields PopMCP asks for

- Private Integration Token (token) [required]: HighLevel → Settings → Private Integrations → Create new integration → select scopes → copy the token (shown once). Sent as Authorization: Bearer. Stored encrypted, used server-side only. Grant every scope you want the AI to use (e.g. contacts, conversations, opportunities, calendars, invoices, payments). A call to an ungranted scope is rejected.
- Location ID (sub-account) (locationId) [required]: The sub-account this connection controls. Find it in the sub-account under Settings → Business Info, or copy it from the app URL (the /location/<id>/ segment). Paste just the id, or a URL that contains it. We'll pull it out. Every call is scoped to this sub-account automatically.

## Verify

PopMCP shows the connector as Connected and names the sub-account (for example "Northwind Dental") next to it. Ask the assistant to list a few recent contacts. If that returns rows, both the token and the Location ID are right.

## Troubleshooting

### 401 Unauthorized on every call

Cause: The token was copied with trailing whitespace, was rotated or deleted, or you pasted an agency-level token while asking for sub-account data.

Fix: Create a fresh Private Integration inside the sub-account itself and paste the new pit- token.

### 403 Forbidden on some tools only

Cause: That endpoint's scope was not ticked when the integration was created. A call to an ungranted scope is rejected outright.

Fix: Open Settings -> Private Integrations, use the row menu to Edit the integration, add the missing scope, then reconnect in PopMCP.

### Connection saves but returns data for the wrong business

Cause: The Location ID came from a different sub-account, or from an agency-level URL.

Fix: Switch into the correct sub-account, re-copy the /location/<id>/ segment from the URL, and update the Location ID field.

### Private Integrations is missing from the Settings list

Cause: The feature has not been switched on for the account.

Fix: Go to Settings -> Labs, enable Private Integrations, reload, and the menu item appears.

### "Cannot create more integrations"

Cause: The location already holds the maximum of 5 Private Integration Tokens.

Fix: Delete an unused integration, then create the PopMCP one.

### The token stops working after a scheduled rotation

Cause: Someone used "Rotate and expire this token later" on the row menu, which retires the old value.

Fix: Copy the new token from the rotation dialog and paste it into PopMCP before the old one expires.

---

Source: https://www.docs.popmcp.com/docs/integrations/go-high-level/