📈 GoHighLevel

Manage contacts, opportunities, and make custom API calls to GoHighLevel CRM.

Overview

Connect your GoHighLevel (HighLevel) CRM to automate contact management, opportunity tracking, calendars, and appointment booking using OAuth2. The HighLevel node supports creating, reading, updating, and deleting contacts, opportunities, and appointments, listing calendars and their free slots, plus a custom API call mode for any HighLevel v2 endpoint.

Getting Connected

  • Create a HighLevel Marketplace app and copy your Client ID and Client Secret
  • Ensure your app has the required scopes enabled. Falcon's HighLevel node uses: contacts.readonly, contacts.write, opportunities.readonly, opportunities.write, calendars.readonly, calendars.write, calendars/events.readonly, calendars/events.write, locations.readonly, locations/customFields.readonly, and users.readonly.
  • In Falcon Builder, go to Dashboard → Credentials → Add Credential and select GoHighLevel OAuth2
  • Enter your Client ID, Client Secret, select User Type (Location or Company), and click Connect HighLevel OAuth2
  • Authorize access in the popup window — tokens are saved and refresh automatically

Contacts

  • Create Contact — requires email or phone at minimum. Optional fields: first name, last name, company, website, tags, DND setting, custom fields.
  • Get Contact — retrieve a single contact by Record ID
  • Get Many Contacts — search/filter contacts by query, email, phone, with pagination (limit & page)
  • Update Contact — update fields on an existing contact by Record ID
  • Delete Contact — remove a contact by Record ID

Opportunities

  • Create Opportunity — requires name, contact ID, pipeline ID, and pipeline stage ID. Optional: status, monetary value, assigned to, source.
  • Get / Get Many / Update / Delete — same pattern as contacts

Calendar

  • Get Many — list calendars in the connected location
  • Get — fetch a single calendar by ID
  • Get Free Slots — availability for a calendar between a start/end date (epoch ms or ISO 8601, max 31-day window). Optional timezone and user filter.

Calendar ID fields show a dropdown of the credential's calendars so you don't have to copy IDs from HighLevel by hand. The text input stays editable, so {{variable}} references still work.

Appointment

  • Create — requires Calendar ID, Contact ID, and Start Time. Title, end time, meeting location, address, description, and recurrence (RRULE) are optional.
  • Get Many — list appointments in a date range. Requires Start Time, End Time, and at least one of Calendar ID, User ID, or Group ID.
  • Get / Update / Delete — operate on an existing event by ID.
  • Cancel — use Update and set Appointment Status to cancelled.

Custom API Call

Call any HighLevel API v2 endpoint directly by specifying the HTTP method, endpoint path (e.g., /calendars/events), and optional request body/query params.

Advanced Options

  • Location ID — override the default location per node. Required for Company-level tokens; auto-filled from credential for Location-level tokens.
  • Additional Fields — pass extra JSON fields merged into the request body for advanced use cases
  • Query Params — add custom query string parameters as JSON
  • Output Variable — customize the variable name for the result (default: highlevel_result). Access the response via {{$json.highlevel_result.data}}
  • All text fields support variable interpolation using {{variable_name}} syntax

Troubleshooting

  • 403 “Token does not have access” — verify your OAuth app has the required scopes enabled, and the Location ID is correct for your sub-account
  • 422 “property should not exist” — ensure you are not passing deprecated snake_case fields (e.g., location_id). The v2 API uses camelCase (locationId).
  • Token expired — tokens refresh automatically. If refresh fails, reconnect your credential via the OAuth flow
  • Contact create fails — you must provide at least an email or phone number
  • Calendar dropdown empty / 403 on calendar calls — credentials connected before calendar support was added don't have the calendars.* or calendars/events.* scopes. Reauthorize the install (or use the “Update Permissions” prompt in HighLevel's marketplace UI); existing workflows keep working because the callback updates the existing credential in place.
  • Free Slots date range error — the API rejects ranges over 31 days. Split the query into smaller windows.