How to Integrate GoHighLevel with Pearl Diver
Authorizing GoHighLevel via Pearl Diver dashboard and accessing Pearl Diver contacts in GoHighLevel
- A GoHighLevel account and valid login credentials
- Ensure you have connected an audience for the data you would like to send through the GoHighLevel integration, and this audience has the 'GoHighLevel' action selected
- Log in to your Pearl Diver dashboard
- Click the + icon next to Actions on the right hand side of the dashboard home page
- Click on GoHighLevel in the left hand panel
- Click Authorize - this will prompt you to log in to your GoHighLevel account
If you encounter issues during authorisation, try using a private/incognito browser window.
Step 2. Log in to GoHighLevel Integration
- A new window will open to authorize your GoHighLevel account and choose a sub account if needed


- Opportunities (opportunities.readonly opportunities.write): This permission is required to create and update opportunity contacts in GoHighLevel
- Contacts (contacts.readonly contacts.write): This permission is required to create and update lead contacts in GoHighLevel.
- Users (users.readonly): This permission is required by GoHighLevel for the authorization
Step 3: Choose mapping mode (Many : 1 vs 1 : 1)
By default, Pearl Diver uses Many : 1 mapping, meaning all audiences sync into the single Pearl Diver contact list without tagging. To switch to 1 : 1 tag‑based mapping:
-
In Pearl Diver, navigate to Actions and select the GoHighLevel integration card.
-
Under Audience Mapping Settings, change the mode from Many : 1 to 1 : 1 (Tag‑Based Mapping).
-
Click Update. A message will confirm the change.

How 1 : 1 tag‑based mapping works
-
In the next sync, Pearl Diver checks existing GoHighLevel tags. For every audience that has been created or modified—and for any new contacts added to existing audiences in the last 30 minutes, it creates a new tag in GoHighLevel named:
PDV | Audience Name(Tags aren’t recreated if they already exist.)
-
Contacts are still added to the Pearl Diver list, but each contact receives one or more tags corresponding to the audiences it belongs to. A contact appearing in multiple audiences will have multiple tags.
-
Switching back to Many : 1 doesn’t remove tags from existing contacts; it simply stops adding new ones. You can continue to use existing tags for segmentation.
Pearl Diver automatically maps core contact fields to GoHighLevel. You can customise this mapping through the Pearl Diver REST API or via Zapier if you need additional fields.
|
Pearl Diver field |
GoHighLevel field |
Notes |
|---|---|---|
|
First name |
First name |
Direct mapping |
|
Last name |
Last name |
Direct mapping |
|
Email address |
|
Direct mapping |
|
Phone* |
Phone |
Uses the first non‑empty value among company, personal, mobile and direct phone numbers |
|
Address** |
Address |
Uses the first non‑empty personal, company or professional address |
|
Job title |
Title |
Direct mapping |
|
Company name |
Business name |
Direct mapping |
|
Company domain |
Website |
Direct mapping |
|
(no field) |
Contact Source |
Always set to PearlDiver |
*For phone numbers the integration picks the first available number in this order: company, personal, mobile, then direct phone.
** For addresses the integration chooses the first available from personal, company, then professional addresses.
If you need additional fields (e.g., LinkedIn URL, industry, or custom properties), you can build a custom integration via the Pearl Diver REST API or Zapier.


