> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hiveku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect GoHighLevel (GHL)

> Sync contacts and pipelines with GoHighLevel

GoHighLevel (GHL) is a CRM integration in Hiveku. Use it to sync contacts between CRMs and mirror pipeline stages.

<Info>
  Social posting no longer goes through GHL. Hiveku publishes to Facebook, Instagram, LinkedIn, X, TikTok, and Google Business Profile directly — see [Connect Social Accounts](/how-tos/connect-social-accounts).
</Info>

<Info>
  GHL uses its own Marketplace OAuth flow — you don't need to set up a Google or Microsoft app. A few clicks through GHL's app install and you're connected.
</Info>

## What Syncs

* **Contacts** — bidirectional sync between Hiveku CRM contacts and GHL contacts
* **Pipeline stages** — mirror your GHL pipeline structure into Hiveku
* **Tags** — configurable bidirectional sync

<Info>
  Hiveku handles company-level and location-level GHL tokens automatically. Company tokens exchange for location-scoped tokens as needed — you don't have to manage that.
</Info>

## Before You Start

* A GHL account (agency or sub-account) with access to the location you want to connect
* Admin access in Hiveku so you can authorize integrations

## Connect GHL

<Steps>
  <Step title="Open the integration">
    In Hiveku, navigate to **CRM > Settings > Integrations**.
  </Step>

  <Step title="Start the GHL Marketplace install">
    Click **Connect GHL**. Hiveku opens a GHL Marketplace install link in a new tab.
  </Step>

  <Step title="Sign in to GHL">
    Log in with your GHL agency or sub-account credentials. If you're already signed in, you'll skip straight to the next step.
  </Step>

  <Step title="Select the sub-account">
    Pick the sub-account (location) you want to connect. If you manage many locations, you'll see a picker; otherwise, GHL auto-selects your default.
  </Step>

  <Step title="Approve permissions">
    Review the permissions Hiveku is requesting — typically contact, pipeline, and conversation scopes. Click **Allow**.
  </Step>

  <Step title="Return to Hiveku">
    GHL redirects you back to Hiveku with the location connected. The integration page shows the connected location name and sync status.
  </Step>
</Steps>

## How the Sync Works

* **Auto-sync** runs on a schedule — typically every few minutes, adjusted based on activity level
* **Manual sync** — trigger an immediate sync from the integration panel
* **Bidirectional writes** — creating a contact in Hiveku CRM syncs to GHL within a minute or two, and vice versa
* **Conflict resolution** — configurable per object; default is "last write wins" but you can set one side as the source of truth for specific fields

## Tag Sync

Tag sync is configurable:

* **Both ways** — tags created in either system appear in the other
* **GHL to Hiveku only** — GHL is the source of truth
* **Hiveku to GHL only** — Hiveku is the source of truth
* **Off** — no tag sync

Set this in the integration settings after connecting.

## Connect Multiple Sub-Accounts

If you manage multiple GHL locations, repeat the connect flow and pick a different sub-account each time. Each becomes its own connection in Hiveku with its own sync settings.

## Verify the Connection

<Steps>
  <Step title="Check the connection status">
    The integration panel should show the connected location name and a recent successful sync timestamp.
  </Step>

  <Step title="Create a test contact">
    Add a contact in Hiveku CRM with a unique test email. Within a few minutes, it should appear in GHL under the connected sub-account.
  </Step>

  <Step title="Reverse test">
    Create a contact in GHL with a different test email. Within a few minutes, it should appear in Hiveku CRM.
  </Step>
</Steps>

## Manage or Disconnect

From the integration panel you can:

* **Trigger a manual sync**
* **View sync history** — last run, record counts, errors
* **Change conflict resolution rules**
* **Disconnect** — removes the integration and stops syncs (existing data stays in both systems)

<Warning>
  Disconnecting doesn't delete data from either system. But reconnecting later can create duplicates if contacts were created in both systems in the meantime. Plan reconnections carefully if you've been running disconnected for a while.
</Warning>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The sub-account I want isn't in the picker">
    You need access to it in GHL. If you're connecting via an agency account, confirm the agency has the sub-account attached. If you're a sub-account user, make sure your user has the permissions required for the Marketplace install.
  </Accordion>

  <Accordion title="Token expired or 'Unauthorized' errors in sync">
    Re-authorize the integration from the integration panel. Click **Reconnect** and run through the GHL Marketplace flow again — this issues a fresh token.
  </Accordion>

  <Accordion title="Contacts aren't syncing">
    Check a few things:

    * Manual sync — does it pick up new contacts?
    * Field mapping — are custom fields mapped correctly? Unmapped fields are dropped.
    * Location ID — make sure the Hiveku connection points to the same GHL sub-account where the contacts live.
    * Tag filters — if you've set tag-based filters, contacts without the required tags are excluded by design.
  </Accordion>

  <Accordion title="Duplicate contacts after reconnecting">
    If both systems created the same contact while disconnected, they'll appear as duplicates after reconnecting. Use GHL's or Hiveku's merge tools to consolidate. Going forward, keep the connection active to prevent drift.
  </Accordion>

  <Accordion title="Contact data conflicts (same contact edited in both systems)">
    The default resolution is "last write wins" — whichever system updated the contact most recently takes precedence. You can change this per-field in the integration settings to make one system the source of truth.
  </Accordion>
</AccordionGroup>

## What's Next?

<CardGroup cols={2}>
  <Card title="Invite Your Team" icon="user-plus" href="/how-tos/invite-team">
    Get collaborators into Hiveku
  </Card>

  <Card title="Send Emails" icon="paper-plane" href="/how-tos/send-emails">
    Use your CRM data in email workflows
  </Card>
</CardGroup>
