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
- Go to Settings > Integrations
- Find GoHighLevel
- Click Connect
- Enter your GHL API credentials or authorize via OAuth
- Select your GHL location/sub-account
- Save the connection
API Credentials
You'll need from GoHighLevel:
- API Key or OAuth Connection
- Location ID (sub-account)
Finding Your API Key
- Log into GoHighLevel
- Go to Settings > API
- 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:
- Contact created in GHL
- Contact data mapped to GHL fields
- GHL contact ID stored in SalesCal
- Future updates use this ID
Sync Triggers
| Event | GHL Action |
|---|---|
| Step 1 Complete | Contact created (status: incomplete) |
| Qualification Pass | Contact updated (status: qualified) |
| Qualification Fail | Contact updated (status: disqualified) |
| Booking Complete | Contact updated (status: booked) |
Data Synced
| SalesCal Field | GHL Field |
|---|---|
| First Name | First Name |
| Last Name | Last Name |
| Phone | Phone |
| Custom Fields | Custom Fields (mapped) |
| Lead Score | Custom Field (optional) |
| Lead Grade | Custom Field (optional) |
| Event Name | Tag or Custom Field |
Custom Field Mapping
Map SalesCal form fields to GHL custom fields:
- Go to integration settings
- Find Field Mapping
- For each SalesCal field:
- Select the corresponding GHL field
- Or create a new GHL field
- 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:
| Status | Meaning |
|---|---|
| incomplete | Started form, didn't finish |
| qualified | Passed qualification rules |
| disqualified | Failed qualification rules |
| booked | Completed 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
- In GHL, create a workflow
- Set trigger: "Contact Tag Added" or "Custom Field Changed"
- Use the SalesCal status values
- 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:
- Go to Settings > Integrations
- Find GoHighLevel
- Click Disconnect
- 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:
- Enable webhook mode in integration settings
- SalesCal sends events to your webhook
- Your system processes and syncs to GHL
- More flexibility for custom logic
Related Guides
- Managing Leads - Lead management in SalesCal
- Qualification Rules - Status triggers
- Lead Grading - Scoring data sync