← Back to Skills Marketplace
aiwithabidi

GHL CRM Pro

by aiwithabidi · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
736
Downloads
2
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ghl-crm-pro
Description
GoHighLevel CRM integration — manage contacts, pipelines, conversations (SMS/email/WhatsApp), calendars, appointments, and workflows through the GHL API v2....
README (SKILL.md)

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 "[email protected]"

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 \x3CGHL_API_KEY> + 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 \x3CcontactId>

# Create a new contact
python3 {baseDir}/scripts/ghl_api.py contacts create '{"firstName":"John","lastName":"Doe","email":"[email protected]","phone":"+15551234567"}'

# Update contact
python3 {baseDir}/scripts/ghl_api.py contacts update \x3CcontactId> '{"tags":["vip","hot-lead"]}'

# Delete contact
python3 {baseDir}/scripts/ghl_api.py contacts delete \x3CcontactId>

# 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 list

# List opportunities in a pipeline
python3 {baseDir}/scripts/ghl_api.py opportunities list \x3CpipelineId>

# Get opportunity details
python3 {baseDir}/scripts/ghl_api.py opportunities get \x3CopportunityId>

# 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 \x3CopportunityId> '{"stageId":"new-stage-id","status":"won"}'

# Delete opportunity
python3 {baseDir}/scripts/ghl_api.py opportunities delete \x3CopportunityId>

Conversations (SMS, Email, WhatsApp)

# List recent conversations
python3 {baseDir}/scripts/ghl_api.py conversations list

# Get conversation messages
python3 {baseDir}/scripts/ghl_api.py conversations get \x3CconversationId>

# Send SMS
python3 {baseDir}/scripts/ghl_api.py conversations send-sms \x3CcontactId> "Hello! Following up on our call."

# Send email
python3 {baseDir}/scripts/ghl_api.py conversations send-email \x3CcontactId> '{"subject":"Follow Up","body":"\x3Cp>Hi there!\x3C/p>","emailFrom":"[email protected]"}'

Calendar & Appointments

# List calendars
python3 {baseDir}/scripts/ghl_api.py calendars list

# Get free slots
python3 {baseDir}/scripts/ghl_api.py calendars slots \x3CcalendarId> --start 2026-02-16 --end 2026-02-17

# Create 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 \x3CcalendarId>

# Update appointment
python3 {baseDir}/scripts/ghl_api.py appointments update \x3CappointmentId> '{"status":"confirmed"}'

# Delete appointment
python3 {baseDir}/scripts/ghl_api.py appointments delete \x3CappointmentId>

Workflows

# Add contact to workflow
python3 {baseDir}/scripts/ghl_api.py workflows add-contact \x3CworkflowId> \x3CcontactId>

# Remove contact from workflow  
python3 {baseDir}/scripts/ghl_api.py workflows remove-contact \x3CworkflowId> \x3CcontactId>

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:

  • General: 100 requests/10 seconds per location
  • Bulk operations: 10 requests/10 seconds
  • The script auto-retries on 429 with exponential backoff (up to 3 retries)

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 sequence

Appointment 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 workflow

Follow-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-email

Credits

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

