SalesCal Docs
Integrations

GoHighLevel CRM Integration

Connect GoHighLevel (GHL) to automatically sync leads and booking data to your CRM.

Benefits

  • Automatic Lead Sync: Leads pushed to GHL automatically
  • Status Updates: Booking status synced in real-time
  • Custom Field Mapping: Form responses sync to GHL fields
  • Workflow Triggers: Trigger GHL automations from bookings

Connecting GoHighLevel

  1. Go to Settings > Integrations
  2. Find GoHighLevel
  3. Click Connect
  4. Enter your GHL API credentials or authorize via OAuth
  5. Select your GHL location/sub-account
  6. Save the connection

API Credentials

You'll need from GoHighLevel:

  • API Key or OAuth Connection
  • Location ID (sub-account)

Finding Your API Key

  1. Log into GoHighLevel
  2. Go to Settings > API
  3. Generate or copy your API key

Location ID

Find your Location ID in GHL settings or the URL when viewing your sub-account.

How Sync Works

Lead Creation

When a lead is captured in SalesCal:

  1. Contact created in GHL
  2. Contact data mapped to GHL fields
  3. GHL contact ID stored in SalesCal
  4. Future updates use this ID

Sync Triggers

EventGHL Action
Step 1 CompleteContact created (status: incomplete)
Qualification PassContact updated (status: qualified)
Qualification FailContact updated (status: disqualified)
Booking CompleteContact updated (status: booked)

Data Synced

SalesCal FieldGHL Field
First NameFirst Name
Last NameLast Name
EmailEmail
PhonePhone
Custom FieldsCustom Fields (mapped)
Lead ScoreCustom Field (optional)
Lead GradeCustom Field (optional)
Event NameTag or Custom Field

Custom Field Mapping

Map SalesCal form fields to GHL custom fields:

  1. Go to integration settings
  2. Find Field Mapping
  3. For each SalesCal field:
    • Select the corresponding GHL field
    • Or create a new GHL field
  4. Save mappings

Mapping Best Practices

  • Match field types (text to text, dropdown to dropdown)
  • Use consistent naming
  • Map all important fields
  • Test with a sample lead

Lead Statuses in GHL

SalesCal sets these statuses/tags:

StatusMeaning
incompleteStarted form, didn't finish
qualifiedPassed qualification rules
disqualifiedFailed qualification rules
bookedCompleted a booking

Use these in GHL automations to trigger workflows.

GHL Automations

Trigger Ideas

On Incomplete Lead:

  • Send follow-up email
  • Add to nurture sequence
  • Notify sales rep

On Qualified Lead:

  • Send confirmation
  • Assign to rep
  • Add to hot lead list

On Disqualified Lead:

  • Send polite decline
  • Add to long-term nurture
  • Log for analysis

On Booking:

  • Send preparation email
  • Create task for rep
  • Add calendar reminder

Setting Up Automations

  1. In GHL, create a workflow
  2. Set trigger: "Contact Tag Added" or "Custom Field Changed"
  3. Use the SalesCal status values
  4. Add your automation steps

Duplicate Handling

When a lead already exists in GHL:

  • By Email: Existing contact updated
  • New Contact: Created if no match found
  • Merge Settings: Follow your GHL duplicate settings

Troubleshooting

"Failed to Connect"

  • Verify API key is correct
  • Check Location ID is valid
  • Ensure API access is enabled in GHL
  • Try regenerating API key

Leads Not Syncing

  • Verify connection is active
  • Check for sync errors in settings
  • Confirm GHL location is correct
  • Test with a new lead

Custom Fields Not Mapping

  • Verify field mapping is saved
  • Check field types match
  • Ensure GHL field exists
  • Test the specific field

Duplicate Contacts

  • Review GHL duplicate settings
  • Check if email matching is enabled
  • Consider merging duplicates manually

Status Not Updating

  • Verify webhook/trigger is active
  • Check GHL automation is running
  • Look for GHL error logs

Viewing Sync Status

In SalesCal lead records:

  • GHL Contact ID: Shows if synced
  • GHL Synced At: Last sync timestamp
  • Sync Status: Success or error

Disconnecting GoHighLevel

To remove the connection:

  1. Go to Settings > Integrations
  2. Find GoHighLevel
  3. Click Disconnect
  4. Confirm

Note: Existing GHL contacts remain, but new leads won't sync.

Data Privacy

  • Only lead data is sent to GHL
  • Follows your GHL privacy settings
  • You control what fields sync
  • Can disconnect at any time

Best Practices

Clean Setup

  • Map all fields before going live
  • Test sync with sample leads
  • Set up automations for each status

Consistent Data

  • Use same field names when possible
  • Keep custom fields organized
  • Document your mapping

Monitor Syncs

  • Check sync status regularly
  • Address errors promptly
  • Review automation performance

Leverage Automations

  • Automate follow-ups
  • Create tasks for sales team
  • Segment leads by status/grade

Advanced: Webhook Mode

For more control, use webhooks:

  1. Enable webhook mode in integration settings
  2. SalesCal sends events to your webhook
  3. Your system processes and syncs to GHL
  4. More flexibility for custom logic