GoHighLevel
Setup Guide
Get your HVAC workflow running live in about 10 minutes. You need a GoHighLevel free trial account and a phone number configured for inbound calls.
Open Settings > API Keys inside your GoHighLevel dashboard.
Click + Create Private App, name it "LoopLead", and request these scopes:
conversations.readconversations.writecontacts.writelocations/customFields.read
Copy the generated API key — you'll use it as GHL_API_KEY.
app.gohighlevel.com/locations/XXXXXXXX-XXXX-XXXX/...
Add these two env vars to your Render (or hosting) dashboard under Environment > Variables:
Trigger a redeploy so Render picks up the new variables.
In GHL, go to Automations > Triggers > Webhooks.
Set the webhook URL to your app's callback endpoint:
Configure the webhook to fire on these GHL events:
- Call Completed (when
callStatus = NO_ANSWER) - Contact Created (as a fallback contact capture)
Webhook headers: Content-Type: application/json
Call your GHL-connected phone number from a different phone. Let it ring 5+ seconds, then don't answer.
Within 60 seconds you should receive an SMS on that same phone. If you reply "Yes" or "please", the sequence stops immediately.
Watch it happen in real time:
Open Live Demo DashboardOnce GHL is connected, LoopLead runs the full missed-call recovery workflow automatically:
- 0 seconds — Lead calls, misses. GHL fires webhook. LoopLead sends initial SMS instantly.
- ~36 hours — No reply? Follow-up #1 fires.
- ~72 hours — Still no reply? Close-out message fires.
- Any reply — Sequence stops. You call the lead back.
The demo dashboard at /demo shows every event in real time — calls, SMS sent, and recovered leads.