Usage Guidance
This skill appears to be a legitimate GoHighLevel API wrapper, but there are two things to check before installing: (1) Metadata mismatch — the skill metadata only lists GHL_API_KEY, but both the SKILL.md Quick Start and the included script require GHL_LOCATION_ID as well. If you install and only provide the API key the script will exit. (2) Source trust — the skill's owner and source are not clearly verified; the homepage is provided but the package origin is unknown. Do not supply your primary/production GHL API key without considering scope and rotation: create a private integration token with minimal scopes or a test sub‑account/location token, verify the homepage/author, and review scripts/ghl_api.py yourself. If you proceed, limit the token scopes, rotate the token afterward, and run the skill in a controlled environment. If you want, I can point out the exact lines in scripts/ghl_api.py related to the GHL_LOCATION_ID requirement or help craft a least‑privilege token creation checklist.
Capability Analysis
Type: OpenClaw Skill Name: ghl-crm-pro Version: 1.0.0 The skill integrates with GoHighLevel CRM, providing legitimate functionality to manage contacts, pipelines, and conversations. The `SKILL.md` documentation is descriptive and does not contain malicious prompt injection attempts. The `ghl_api.py` script uses standard Python libraries for API interaction, correctly retrieving `GHL_API_KEY` and `GHL_LOCATION_ID` from environment variables and communicating with the legitimate `services.leadconnectorhq.com` endpoint. However, the script's reliance on parsing command-line arguments, particularly JSON strings via `json.loads(positional[0])`, introduces a vulnerability risk. If the OpenClaw agent constructs these arguments from unsanitized user input, it could lead to data injection into the GHL API or, depending on the agent's execution method (e.g., `subprocess.run(..., shell=True)`), potential shell injection. While these are significant vulnerabilities, there is no clear evidence of intentional malicious behavior such as unauthorized data exfiltration to external endpoints, persistence mechanisms, or explicit instructions for the agent to perform harmful actions, classifying it as suspicious rather than malicious.
Capability Assessment
Purpose & Capability
Name/description match the code: this is a GoHighLevel API wrapper. However the declared metadata lists only GHL_API_KEY as a required env, while both SKILL.md and the included Python script require GHL_LOCATION_ID as well. That mismatch is incoherent and would cause runtime failures or surprising behavior if the agent assumes only one credential is needed.
Instruction Scope
SKILL.md gives concrete CLI usage that maps to functions in scripts/ghl_api.py and limits network traffic to the documented GHL base URL. The instructions do not ask the agent to read unrelated system files or transmit data to third‑party endpoints beyond services.leadconnectorhq.com. Note: the Quick Start and script both require setting GHL_LOCATION_ID, which is not listed in the declared requires.env metadata.
Install Mechanism
No install spec (instruction-only skill) and the included Python file is straightforward. No downloads or external installers are invoked. This is a lower install risk.
Credentials
The skill declares a single required env (GHL_API_KEY / primary credential) but the runnable script enforces both GHL_API_KEY and GHL_LOCATION_ID. Requiring an API key is appropriate for this integration, but the missing declared GHL_LOCATION_ID is a proportionality/information inconsistency. Also the skill's source is unknown (homepage provided but owner is unverified), so handing over a long‑lived GHL private integration token to this third party warrants caution.
Persistence & Privilege
always is false, no special persistence or system config paths are requested, and the skill does not attempt to modify other skills or system settings. Autonomous invocation is allowed (platform default) but is not combined with other high‑risk privileges here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ghl-crm-pro
  3. After installation, invoke the skill by name or use /ghl-crm-pro
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of GoHighLevel CRM integration for OpenClaw. - Manage contacts, pipelines, conversations (SMS/email/WhatsApp), calendars, appointments, and workflows via GHL API v2. - Supports searching, creating, updating, and deleting contacts and opportunities. - Enables sending SMS and email, booking appointments, and managing workflows from scripts. - Includes quick start instructions, authentication setup, and command reference. - Automatic rate limit handling with retries built-in. - Documentation provides API endpoint overview and example integration patterns.
Metadata
Slug ghl-crm-pro
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is GHL CRM Pro?

GoHighLevel CRM integration — manage contacts, pipelines, conversations (SMS/email/WhatsApp), calendars, appointments, and workflows through the GHL API v2.... It is an AI Agent Skill for Claude Code / OpenClaw, with 736 downloads so far.

How do I install GHL CRM Pro?

Run "/install ghl-crm-pro" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is GHL CRM Pro free?

Yes, GHL CRM Pro is completely free (open-source). You can download, install and use it at no cost.

Which platforms does GHL CRM Pro support?

GHL CRM Pro is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created GHL CRM Pro?

It is built and maintained by aiwithabidi (@aiwithabidi); the current version is v1.0.0.

💬 Comments