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

# Connecting GoHighLevel

> Connect your GoHighLevel (GHL) account to Voxworks with an API key, and understand the team default GHL calendar the booking tool falls back to.

## Overview

GoHighLevel (GHL) is a CRM integration. Connecting it links your GoHighLevel account to your Voxworks team so the [Book Calendar Appointment | Pro](/tools/calendar/ghl) tool can look up the caller as a GHL contact, check calendar availability, and create appointments in a GHL calendar during a call. On the Integrations page the card carries a **CRM** badge and the description "Connect your Go High Level CRM to sync contacts and create bookings".

The connection uses an **API key** — you create the key in GoHighLevel, paste it into Voxworks once, and Voxworks encrypts and stores it. There is no OAuth redirect; the connection completes immediately.

Until GoHighLevel (or another calendar provider) is connected, the calendar booking tool does not appear in the script editor's tool picker at all — connecting is the prerequisite for any GHL booking configuration.

<Note>
  Integrations are typically built out for specific clients, so the full functionality of GoHighLevel's interface might not be available. If your team needs additional features from this integration, contact the Voxworks team directly to discuss what can be added.
</Note>

***

## Getting your GoHighLevel API key

You create the key inside GoHighLevel, not in Voxworks. Voxworks uses it to search contacts, read calendar availability, create and cancel appointments, and read your location's timezone — so the key must belong to (and have access to) the GHL sub-account (location) whose contacts and calendar you want the assistant to use. The connect dialog reminds you that the key is found in your GoHighLevel account settings.

Copy the key before you leave GoHighLevel — you paste it into Voxworks in the next step, and Voxworks never displays it again after connecting.

***

## Connecting GoHighLevel to Voxworks

1. In the sidebar under **Admin**, open **Integrations**.
2. In the **Available Integrations** section, find the **Go High Level** card.
3. Click **Connect**. The **Connect Go High Level** dialog opens: "Enter your Go High Level API key to establish the connection."
4. Paste your key into the **API Key** field and click **Connect**.

| Field   | Required | Description                                                                                                                                                            |
| ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| API Key | Yes      | Your GoHighLevel API key. The field is masked as you type, and the key is encrypted before it is stored. The **Connect** button stays disabled until a key is entered. |

While the key is being saved the button reads **Connecting...**. On success the Go High Level card moves to the **Connected Integrations** section with a green **Connected** badge; the card's footer lists how many tools the integration provides.

<Note>
  Voxworks stores the key immediately and does not test it against GoHighLevel at connect time. A mistyped or revoked key only surfaces later, as availability or booking failures on calls — so double-check the key you paste, and run a test call after setup.
</Note>

***

## The team default GHL calendar

Every GHL booking needs a target calendar. The booking tool resolves it in this order:

| Priority | Source                                         | Where it is set                                                                                                                                                                         |
| -------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1        | The **calendar\_id** field on the booking tool | Per script step, in the tool's configuration panel. A string GHL calendar ID, e.g. `ocQHyuzHvysMo5N5VsXc`; accepts a literal value or a variable (type `/` in the field to insert one). |
| 2        | The team default calendar                      | Stored on your team's GoHighLevel connection. Used whenever the tool's calendar\_id field is left blank.                                                                                |

Leaving the tool's field blank and relying on the team default is the common setup when all your scripts book into one calendar; the per-step field is for teams that book different scripts into different GHL calendars.

Alongside the default calendar, the connection also stores your **GHL location** — the sub-account Voxworks searches for contacts and reads the timezone from. Unlike the calendar, the location has no per-script field; it always comes from the connection.

There is currently no screen in the app for editing the team default calendar or location — they are configured on your connection when you set up GHL booking. Speak to the Voxworks team for further custom configuration.

<Warning>
  If the tool's calendar\_id field is blank and no team default calendar is configured, availability checks and bookings fail on calls — the booking step routes to its failure branch and the assistant cannot book. Confirm the default is in place before putting a GHL booking script live.
</Warning>

***

## How GHL bookings behave on calls

The [GHL booking tool page](/tools/calendar/ghl) covers the full configuration; the behaviour worth knowing when you connect:

* **The caller must already exist as a contact in GoHighLevel.** Before booking, Voxworks resolves the caller in your GHL location: if a GHL contact is already linked to the caller's Voxworks contact record, Voxworks uses it directly; otherwise it searches GoHighLevel by the caller's phone number, then by email, and accepts the first result whose name matches the caller's Voxworks record. If no matching GHL contact is found, the booking cannot go ahead — the assistant cannot create a GHL contact mid-call, and the booking step routes to its failure branch.
* **Availability is fetched from the resolved calendar at call start**, so the assistant can offer times without mid-call delays. If the check fails — for example a wrong calendar ID or a revoked key — the failure is recorded under **System Notes** on the call's detail page in the **Call Log**.
* **Times follow your GHL location's timezone.** The timezone set on your GoHighLevel location takes precedence over your Voxworks team timezone for availability and spoken appointment times.
* **Successful bookings appear in your GHL calendar as confirmed appointments**, attached to the matched GHL contact, and the call's flow receives `{{calendar.*}}` variables it can speak or send — for example `{{calendar.booking_time_spoken}}` (string, e.g. `10:30 AM on Tuesday the 22nd of July`) and `{{calendar.booking_id}}` (string, e.g. `bkg_01HZXW`).

***

## Managing or removing the connection

Click the gear icon on the connected Go High Level card to open **Integration Settings**:

* **Status** — a **Connected** badge plus an **API Key** badge showing the authentication type. If the connection has failed, an **Error** badge appears here and on the card, with the error message.
* **Connection Details** — when the connection was made and a masked view of the stored API key.
* **Available Tools** — how many tools this connection enables.

To replace the key (for example after rotating it in GoHighLevel), disconnect and reconnect with the new key. If the card shows an **Error** badge, it offers a **Reconnect** button that reopens the connect dialog directly.

To remove the connection, click **Disconnect** in Integration Settings. The **Disconnect Go High Level?** dialog warns that disconnecting will stop active workflows using the integration, remove access to GoHighLevel features from your AI agents, and delete the stored authentication tokens. Any script step still configured with GHL booking will fail to book until you reconnect. You can reconnect at any time by entering an API key again.

***

## Next Steps

* [Book Calendar Appointment — GoHighLevel](/tools/calendar/ghl) — the booking tool's GHL field, contact-matching behaviour, and the variables it writes.
* [Calendar tools overview](/tools/calendar/overview) — settings shared by every calendar provider, from availability windows to SMS confirmations.
* [Integrations overview](/integrations/overview) — how integration connections work across your team.
* [Creating a script](/scripts/creating-a-script) — build the script that puts the booking tool to work.
