GoHighLevel (LeadConnector) supports CRM sync and an integration app with a create_contact action. Connections are per location (sub-account).
Connect#
OAuth Needs keys#
Press Connect on the GoHighLevel card and choose the location. Tried requests contacts.readonly contacts.write locations.readonly locations/customFields.readonly as a Location token. The location id is taken from the token response. The deployment needs GOHIGHLEVEL_OAUTH_CLIENT_ID and GOHIGHLEVEL_OAUTH_CLIENT_SECRET from a GoHighLevel marketplace app.
Access token#
| Credential | Required | Description |
|---|---|---|
access_token |
Yes | Location access token |
location_id |
Yes | The location (sub-account) id |
base_url |
No | API host. Default https://services.leadconnectorhq.com |
POST /test-crm-auth/gohighlevel reads the location to check the token.
Contact sync#
Requests use the API version header Version: 2021-07-28.
POST /contacts/upsertwithlocationIdand the phone number. GoHighLevel matches existing contacts, so repeat callers update one contact.POST /contacts/{id}/noteswith the note title and body.
| GoHighLevel field | Value |
|---|---|
phone |
Contact phone number |
firstName |
Contact first name |
lastName |
Contact last name |
email |
Contact email |
| Mapped fields | From field_mapping |
Default fields shown in mock mode: firstName, lastName, email, phone, tags. With credentials, GET /get-crm-schema/gohighlevel adds the location's custom fields (by fieldKey).
Agent functions#
| Action | Arguments | Output |
|---|---|---|
gohighlevel.create_contact |
phone (required), first_name, last_name, email |
{"contact": {"id": "<contact id>"}} |
Mock mode#
Without credentials, operations are recorded and return ids like mock_gohighlevel_9e4b2d6a0c8f.