Connector · CRM and email lists
GoHighLevel, in every client’s workflows.
Add or update a contact, add tags to a contact, with the client’s own GoHighLevel account.
- Triggers
- 0start a workflow
- Actions
- 2steps in a workflow
Do it in GoHighLevel
A step with its own fields: values from the run go in by name, and what GoHighLevel answers is there for the next step.
- Add or update a contactCreates the contact, or updates the one with the same email or phone (the sub-account’s duplicate rules).
- Add tags to a contactAdds tags to a contact and keeps the ones it has: in GoHighLevel a tag added is what starts the sub-account’s own workflows. (The upsert’s Tag replaces every tag the contact has.)
Connect the client’s GoHighLevel
On the client’s page in Thrum: Add credential, type GoHighLevel private integration token.
In the client’s sub-account: Settings → Private Integrations → Create new integration → scopes contacts.write (and contacts.readonly) → copy the token. The Location ID is under Settings → Business Profile.
The key is stored encrypted and bound to that client: another client’s workflow cannot use it, and no template or pack copies it.
Via HTTP
Or by web request: create or update a contact, with a tag
Agencies run their clients’ CRM in HighLevel; the tag starts the client’s own HighLevel follow-up. The web request step, filled in: paste it, swap in the client’s ids, add their key.
01
Add the client’s credential
On the client’s page in Thrum: Add credential, type API key. In the client’s sub-account: Settings → Private Integrations → Create new integration → scope contacts.write → copy the token. The Location ID is under Settings → Business Profile.
{ "api_key": "pit-…" }02
Add a web request step
Name it “Add to HighLevel”, set it as here, and pick the credential. Values in double braces are read from the run: here, the lead the form brought in.
- LOCATION_ID
- The sub-account’s id: Settings → Business Profile.
{ "method": "POST", "url": "https://services.leadconnectorhq.com/contacts/upsert", "headers": { "Authorization": "Bearer {{ credential.api_key }}", "Version": "2021-07-28", "Accept": "application/json" }, "body": { "locationId": "LOCATION_ID", "name": "{{ lead.name }}", "email": "{{ lead.email }}", "phone": "{{ lead.phone }}", "tags": [ "website lead" ], "source": "Website form" } }03
What goes out, and what comes back
Upsert matches on email or phone, following the sub-account’s duplicate-contact setting.
POST https://services.leadconnectorhq.com/contacts/upsert content-type: application/json authorization: Bearer •••••••• version: 2021-07-28 accept: application/json { "locationId": "LOCATION_ID", "name": "Nadia Karim", "email": "nadia@example.com", "phone": "+447700900222", "tags": [ "website lead" ], "source": "Website form" }200 { "new": true, "contact": { "id": "seD4PfOuKoVMLkEZqohJ", "name": "Nadia Karim", "email": "nadia@example.com", "phone": "+447700900222", "locationId": "LOCATION_ID", "tags": [ "website lead" ] }, "traceId": "9f2c41d7e8a3" }
Watched like everything else
When GoHighLevel stops answering or refuses the client’s key, you hear about it, and your client does not.
- A failing request
- Tried 3 times, 5 seconds apart and doubling, only for errors a retry can fix
- A service that asks for a pause
- Given it, up to an hour
- Requests at once, per account
- 2, per worker; the rest wait their turn
- Timeout
- 15 seconds, unless the step sets its own
- Private and internal addresses
- Refused, on every redirect too
- The client’s key
- Encrypted, bound to the client, and kept out of every run record
- A step that keeps failing
- Marks the workflow Degraded and alerts you, not the client
More in CRM and email lists
- ActiveCampaignAdd or update a contact, subscribe to a list2 actions
- AttioAdd or update a person, update a person2 actions
BrevoAdd or update a contact, send an email, or start when a new contact is added2 actions · 3 triggers
- CloseCreate a lead, update a lead, or start when a new lead is added2 actions · 2 triggers
GoHighLevel and its logo are trademarks of their owner, used here only to say what Thrum works with; no endorsement is implied.
Thrum is cooking.
Get early access and you’ll be among the first in. Early members get a launch perk.