Ghl Crm
by @aiwithabidi
GoHighLevel CRM integration — manage contacts, pipelines, conversations (SMS/email/WhatsApp), calendars, appointments, and workflows through the GHL API v2....
clawhub install ghl-crm📖 About This Skill
name: ghl-crm description: GoHighLevel CRM integration — manage contacts, pipelines, conversations (SMS/email/WhatsApp), calendars, appointments, and workflows through the GHL API v2. The definitive GHL skill for OpenClaw. Use when managing leads, booking appointments, sending follow-ups, or automating your CRM. homepage: https://www.agxntsix.ai license: MIT compatibility: Python 3.10+, GoHighLevel account with API v2 access metadata: {"openclaw": {"emoji": "\ud83d\udcde", "requires": {"env": ["GHL_API_KEY"]}, "primaryEnv": "GHL_API_KEY", "homepage": "https://www.agxntsix.ai"}}
GHL CRM — GoHighLevel Integration for OpenClaw
Complete GoHighLevel CRM integration. Manage contacts, pipelines, conversations, appointments, and workflows through the GHL API v2.
Quick Start
export GHL_API_KEY="your-private-integration-token"
export GHL_LOCATION_ID="your-location-id"
python3 {baseDir}/scripts/ghl_api.py contacts search "john@example.com"
Authentication
GHL uses Private Integration Tokens (API v2). Get yours from:
1. Go to Settings → Integrations → Private Integrations in your GHL sub-account
2. Create a new integration, enable the scopes you need
3. Copy the API key — this is your GHL_API_KEY
The GHL_LOCATION_ID is your sub-account/location ID (found in Settings → Business Info or the URL).
Base URL: https://services.leadconnectorhq.com
Auth header: Authorization: Bearer + Version: 2021-07-28
Available Commands
Contact Management
# Search contacts by email, phone, or name
python3 {baseDir}/scripts/ghl_api.py contacts search "query"Get contact by ID
python3 {baseDir}/scripts/ghl_api.py contacts get Create a new contact
python3 {baseDir}/scripts/ghl_api.py contacts create '{"firstName":"John","lastName":"Doe","email":"john@example.com","phone":"+15551234567"}'Update contact
python3 {baseDir}/scripts/ghl_api.py contacts update '{"tags":["vip","hot-lead"]}'Delete contact
python3 {baseDir}/scripts/ghl_api.py contacts delete List contacts (with optional limit)
python3 {baseDir}/scripts/ghl_api.py contacts list --limit 20
Pipeline & Opportunity Management
# List all pipelines
python3 {baseDir}/scripts/ghl_api.py pipelines listList opportunities in a pipeline
python3 {baseDir}/scripts/ghl_api.py opportunities list Get opportunity details
python3 {baseDir}/scripts/ghl_api.py opportunities get Create opportunity
python3 {baseDir}/scripts/ghl_api.py opportunities create '{"pipelineId":"...","stageId":"...","contactId":"...","name":"Deal Name","monetaryValue":5000}'Update opportunity (move stage, update value)
python3 {baseDir}/scripts/ghl_api.py opportunities update '{"stageId":"new-stage-id","status":"won"}'Delete opportunity
python3 {baseDir}/scripts/ghl_api.py opportunities delete
Conversations (SMS, Email, WhatsApp)
# List recent conversations
python3 {baseDir}/scripts/ghl_api.py conversations listGet conversation messages
python3 {baseDir}/scripts/ghl_api.py conversations get Send SMS
python3 {baseDir}/scripts/ghl_api.py conversations send-sms "Hello! Following up on our call."Send email
python3 {baseDir}/scripts/ghl_api.py conversations send-email '{"subject":"Follow Up","body":"Hi there!
","emailFrom":"you@domain.com"}'
Calendar & Appointments
# List calendars
python3 {baseDir}/scripts/ghl_api.py calendars listGet free slots
python3 {baseDir}/scripts/ghl_api.py calendars slots --start 2026-02-16 --end 2026-02-17Create appointment
python3 {baseDir}/scripts/ghl_api.py appointments create '{"calendarId":"...","contactId":"...","startTime":"2026-02-16T10:00:00Z","endTime":"2026-02-16T10:30:00Z","title":"Discovery Call"}'List appointments
python3 {baseDir}/scripts/ghl_api.py appointments list Update appointment
python3 {baseDir}/scripts/ghl_api.py appointments update '{"status":"confirmed"}'Delete appointment
python3 {baseDir}/scripts/ghl_api.py appointments delete
Workflows
# Add contact to workflow
python3 {baseDir}/scripts/ghl_api.py workflows add-contact Remove contact from workflow
python3 {baseDir}/scripts/ghl_api.py workflows remove-contact
Key API Endpoints Reference
| Resource | Method | Endpoint |
|----------|--------|----------|
| Search contacts | GET | /contacts/search?query=...&locationId=... |
| Get contact | GET | /contacts/{id} |
| Create contact | POST | /contacts/ |
| Update contact | PUT | /contacts/{id} |
| List pipelines | GET | /opportunities/pipelines?locationId=... |
| List opportunities | GET | /opportunities/search?location_id=...&pipeline_id=... |
| Create opportunity | POST | /opportunities/ |
| List conversations | GET | /conversations/search?locationId=... |
| Send message | POST | /conversations/messages |
| List calendars | GET | /calendars/?locationId=... |
| Get free slots | GET | /calendars/{id}/free-slots?startDate=...&endDate=... |
| Create appointment | POST | /calendars/events/appointments |
Rate Limits
GHL API v2 enforces rate limits:
Integration Patterns
Lead Capture → CRM Pipeline
1. Capture lead via form/chatbot 2.contacts create with lead data
3. opportunities create to add to pipeline
4. workflows add-contact to trigger nurture sequenceAppointment Booking Flow
1.calendars list to find the right calendar
2. calendars slots to get availability
3. appointments create to book the slot
4. GHL auto-sends confirmation via configured workflowFollow-Up Automation
1.conversations list to find unresponded conversations
2. contacts get for context
3. Generate follow-up with AI
4. conversations send-sms or send-emailCredits
Built by M. Abidi | agxntsix.ai YouTube | GitHub Part of the AgxntSix Skill Suite for OpenClaw agents.📅 Need help setting up OpenClaw for your business? Book a free consultation
💡 Examples
export GHL_API_KEY="your-private-integration-token"
export GHL_LOCATION_ID="your-location-id"
python3 {baseDir}/scripts/ghl_api.py contacts search "john@example.com"