Go HighLevel Integration

Connect RepsAI to Go HighLevel so analysed calls update the matching GHL contact and appear in the contact's Conversations timeline when the token has conversation permissions.

What Gets Synced

RepsAI syncs to the Contact object in the selected GHL location. Contacts are matched using GHL's native upsert behavior with the phone number or email address from RepsAI.

When you connect the integration, RepsAI creates or reuses these GHL Contact custom fields:

| GHL custom field | RepsAI value | | --- | --- | | Last Call Date | Date of the most recent analysed call | | Last Call Summary | AI-generated summary of the most recent analysed call | | Last Call Score | Overall score from the most recent analysed call | | Last Call Type | Call type from RepsAI analysis or the original call record | | Total Call Count | Number of RepsAI calls linked to that contact | | Average Call Score | Rolling average score across analysed RepsAI calls for that contact | | DISC Profile | Latest DISC profile style detected for the contact | | Transcript Link | Link back to the RepsAI call detail page |

After each call is analysed, RepsAI updates those Contact custom fields and attempts to add a call activity to the contact's GHL Conversations timeline.

The timeline call activity includes:

  • Call summary
  • Coaching notes
  • Call score
  • Call outcome
  • Duration
  • Direction
  • Transcript link

The summary is stored in both places: the latest summary is written to the Contact custom field for easy filtering/reporting, and the full call activity message includes the summary plus coaching notes for timeline review.

Requirements

Create a Go HighLevel private integration token for the target sub-account.

For contact and custom field sync, select these scopes:

  • Edit Contacts (contacts.write)
  • View Custom Fields (locations/customFields.readonly)
  • Edit Custom Fields (locations/customFields.write)
  • View Locations (locations.readonly)

For call timeline logging, also select these scopes:

  • View Conversations (conversations.readonly)
  • Edit Conversations (conversations.write)
  • Edit Conversation Messages (conversations/message.write)

The Conversation Provider ID is optional. RepsAI will attempt timeline call logging through the private integration token without it. If GHL rejects providerless call logs for the account, add a Call conversation provider ID or contact RepsAI support.

Setup

Step 1: Create a GHL Private Integration Token

  1. In Go HighLevel, open the target sub-account.
  2. Go to Settings -> Private Integrations. If you are an agency admin and do not see it in the sub-account, switch to Agency view and go to Settings -> Private Integrations.
  3. Click Create new Integration.
  4. Name it something recognizable, such as RepsAI.
  5. Select the scopes listed above.
  6. Copy the token immediately. GHL only shows the generated token once.

Step 2: Find the Location ID

The Location ID is the unique ID for the GHL sub-account RepsAI should sync into.

Option 1:

  1. In Go HighLevel, open the target sub-account.
  2. Click Settings in the left navigation.
  3. Open Business Profile.
  4. In General Information, copy the Location ID.

Option 2:

  1. Open the target sub-account in Go HighLevel.
  2. Look at the browser URL.
  3. Copy the value after /location/, or the value in the locationId= query parameter.

For example, in a URL like https://app.gohighlevel.com/v2/location/abc123XYZ/dashboard, the Location ID is abc123XYZ.

Keep the Location ID internal to your organization.

Step 3: Add a Conversation Provider ID, if needed

The Conversation Provider ID tells GHL which external calling provider created the call activity. RepsAI can attempt timeline call logging without it, but some GHL call-log flows may require it for provider-backed call activities, call metadata, or recording attachments.

Most users will not find this ID in Business Profile or Private Integrations. It comes from a GHL Call conversation provider, which is usually created by the agency or developer that manages the GHL account's custom calling integrations.

If your agency has already set up a RepsAI or external call provider in GHL, ask them for the provider's conversationProviderId. They may also be able to review installed providers under Settings -> Conversation Providers in the GHL sub-account.

If you do not have a Conversation Provider ID yet, leave this field blank. RepsAI will still sync contacts and custom fields, and will attempt to create timeline call activities using the private integration token.

Step 4: Connect in RepsAI

  1. Go to Settings -> Integrations -> Go HighLevel.
  2. Paste the private integration token.
  3. Paste the Location ID.
  4. Paste the Conversation Provider ID if your GHL account requires one for call timeline logging.
  5. Click Connect.

RepsAI will create any missing custom fields immediately.

Managing the Integration

Use Test Connection to verify the token and Location ID.

Use Sync Fields if a custom field was deleted in GHL or if permissions were changed after the first connection.

Use Pause to stop syncing without deleting the saved configuration.

Use Disconnect to remove the token and stop all future Go HighLevel syncs.

Troubleshooting

Custom fields are not created:

  • Check that the private integration token has custom field permissions.
  • Confirm that the Location ID belongs to the same sub-account as the token.
  • Click Sync Fields after updating permissions.

Contacts update but call timeline entries do not appear:

  • Confirm the token has View Conversations, Edit Conversations, and Edit Conversation Messages scopes.
  • If GHL returns a provider-related error, add a Call conversation provider ID in the integration settings.

A contact was duplicated:

  • GHL's contact upsert follows the duplicate settings configured in that Location.
  • Review the Location's duplicate contact rules for phone and email matching.