If you want to get started right away and prefer a step-by-step video walkthrough, please watch it here: Watch the video guide

This guide will show you exactly how to connect your LeadsHook Decision Tree to your GoHighLevel (GHL) account. By setting up a Webhook, you can automatically send your lead data straight into your GHL CRM.

Phase 1: Create a Private Integration in GoHighLevel

First, we need to generate a special password called an “Access Token” inside GHL so LeadsHook has permission to send data to it.

  1. Log in to your GoHighLevel account and open your specific Sub-Account.
  2. Click on Settings located at the bottom left corner of your screen.
  3. In the left-hand menu, scroll down and click on Private Integrations.
  4. Click the blue Create new integration button.
  5. Fill in the Basic Info. Give it a clear name like LeadsHook Integration and write a short description.
  6. Under the Scopes section, you must define what LeadsHook is allowed to do. Search for and select the following two scopes:
    • contacts.readonly
    • contacts.write
  7. Click Create.
Important: A popup window will appear showing your new Access Token. Click the copy icon to copy this long string of text. Paste it into a temporary notepad. You will need this token in the next phases, and GHL will only show it to you once.

Phase 2: Create Custom Fields in GoHighLevel

If you are collecting custom answers in LeadsHook, you need a matching place to store that answer in GHL.

  1. Still in your GHL Settings, click on Custom Fields in the left menu.
  2. Click the green Add Field button in the top right.
  3. Select the type of field you need (for example, Single Line text) and click Next.
  4. Name your field exactly as you want it to appear (e.g., favorite_color) and make sure the Object is set to Contact.
  5. Click Save.

Phase 3: Get Your GHL Custom Field IDs via API Node

To send data to those custom fields, you need their specific “IDs” from GHL. We can fetch these directly inside LeadsHook using an API node.

  1. Log in to GoHighLevel and look at the URL at the top of your browser. Copy the string of letters and numbers right after location/. This is your Location ID. Save it to your notepad.
  2. Open your LeadsHook Decision Tree and add a new API node to the canvas.
  3. Double-click the API node to edit it.
  4. Set the Method dropdown to GET.
  5. In the Request URL field, paste this link, replacing YOUR_LOCATION_ID with the ID you copied in step 1:
    https://services.leadconnectorhq.com/locations/YOUR_LOCATION_ID/customFields
  6. Scroll to the Headers section and add these two headers:
    • Key: Authorization | Value: Bearer YOUR_ACCESS_TOKEN (paste your token from Phase 1 here)
    • Key: Version | Value: 2023-02-21
  7. Click the Test Request button at the bottom of the node.
  8. A window will pop up showing the response. Look at the Response Body. You will see a list of your custom fields. Find the name of the field you created and look for the "id" right above or below it. It will look like a random string of characters (e.g., "id": "JvK9B...").
  9. Copy that ID to your notepad. You will use it in the next phase. You can delete this API node from your canvas once you have your IDs.

Phase 4: Set up the Webhook Node in LeadsHook

Now we will tell LeadsHook where to send the data using the token and the custom field IDs we collected.

  1. Add a new Webhook node to your canvas and connect it to your flow.
  2. Click the Webhook node to open its properties.
  3. Set the Method dropdown to POST.
  4. In the Request URL field, paste this exact link:
    https://services.leadconnectorhq.com/contacts/
  5. Scroll down to the Headers section. You need to configure three specific headers here:
Header Setup Instructions:
  • Header 1: Key: Content-Type | Value: application/json (This is usually filled out by default).
  • Header 2: Key: Authorization | Value: Bearer YOUR_ACCESS_TOKEN (Paste your Access Token from Phase 1).
  • Header 3: Key: Version | Value: 2023-02-21
  1. In the Body section (set to JSON), map your LeadsHook fields to your GHL fields. When sending data to the custom fields, use the Custom Field ID you retrieved in Phase 3. Here’s an example JSON payload:
{
  "firstName": "{first_name}",
  "lastName": "{last_name}",
  "email": "{email}",
  "phone": "{phone_number}",
  "locationId": "abYQJnlecprTuW7EUckj",
  "country": "US",
  "tags": ["New Lead"],
  "customFields": [
    {
      "id": "1cDm19PRkvzQYcK4pPzc",
      "value": "{favorite_color}"
    }
  ]
}
  1. Click Save and Close to finish your Webhook setup.
  2. Publish your decision tree.

Your LeadsHook Decision Tree is now securely connected to GoHighLevel and ready to map custom fields!