← Back to Skills Marketplace
aiwithabidi

Ghl Crm

by aiwithabidi · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
334
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ghl-crm
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 generally looks like a legitimate GoHighLevel API wrapper, but it has a clear metadata/implementation mismatch: the script and examples require GHL_LOCATION_ID in addition to GHL_API_KEY, yet the registry only declares GHL_API_KEY. Before installing: (1) Verify the publisher and homepage (agxntsix.ai) — this source is not obviously an official GoHighLevel library. (2) Only provide a Private Integration token with minimal scopes needed (avoid broad write/send scopes if you don't need them); the skill can send SMS/email so a token with messaging scopes could send messages on your behalf. (3) Provide GHL_LOCATION_ID at runtime (or ask the author to update metadata). (4) If possible, test in an isolated account or use a throwaway integration token to confirm behavior. (5) Review the included script locally (it appears straightforward and non-obfuscated) and consider running it with read-only scopes first. The main risk is accidental misuse of a sensitive API key or granting messaging permissions; the metadata mismatch suggests sloppy packaging rather than proven malicious intent.
Capability Analysis
Type: OpenClaw Skill Name: ghl-crm Version: 1.0.0 The OpenClaw AgentSkills bundle for GoHighLevel CRM is benign. The `SKILL.md` provides clear, non-malicious instructions for using the GHL API. The `scripts/ghl_api.py` script acts as a wrapper for the legitimate GoHighLevel API (`https://services.leadconnectorhq.com`), reading necessary API keys from environment variables. There is no evidence of data exfiltration, arbitrary command execution, persistence mechanisms, or prompt injection attempts against the agent. All operations are confined to making authenticated HTTP requests to the specified CRM API.
Capability Assessment
Purpose & Capability
Name, description, endpoints and included script all match a GoHighLevel CRM integration. The API base URL and operations (contacts, pipelines, conversations, calendars, workflows) are consistent with the stated purpose.
Instruction Scope
SKILL.md and the CLI examples explicitly reference GHL_LOCATION_ID and show actions that send SMS/email (conversations send-sms/send-email). However the skill metadata/registry only lists GHL_API_KEY as a required env var. The runtime instructions otherwise stay within the CRM domain and do not request unrelated files or endpoints.
Install Mechanism
No install spec (instruction-only with an included Python script). No downloads or archive extraction. The script is present in the package and has no obfuscated code or external install URLs.
Credentials
PrimaryEnv is GHL_API_KEY which is appropriate, but the runtime script requires both GHL_API_KEY and GHL_LOCATION_ID and will exit if either is missing. The declared required env vars (metadata/registry) omit GHL_LOCATION_ID — this is an incoherence that could lead to runtime failure or confusion. The API key is sensitive and the skill can trigger outgoing messages; users should ensure the key has minimal scopes.
Persistence & Privilege
No always:true, no system-wide changes, and no install-time privileged actions. The skill does not request persistent system privileges or modify other skills' configurations.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ghl-crm
  3. After installation, invoke the skill by name or use /ghl-crm
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release — adds complete GoHighLevel CRM API v2 integration for OpenClaw agents: - Manage contacts, pipelines, conversations (SMS/email/WhatsApp), calendars, appointments, and workflows via the GHL API v2. - Supports searching, creating, updating, and deleting contacts and opportunities. - Enables sending and retrieving messages, booking appointments, and managing calendar slots. - Includes detailed command-line examples and authentication setup. - Handles API rate limits with automatic retries.
Metadata
Slug ghl-crm
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Ghl Crm?

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 334 downloads so far.

How do I install Ghl Crm?

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

Is Ghl Crm free?

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

Which platforms does Ghl Crm support?

Ghl Crm is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Ghl Crm?

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

💬 Comments