Skills ghl-crm-mastery
Full read/write access to GoHighLevel CRM via API v2. Contacts, conversations, notes, opportunities, calendars, tags, tasks, forms, workflows, payments, and invoices. Includes rate-limit retries, safety guardrails, and real-time conversation support.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/brianxmacdonald/ghl" ~/.claude/skills/openclaw-skills-ghl-crm-mastery && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/brianxmacdonald/ghl" ~/.openclaw/skills/openclaw-skills-ghl-crm-mastery && rm -rf "$T"
skills/brianxmacdonald/ghl/SKILL.mdGHL CRM Mastery — GoHighLevel API v2 Skill
What This Does
Gives your agent full operational access to GoHighLevel — read, write, and real-time conversation management. Designed for CRM automation agents (appointment setting, lead qualification, pipeline management).
Contact Operations
- contacts list — List contacts with pagination
- contacts get — Full contact record by ID (name, email, phone, company, tags, custom fields)
- contacts search — Find contact by email
- contacts search-phone — Find contact by phone number
- contacts update — Update any contact field (company, tags, custom fields, etc.)
- contacts add-tags — Apply tags to a contact
- contacts remove-tag — Remove a tag from a contact
Conversation Operations (Real-Time)
- conversations list — List recent conversations
- conversations get — Full conversation history for a contact (last 20 messages with direction, type, timestamp)
- conversations send — Send SMS, email, or DM reply through GHL. This is how the agent responds to leads.
Notes
- notes add — Add research notes, call summaries, or interaction logs to a contact record
- notes list — Read existing notes for a contact
Pipeline & Opportunities
- opportunities list — List pipeline items
- opportunities get — Full opportunity details
- opportunities update — Move opportunity to a different pipeline stage
Calendars
- calendars list — List available calendars
- calendars events — List events for a calendar
Tags, Forms, Workflows
- tags list — List all tags in the location
- forms list — List forms
- forms submissions — Get submissions for a specific form
- workflows list — List workflows (read-only)
- workflows trigger — Trigger a workflow for a contact (NEVER create/edit/delete)
System
- health — Test GHL API connection
Real-Time Conversation Pattern
The agent uses this skill for instant lead response. The pattern:
First touch (new lead, no prior research):
orcontacts search-phone
— find the contactcontacts search
— pull full recordcontacts get
— check for existing researchnotes list- If no research notes → run identity verification (separate skill/process)
— read conversation historyconversations get- Craft personalized response
— reply via GHLconversations send
— log research findings + what was sentnotes add
Follow-up messages (contact already researched):
— pull record (already has research in notes)contacts get
— read latest messagesconversations get- Craft contextual reply (15-30 second target)
— replyconversations send
— brief log of interactionnotes add
Key principle: Research happens ONCE per contact. After that, the agent reads its own notes and the conversation history, then replies fast. The goal is real-time chat feel — under 30 seconds for follow-ups.
Prerequisites
Required environment variables (must be set in your
.env file):
GHL_API_KEY=your-private-integration-token GHL_LOCATION_ID=your-location-id
Required runtime:
python3 (ships with macOS; verify with python3 --version).
Getting Your GHL Credentials
- Log into GoHighLevel → Settings → Integrations → Private Integrations → Create New
- Name it appropriately for your deployment
- Enable all required scopes:
- contacts.readonly, contacts.write
- conversations.readonly, conversations.write
- conversations/message.readonly, conversations/message.write
- opportunities.readonly, opportunities.write
- calendars.readonly, calendars.write
- calendars/events.readonly, calendars/events.write
- locations/tags.readonly, locations/tags.write
- locations/tasks.readonly, locations/tasks.write
- forms.readonly, workflows.readonly
- payments/transactions.readonly, locations.readonly
- invoices.readonly, invoices.write, users.readonly
- Copy the Private Integration Token →
inGHL_API_KEY.env - Settings → Business Info → copy Location ID →
inGHL_LOCATION_ID.env
Usage
All commands are run via the included Python CLI at
{baseDir}/scripts/ghl_api.py:
export GHL_API_KEY=$(grep GHL_API_KEY ~/.openclaw/.env | cut -d= -f2) export GHL_LOCATION_ID=$(grep GHL_LOCATION_ID ~/.openclaw/.env | cut -d= -f2) # Test connection python3 {baseDir}/scripts/ghl_api.py health # Test contact lookup python3 {baseDir}/scripts/ghl_api.py contacts list --limit 1 # Test conversation read python3 {baseDir}/scripts/ghl_api.py conversations get --contact-id "YOUR_CONTACT_ID" # Send a message python3 {baseDir}/scripts/ghl_api.py conversations send --contact-id "CONTACT_ID" --message "Hello" --type sms # Add a note python3 {baseDir}/scripts/ghl_api.py notes add --contact-id "CONTACT_ID" --body "Research findings..."
Safety Guardrails (Non-Negotiable)
- Never create contacts — GHL creates contacts automatically when forms are submitted, SMS received, or DMs received. Creating contacts manually risks duplicates. If a contact doesn't exist, flag to the appropriate channel.
- Never delete contacts without explicit human confirmation in Slack
- Never send bulk SMS without human approval
- Never modify workflows — trigger only, never create/edit/delete
- Log every write operation — every
andconversations send
prints a timestamped log linenotes add - TCPA compliance — no SMS between 9PM and 8AM in the recipient's time zone (enforced by TCPA handler layer, not this skill)
Network Endpoints
This skill connects exclusively to the GoHighLevel API:
— GHL API v2 (all operations)https://services.leadconnectorhq.com
No other external endpoints are contacted. All credentials are read from local environment variables only.
Changelog
v1.3.0 (March 2026)
- Added
frontmatter declarations (requires.env, requires.bins, primaryEnv) for ClawHub security compliancemetadata.openclaw - Added
references for portable skill paths{baseDir} - Added explicit network endpoint documentation
- Updated _meta.json with runtime and credential requirements
- Generalized agent references for broader deployment compatibility
v1.2.0 (March 2026)
- Added conversations send, notes list, contacts search-phone
- Real-time conversation pattern documentation
v1.0.0 (March 2026)
- Initial release: 24 endpoints covering contacts, conversations, notes, opportunities, calendars, tags, forms, workflows