GoHighLevel Integration
API, Webhooks and Integrations
When someone replies positively to your cold outreach, you want that lead in your GoHighLevel account where your pipeline, workflows, and team already live, not sitting in a separate inbox. The GoHighLevel integration pushes every positive reply into GoHighLevel as a contact and an opportunity, and logs the whole email exchange in the contact’s Conversations tab so your team can read it there.
The integration is part of the Scale plan. Each Reachkit workspace connects to one GoHighLevel business account. If you manage several client accounts on GoHighLevel, connect each client’s Reachkit workspace to that client’s account. It works the same on white-labeled GoHighLevel accounts (HighLevel, or your own brand).
Connecting GoHighLevel
- In Reachkit, navigate to Settings
- Select the Integrations tab
- In the CRM section, click Connect on the GoHighLevel row
- Sign in to GoHighLevel if asked, then pick the business account to connect
- Approve the requested permissions (contacts, opportunities, pipelines, and conversations)
- You’ll be redirected back to Reachkit
Pick a business account, not the company-level (agency) account. A company-level install has no account to put contacts in, and Reachkit refuses it with a message asking you to choose a business account instead.
To save you a step, Reachkit auto-selects your first pipeline and its first stage so the integration starts working immediately. You can change these any time from Settings > Integrations by clicking Manage on the GoHighLevel row.
What gets synced
The first time a conversation becomes positive, Reachkit pushes three things to GoHighLevel:
-
A contact, matched by email using your account’s own duplicate rule. If a contact with that email already exists, Reachkit reuses it: the name and company are updated from the Reachkit lead, and every other field and your existing tags are left alone. The contact’s source is set to
Reachkitand the tagreachkitis added, so you can filter on either or trigger a workflow from the tag. -
An opportunity in your chosen pipeline and stage, named after the lead’s company (or their name and email if there’s no company), linked to the contact and opened with status
open. Reachkit never edits an opportunity after creating it, so moving it, renaming it, or marking it won or lost is safe. If the contact already has an opportunity in that pipeline and your account does not allow duplicates (the default), Reachkit attaches to the existing one and leaves it exactly as it is. - The full email thread, logged in the contact’s Conversations tab as email messages. Each message keeps its original direction (sent or received), subject, body, and date, and the messages are threaded together, so the exchange reads exactly as it happened.
After the initial sync, every new message in the conversation is added to the same thread in Conversations. The contact keeps up as the conversation unfolds.
The sync is one way. Reply to the lead from the Reachkit unibox, and that reply shows up in the GoHighLevel thread too. An email composed in GoHighLevel goes out through the account’s own email provider, as usual, and is not part of the Reachkit conversation.
What counts as a “positive” reply
Reachkit uses AI to classify every incoming reply. These four categories trigger a sync:
-
interested -
meeting_requested -
referral -
needs_more_info
If the AI mislabels a reply, you can manually relabel it from the unibox. Setting any conversation to one of the labels above triggers the same sync immediately.
Changing or removing the connection
To change the pipeline or stage where new opportunities land:
- Go to Settings > Integrations
- Click Manage on the GoHighLevel row
- Pick a different pipeline or stage and click Save GoHighLevel settings
If you rename or delete a stage inside GoHighLevel, reselect it here so new opportunities keep landing in the right place.
To disconnect:
- Click Manage on the GoHighLevel row
- Click the trash icon and confirm
Disconnecting removes Reachkit’s access to the account (the app disappears from the account’s installed apps in GoHighLevel) and stops future syncs. All existing contacts, opportunities, and conversations stay in GoHighLevel exactly as they are. Reconnecting later resumes syncing for new positive replies.
Common questions
Does this overwrite my existing GoHighLevel contacts?
Mostly not. Reachkit matches contacts by email and reuses existing records. The opportunity and conversation get attached to the existing contact. The one thing Reachkit does write on an existing contact is the name and company from the lead (plus the reachkit tag and source); every other field, and every tag you added yourself, is left alone.
What about positive replies I already have when I first connect GoHighLevel?
New positive replies (after you connect) sync automatically. To push an existing positive conversation that’s already in your unibox, open it and click Sync to CRM.
Can I trigger a GoHighLevel workflow when a lead comes in from Reachkit?
Yes. Every contact Reachkit creates or reuses gets the tag reachkit and has its source set to Reachkit, and every opportunity lands in the pipeline and stage you chose. The simplest trigger is a workflow on Contact Tag Added with the tag reachkit; an opportunity created in your chosen stage works too.
What happens if a contact replies again after the sync?
The new message is added to the existing thread in Conversations. No duplicate contact or opportunity is created.
What happens if I relabel a positive conversation as not interested?
The contact, opportunity, and messages already in GoHighLevel stay there. Reachkit does not delete them, since your team may already have started working the opportunity. If it is no longer relevant, close or delete it in GoHighLevel.
Do I need to reconnect when my GoHighLevel session expires?
No. Reachkit refreshes its own access tokens automatically. You only need to reconnect if you uninstall the Reachkit app from the account inside GoHighLevel, in which case the row shows Reconnect needed.
Are unsubscribes synced to GoHighLevel?
No. Unsubscribe state lives on the lead in Reachkit and is not pushed to GoHighLevel.