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

# How to connect

> How to connect the HighLevel data source to Adriel: authorize a HighLevel location via OAuth, then pick one CRM data type per data source.

HighLevel (also known as GoHighLevel) is a CRM and marketing automation platform. Connecting it imports CRM and marketing objects — contacts, opportunities, invoices, forms, calendar events, email campaigns, and phone numbers — into Adriel via OAuth. HighLevel exposes one data type per data source, so bringing in multiple object types means repeating the setup once per type.

## Before you connect

The following are required:

* A HighLevel account with permission to authorize a third-party Marketplace app on at least one location (sub-account). The connector requests read-only access across the agency, location, and individual object scopes.
* A decision on which **data type** to import first — contacts, opportunities, invoices, forms, calendar events, email campaigns, or phone numbers. Each data type is connected as a separate Adriel data source.
* A HighLevel server location of **EU** or **KR**. Other server regions are not currently supported.
* Published calendars, if the calendar-events data type is being imported. Drafted calendars are skipped during sync.

## Connect HighLevel

<Steps>
  <Step title="Authorize a HighLevel account">
    On the **Data Sources** page, search for **HighLevel** and select it. Sign in to HighLevel in the pop-up window using an account with permission to authorize Marketplace apps.
  </Step>

  <Step title="Choose the location">
    On the HighLevel chooser screen, select the **Location** (sub-account) to connect. Agency-level accounts can choose from all locations they administer.
  </Step>

  <Step title="Grant read access">
    Click **Allow** to grant the requested read-only scopes. HighLevel displays the exact scope list on the consent screen: companies, contacts, businesses, users, oauth, locations, location custom fields, invoices, calendars, calendar events, scheduled emails, forms, opportunities, and phone numbers.
  </Step>

  <Step title="Select the data type">
    On the data source settings, select the **Data Type** to import: **Contacts**, **Opportunities**, **Invoices**, **Forms**, **Calendar Events**, **Email Campaigns**, or **Phone Numbers**.
  </Step>

  <Step title="Submit">
    Click **Submit** to complete the connection. Initial data availability can take up to one business day. To import an additional data type from the same location, repeat the steps and select a different data type.
  </Step>
</Steps>

## What gets imported

The imported records depend on the selected data type: contacts with custom fields resolved by name, opportunities flattened to one row each, invoices for the location, form submissions, calendar events across published calendars for a fixed window (now − 3 days through now + 50 days), scheduled email campaigns (also reachable via the `emails` alias), and phone-system numbers attached to the location. Sync runs every two hours, with full refreshes at hours 0, 6, 12, and 18 UTC and partial refreshes the rest of the time.

For the complete field list and per-data-type behavior, see the [HighLevel data reference](/data-sources/g-n/highlevel/data-reference).

## Troubleshooting

<AccordionGroup>
  <Accordion title="The connection is disconnected after a token error">
    Two HighLevel token errors trigger automatic disconnection: `invalid_grant` (refresh token rejected) and `Unauthorized` (access token rejected). Reconnect via Connections → HighLevel → Reconnect and re-authorize against the same HighLevel account.
  </Accordion>

  <Accordion title="Calendar events look stale or only cover a short window">
    Calendar events are intentionally limited to the fixed window of now − 3 days through now + 50 days and are fully re-fetched on every sync. Events outside that window are not retained.
  </Accordion>

  <Accordion title="Custom contact fields are missing">
    Custom field names are resolved at sync time via the HighLevel custom-fields API. If that lookup fails, contacts are still imported, but the custom-field columns are omitted from the data.
  </Accordion>

  <Accordion title="Email Campaigns and Emails appear to be different data types">
    They are the same. **Email Campaigns** is the canonical label and `emails` is an accepted alias. Either choice results in the same import behavior.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="HighLevel data reference" href="/data-sources/g-n/highlevel/data-reference">
    Fields, data types, and per-type sync behavior for HighLevel.
  </Card>

  <Card title="HighLevel FAQs" href="/data-sources/g-n/highlevel/faqs">
    Common questions and expected behaviors for the HighLevel data source.
  </Card>

  <Card title="How to connect HubSpot Deals" href="/data-sources/g-n/hubspot-deals/how-to-connect">
    Connect HubSpot deal records as a CRM data source.
  </Card>

  <Card title="How to connect Active Campaign" href="/data-sources/a-f/active-campaign/how-to-connect">
    Connect Active Campaign marketing automation data.
  </Card>
</CardGroup>
