> For the complete documentation index, see [llms.txt](https://help.botpenguin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.botpenguin.com/bots/website-mobile-app-bot/3rd-party-integrations/botpenguin-integrations/integrate-botpenguin-with-gohigh-level.md).

# Integrate BotPenguin with GoHigh Level

### What is Go High Level (GHL)?

Go High Level integration allows you to connect BotPenguin with your GHL sub-account (Location) using a Private Integration Token. It enables your chatbot to automatically create and update Contacts, book Calendar appointments, and push custom attribute data into GHL — all without any manual data entry.

***

### When should you use this?

Use this integration when:

* You want every lead your chatbot captures to appear automatically as a Contact in GHL
* You need to let bot users book appointments directly onto a GHL Calendar
* You want to sync custom bot attributes into GHL Custom Fields for segmentation or automation
* You are trying to replace manual copy-paste of chat leads into your CRM

***

### Benefits of Go High Level (GHL)

* 🔗 Automatically creates or updates GHL Contacts from chatbot conversations
* ⚡ Lets bot users book real appointments straight onto your GHL Calendar
* 🎯 Deduplicates Contacts by email or phone — no duplicate records
* 🔄 Pushes custom bot attributes into GHL Custom Fields in real time
* 📈 Removes manual data entry between BotPenguin and your CRM

***

### Expected Outcome

After setting this up:

* Your GHL sub-account will be successfully connected to your bot
* Leads and appointment bookings will flow from BotPenguin → GHL automatically
* You will be able to map bot questions and attributes to GHL Contact fields and Custom Fields

> 💡 Tip: Use the Test Lead button after connecting to confirm a dummy Contact appears in your GHL account before going live.

***

### 🔐 Prerequisites

Before setting up this integration, ensure you have:

* An active GHL Agency account with at least one Sub-Account (Location) created
* Admin access to that sub-account to generate a Private Integration Token
* At least one Calendar created inside the sub-account, if you plan to enable appointment booking
* A BotPenguin bot with the questions or attributes you want mapped (e.g. Name, Email, Phone)

> ⚠️ The token must be generated inside the sub-account, not at the Agency level — Agency-level tokens will not work since BotPenguin's calls require a `locationId`.

***

### How to Use Go High Level (GHL)

1. In GHL, switch into your target sub-account using the location switcher.
2. Go to Settings → Private Integrations.

<figure><img src="/files/Zc48pLjgUWcesZo5LROk" alt=""><figcaption></figcaption></figure>

3. Click Create New Integration, give it a name, and select all required scopes:&#x20;
   1. Edit Contacts,&#x20;
   2. View Contacts,&#x20;
   3. View Calendars,&#x20;
   4. Edit Calendar Events,&#x20;
   5. View Calendar Events, and&#x20;
   6. View Locations.

<figure><img src="/files/OkKktvrnSYt90kbjcBaO" alt=""><figcaption></figcaption></figure>

4. Once all the permissions are added, click Create.

<figure><img src="/files/CvFWTrtwYX6W9o6V50OW" alt=""><figcaption></figcaption></figure>

5. Copy the token

<figure><img src="/files/NXbB6flbITKOJtJ02H5g" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Keep the token in a safe location. It can only be copied once.
{% endhint %}

6. To get the location ID, go to the dashboard, and copy the ID located in the URL, post location/

<figure><img src="/files/pxXCP0gQ3DA4mhTJVwWL" alt=""><figcaption></figcaption></figure>

***

#### Step 2 — Creating Calendar in GHL

1. On GHL, click on Calendars -> Calendar Settings.

<figure><img src="/files/VyIzKkLkCkj2OEHGugmx" alt=""><figcaption></figcaption></figure>

2. Click on "Create Calendar" to set up the calendar.

<figure><img src="/files/NoHdtzA8lcdh9qhGFakv" alt=""><figcaption></figcaption></figure>

3. There are 4 types of calendars that can be made on the platform:&#x20;
   1. Personal Booking
   2. Round Robin
   3. Class Booking
   4. Collective Booking

<figure><img src="/files/DUCYrBGeYMs08Kzd4Ab8" alt=""><figcaption></figcaption></figure>

4. Set up the following:&#x20;
   1. Name: Unique identifier for the calendar.
   2. User: Whom the meeting is being booked with.
   3. Meeting Duration: Time-slot for the meeting.

<figure><img src="/files/zLumeRnQHMd7jBDyMxdd" alt=""><figcaption></figcaption></figure>

***

#### Step 3 — Connect GHL inside BotPenguin

1. Go to Bot Builder → Configure → Integrations → All Integrations.
2. Find the Go High Level card and click Connect.
3. Paste your API Token and Location ID, then click Connect.
4. Once the connection is successful, the Intergation will be successful.

<figure><img src="/files/EYTRgRPP2u88f1Dd655k" alt=""><figcaption></figcaption></figure>

***

#### Step 4 — Configure Calendar and Mapping

1\. Toggle Enable Calendar ON if you want appointment booking, and select a calendar from the dropdown.

<figure><img src="/files/Fx58AYZq2aSKhuVt8OgN" alt=""><figcaption></figcaption></figure>

2\. Set an optional Appointment Title (defaults to "Appointment with ").

3. Add question and attribute mappings for:
   1. Name
   2. Email
   3. Phone, and&#x20;
   4. Any GHL Custom Fields

<figure><img src="/files/B1hqZ2eAUlaEqtgkmies" alt=""><figcaption></figcaption></figure>

3. Click on "Save" to save the settings of the integration.

***

### Best Practices

> 💡 Always test the integration with the Test Lead button before going live

> ⚠️ Select all required scopes when creating the Private Integration Token — a partial scope set will silently break individual features

> 🚀 Create any Custom Fields in GHL first, and note their exact key, before setting up attribute mapping in BotPenguin

> 🎯 Ensure at least one Calendar exists in the sub-account before enabling calendar booking

***

### Troubleshooting

<details>

<summary>GoHighLevel token is invalid or has been rotated</summary>

Generate a new **Private Integration Token** in **GoHighLevel → Settings → Private Integrations**, then update the token in the GoHighLevel integration settings within BotPenguin.

</details>

<details>

<summary>The Calendar dropdown shows "No calendar at the moment"</summary>

Ensure that at least one calendar exists in the connected GoHighLevel sub-account. Also verify that the **Location ID** entered in BotPenguin matches the correct GoHighLevel location.

</details>

<details>

<summary>Appointment booking fails with "Email or Phone Number is required"</summary>

Make sure your Chatflow collects either the customer's **email address** or **phone number** before the appointment booking component is reached.

</details>

<details>

<summary>Contact is created but Custom Fields are empty</summary>

Verify that each **Custom Field Key** configured in BotPenguin exactly matches the corresponding field key in GoHighLevel. The key should be entered without extra spaces or curly braces.

</details>

***

### FAQs

<details>

<summary>Does this integration require coding?</summary>

No, this integration can be set up using BotPenguin's no-code interface — you only need to paste a token and Location ID generated from GHL.

</details>

<details>

<summary>What authentication method is used?</summary>

GHL uses a Private Integration Token (PIT), a long-lived token generated manually inside your GHL sub-account. There is no OAuth flow.

</details>

<details>

<summary>Can I reconnect the integration?</summary>

Yes, you can disconnect and reconnect anytime from the integrations panel. Reconnecting requires generating and pasting a fresh token if the old one was rotated.

</details>

<details>

<summary>Is real-time data sync supported?</summary>

Yes. Contacts and appointments are created or updated in GHL as soon as they occur in the chatbot conversation.

</details>

<details>

<summary>What happens if the integration fails?</summary>

If the token is invalid or rotated, syncing stops and BotPenguin shows an error prompting you to update the token. Existing data already sent to GHL is not affected.

</details>

***

### Related Articles

{% content-ref url="/pages/1TJbpCVF7I42beHZ0isw" %}
[Contacts](/inbox-chats/inbox-chats/contacts.md)
{% endcontent-ref %}

{% content-ref url="/pages/zG4xrIQa2ul08dJXDVpe" %}
[Create Chatflow](/bots/website-mobile-app-bot/website-manage-chatflow/create-chatflow.md)
{% endcontent-ref %}

***

### Support

If you still have questions for our team, write to us at <support@botpenguin.com>. We'll get back to you within 48 hours.

***

### 🎉 Completion

🎉 Congratulations, you have successfully set up the Go High Level (GHL) integration! You can now automatically sync leads and appointment bookings between your chatbot and GHL.
