highlevel

Connect your AI assistant to GoHighLevel CRM via the official API v2. Manage contacts, conversations, calendars, pipelines, invoices, payments, workflows, and 30+ endpoint groups through natural language. Includes interactive setup wizard and 100+ pre-built, safe API commands. Python 3.6+ stdlib only — zero external dependencies.

3,891 stars
Complexity: easy

About this skill

The highlevel skill transforms your AI assistant into a powerful GoHighLevel CRM command center. It allows for direct interaction with GoHighLevel's extensive API v2, covering 39 endpoint groups such as contacts, conversations, calendars, opportunities, invoices, payments, and workflows. Users can issue plain English commands to search contacts, send messages, book appointments, manage sales pipelines, create invoices, and even schedule social media posts, significantly streamlining CRM operations. This skill boasts an interactive setup wizard and comes pre-loaded with over 100 safe, pre-built API commands, simplifying complex API interactions into intuitive natural language prompts. Its design emphasizes ease of use and security, operating entirely within Python 3.6+ standard library with zero external dependencies, making it lightweight and highly compatible across various AI agent platforms. Primarily, this skill empowers business owners, sales teams, and marketers using GoHighLevel to automate and manage their CRM tasks more efficiently through conversational AI. It reduces the need for manual navigation within the GHL interface by allowing an AI assistant to execute complex tasks based on verbal or text instructions, thus enhancing productivity and responsiveness.

Best use case

The primary use case is to enable AI assistants to directly manage and automate tasks within the GoHighLevel CRM platform. This is most beneficial for sales teams, marketing agencies, and small business owners who rely on GoHighLevel for client management, lead nurturing, and business automation, allowing them to perform complex CRM operations through natural language commands, thus enhancing productivity and responsiveness.

Connect your AI assistant to GoHighLevel CRM via the official API v2. Manage contacts, conversations, calendars, pipelines, invoices, payments, workflows, and 30+ endpoint groups through natural language. Includes interactive setup wizard and 100+ pre-built, safe API commands. Python 3.6+ stdlib only — zero external dependencies.

Users should expect their AI assistant to accurately execute GoHighLevel CRM commands, such as retrieving contact information, creating tasks, or updating deal stages, based on natural language prompts.

Practical example

Example input

Find all contacts in GoHighLevel tagged 'Hot Lead' and show me their email addresses.

Example output

Found 3 contacts tagged 'Hot Lead'.
1. John Doe (john.doe@example.com)
2. Jane Smith (jane.smith@email.com)
3. Mike Jones (mike.jones@domain.com)

When to use this skill

  • To quickly manage GoHighLevel contacts, opportunities, and campaigns using natural language commands.
  • To automate repetitive GoHighLevel CRM tasks directly from an AI assistant.
  • When needing to access or update GoHighLevel data without manually navigating the platform.
  • To integrate GoHighLevel operations into broader AI-driven workflows for business process automation.

When not to use this skill

  • If you do not use GoHighLevel CRM.
  • If you prefer manual control over all CRM actions without AI assistance.
  • For tasks requiring deep visual inspection or complex UI interactions within GoHighLevel that an API cannot handle.
  • If you lack the required API token and location ID for GoHighLevel integration.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/highlevel/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/10xcoldleads/highlevel/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/highlevel/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How highlevel Compares

Feature / AgenthighlevelStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityeasyN/A

Frequently Asked Questions

What does this skill do?

Connect your AI assistant to GoHighLevel CRM via the official API v2. Manage contacts, conversations, calendars, pipelines, invoices, payments, workflows, and 30+ endpoint groups through natural language. Includes interactive setup wizard and 100+ pre-built, safe API commands. Python 3.6+ stdlib only — zero external dependencies.

How difficult is it to install?

The installation complexity is rated as easy. You can find the installation instructions above.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# GoHighLevel API Skill

> **Turn your AI assistant into a GoHighLevel command center.** Search contacts, send messages, book appointments, manage pipelines, create invoices, schedule social posts — across all 39 GHL API v2 endpoint groups, using plain English.

**Don't have GoHighLevel yet?** Start with the free 5-Day AI Employee Challenge and build a fully automated system:
👉 [**Start the 5-Day AI Employee Challenge**](https://gohighlevel.com/5-day-challenge?fp_ref=369ai)

## Requirements

| Requirement | Details |
|-------------|---------|
| **Runtime** | Python 3.6+ (uses only standard library: `urllib`, `json`, `os`, `re`, `sys`, `time`) |
| **External packages** | **None** — zero `pip install` required |
| **Environment variables** | `HIGHLEVEL_TOKEN` (Primary — your Private Integration bearer token) |
| | `HIGHLEVEL_LOCATION_ID` (your sub-account Location ID) |
| **Network access** | HTTPS to `services.leadconnectorhq.com` only |

**Base URL**: `https://services.leadconnectorhq.com`
**Required Headers**: `Authorization: Bearer $HIGHLEVEL_TOKEN` + `Version: 2021-07-28`
**Rate Limits**: 100 requests/10 seconds burst, 200K/day per location

## Security Design

All API functions use pre-defined endpoint paths — there is no arbitrary HTTP request capability. Every user-supplied ID is validated against a strict alphanumeric regex (`^[a-zA-Z0-9_-]{1,128}$`) before being included in any URL path, preventing path traversal and injection. The scripts use only Python's built-in `urllib.request` for all network calls. No shell commands, no external binaries, no file writes outside of stdout.

## Setup — `/highlevel-setup`

If the user says "set up highlevel", "connect my GHL", or `/highlevel-setup`, run the setup wizard:

```bash
python3 scripts/setup-wizard.py
```

The wizard automatically: checks environment variables → guides Private Integration creation → tests the connection → pulls first 5 contacts as a quick win.

### Manual Setup (if wizard can't run)

#### Step 1: Create a Private Integration (NOT the old API Keys method)
1. Log into **app.gohighlevel.com**
2. Switch to your **Sub-Account** (recommended for single-location use)
3. Click **Settings** (bottom-left gear icon)
4. Select **Private Integrations** in the left sidebar
   - If not visible, enable it first: Settings → Labs → toggle Private Integrations ON
5. Click **"Create new Integration"**
6. Enter a name (e.g., "Claude AI Assistant") and description
7. **Grant only the scopes you need** (least-privilege recommended):

   | Use case | Recommended scopes |
   |----------|--------------------|
   | Contact management only | `contacts.readonly`, `contacts.write` |
   | Contacts + messaging | Above + `conversations.readonly`, `conversations.write`, `conversations/message.write` |
   | Full CRM (contacts, calendar, pipeline) | Above + `calendars.readonly`, `calendars.write`, `opportunities.readonly`, `opportunities.write` |
   | Adding workflows & invoices | Above + `workflows.readonly`, `invoices.readonly`, `invoices.write` |
   | Read-only reporting | `contacts.readonly`, `opportunities.readonly`, `calendars.readonly`, `invoices.readonly`, `locations.readonly` |

   You can always add more scopes later in Settings → Private Integrations → Edit without regenerating the token.

8. Click Create → **Copy the token IMMEDIATELY** — it is shown only once and cannot be retrieved later

#### Agency vs Sub-Account Integrations

| Feature | Agency Integration | Sub-Account Integration |
|---------|-------------------|------------------------|
| Created at | Agency Settings → Private Integrations | Sub-Account Settings → Private Integrations |
| Access scope | Agency + all sub-accounts (pass `locationId`) | Single location only |
| Available scopes | All scopes including `locations.write`, `oauth.*`, `saas.*`, `snapshots.*`, `companies.readonly` | Sub-account scopes only |
| Best for | Multi-location management, SaaS configurator | Single client integrations (recommended default) |

> **Recommendation:** Start with a Sub-Account integration and the minimum scopes you need. You can upgrade to Agency-level later if you need multi-location access.

### Step 2: Get Your Location ID
1. While in the sub-account, go to **Settings** → **Business Info** (or **Business Profile**)
2. The **Location ID** is displayed in the General Information section
3. Alternative: check the URL bar — it's the ID after `/location/` in `app.gohighlevel.com/v2/location/{LOCATION_ID}/...`

### Step 3: Set Environment Variables
```bash
export HIGHLEVEL_TOKEN="your-private-integration-token"
export HIGHLEVEL_LOCATION_ID="your-location-id"
```

### Step 4: Test Connection
Run `python3 scripts/ghl-api.py test_connection` — should return location name and status.

After successful setup, pull 5 contacts as a quick win to confirm everything works.

## Helper Script

`scripts/ghl-api.py` — Executable Python script (stdlib only) with built-in retry logic, pagination, input validation, and error handling.

**Core Commands:**
| Command | Description |
|---------|-------------|
| `test_connection` | Verify token + location ID work |
| `search_contacts [query]` | Search by name, email, or phone |
| `get_contact [id]` | Get full contact details |
| `create_contact [json]` | Create new contact |
| `update_contact [id] [json]` | Update contact fields |
| `list_opportunities` | List pipeline opportunities |
| `list_conversations` | List recent conversations |
| `send_message [contactId] [message]` | Send SMS/email |
| `list_calendars` | List all calendars |
| `get_free_slots [calendarId] [startDate] [endDate]` | Available booking slots |
| `list_workflows` | List all workflows |
| `add_to_workflow [contactId] [workflowId]` | Enroll contact in workflow |
| `list_invoices` | List invoices |
| `list_products` | List products |
| `list_forms` | List forms |
| `list_campaigns` | List campaigns |
| `get_location_details` | Get location info |
| `list_location_tags` | List location tags |
| `list_courses` | List courses/memberships |

All functions are safe, pre-defined endpoints. No arbitrary request capability.

## Complete API v2 Coverage (39 Endpoint Groups)

The skill provides safe, specific functions for all major GHL operations. Each function maps to a specific, allowed API endpoint with validated parameters.

| # | Group | Base Path | Key Operations | Scope Prefix |
|---|-------|-----------|----------------|-------------|
| 1 | **Contacts** | `/contacts/` | CRUD, search, upsert, tags, notes, tasks, bulk ops | `contacts` |
| 2 | **Conversations** | `/conversations/` | Search, messages (SMS/email/WhatsApp/FB/IG/chat), recordings | `conversations` |
| 3 | **Calendars** | `/calendars/` | CRUD, free slots, groups, resources, appointments | `calendars` |
| 4 | **Opportunities** | `/opportunities/` | CRUD, search, pipelines, stages, status, followers | `opportunities` |
| 5 | **Workflows** | `/workflows/` | List workflows, enroll/remove contacts | `workflows` |
| 6 | **Campaigns** | `/campaigns/` | List campaigns (read-only) | `campaigns` |
| 7 | **Invoices** | `/invoices/` | CRUD, send, void, record payment, Text2Pay, schedules, estimates | `invoices` |
| 8 | **Payments** | `/payments/` | Orders, transactions, subscriptions, coupons, providers | `payments` |
| 9 | **Products** | `/products/` | CRUD, prices, collections, reviews, store stats | `products` |
| 10 | **Locations** | `/locations/` | Get/update location, custom fields, custom values, tags, templates | `locations` |
|    | | | **Custom Fields CRUD:** | |
|    | | | `GET /locations/{id}/customFields` — List | |
|    | | | `POST /locations/{id}/customFields` — Create | |
|    | | | `PUT /locations/{id}/customFields/{fid}` — Update | |
|    | | | `DELETE /locations/{id}/customFields/{fid}` — Delete | |
|    | | | **Custom Values CRUD:** | |
|    | | | `GET /locations/{id}/customValues` — List | |
|    | | | `POST /locations/{id}/customValues` — Create | |
|    | | | `PUT /locations/{id}/customValues/{vid}` — Update | |
|    | | | `DELETE /locations/{id}/customValues/{vid}` — Delete | |
|    | | | **Tags CRUD:** | |
|    | | | `GET /locations/{id}/tags` — List | |
|    | | | `POST /locations/{id}/tags` — Create | |
|    | | | `PUT /locations/{id}/tags/{tid}` — Update | |
|    | | | `DELETE /locations/{id}/tags/{tid}` — Delete | |
| 11 | **Users** | `/users/` | CRUD, filter by email/role | `users` |
| 12 | **Forms** | `/forms/` | List forms, get submissions | `forms` |
| 13 | **Surveys** | `/surveys/` | List surveys, get submissions | `surveys` |
| 14 | **Funnels** | `/funnels/` | List funnels, pages, redirects | `funnels` |
| 15 | **Social Planner** | `/social-media-posting/` | Posts CRUD, accounts, CSV import, categories, stats | `socialplanner` |
| 16 | **Blogs** | `/blogs/` | Create/update posts, categories, authors | `blogs` |
| 17 | **Email** | `/emails/` | Templates CRUD, scheduled emails | `emails` |
| 18 | **Media** | `/medias/` | Upload, list, delete files | `medias` |
| 19 | **Trigger Links** | `/links/` | CRUD trigger links | `links` |
| 20 | **Businesses** | `/businesses/` | CRUD businesses | `businesses` |
| 21 | **Companies** | `/companies/` | Get company details (Agency) | `companies` |
| 22 | **Custom Objects** | `/objects/` | Schema CRUD, record CRUD | `objects` |
| 23 | **Associations** | `/associations/` | CRUD associations and relations | `associations` |
| 24 | **Proposals/Docs** | `/proposals/` | Documents, contracts, templates | `documents_contracts` |
| 25 | **Snapshots** | `/snapshots/` | List, status, share links (Agency) | `snapshots` |
| 26 | **SaaS** | `/saas/` | Subscription mgmt, plans, bulk ops (Agency $497) | `saas` |
| 27 | **Courses** | `/courses/` | Import courses/memberships | `courses` |
| 28 | **Voice AI** | `/voice-ai/` | Call logs, agent CRUD, actions, goals | `voice-ai` |
| 29 | **Phone System** | `/phone-system/` | Phone numbers, number pools | `phonenumbers` |
| 30 | **Custom Menus** | `/custom-menus/` | CRUD custom menu links (Agency) | `custom-menu-link` |
| 31 | **OAuth** | `/oauth/` | Token exchange, installed locations | `oauth` |
| 32 | **Marketplace** | `/marketplace/` | Installations, billing, charges | `marketplace` |
| 33 | **Conversation AI** | `/conversation-ai/` | AI chatbot configuration | — |
| 34 | **Knowledge Base** | `/knowledge-base/` | Knowledge base for AI features | — |
| 35 | **AI Agent Studio** | `/agent-studio/` | Custom AI agent CRUD | — |
| 36 | **Brand Boards** | `/brand-boards/` | Brand board management | — |
| 37 | **Store** | `/store/` | E-commerce store management | — |
| 38 | **LC Email** | `/lc-email/` | Email infrastructure (ISV) | — |
| 39 | **Custom Fields** | `/locations/:id/customFields/` | Custom field CRUD | `locations/customFields` |

## Reference Docs (load on demand)

For detailed endpoint paths, parameters, and examples for each group:

- `references/contacts.md` — Contact CRUD, search, tags, notes, tasks, bulk operations
- `references/conversations.md` — Messaging across all channels, recordings, transcriptions
- `references/calendars.md` — Calendar CRUD, free slots, appointments, groups, resources
- `references/opportunities.md` — Pipeline management, stages, status updates
- `references/invoices-payments.md` — Invoices, payments, orders, subscriptions, products
- `references/locations-users.md` — Location settings, custom fields/values, users, tags
- `references/social-media.md` — Social planner posts, accounts, OAuth connections
- `references/forms-surveys-funnels.md` — Forms, surveys, funnels, trigger links
- `references/advanced.md` — Custom objects, associations, snapshots, SaaS, Voice AI, blogs, courses
- `references/troubleshooting.md` — Common errors, rate limits, token rotation, debugging

## Important Notes

- **Private Integrations are required** — the old Settings → API Keys method is deprecated/EOL
- **Token rotation**: Tokens don't auto-expire but GHL recommends 90-day rotation. Unused tokens auto-expire after 90 days inactivity
  - **"Rotate and expire later"** — new token generated, old token stays active for 7-day grace period
  - **"Rotate and expire now"** — old token invalidated immediately (use for compromised credentials)
  - You can edit scopes without regenerating the token
- **OAuth tokens** (marketplace apps only): Access tokens expire in 24 hours (86,399s); refresh tokens last up to 1 year
- Agency tokens can access sub-account data by passing `locationId` parameter
- **Rate limits are per-resource** — each sub-account independently gets 100/10s burst + 200K/day. SaaS endpoints: 10 req/sec global
- All list endpoints default to 20 records, max 100 per page via `limit` param
- Use cursor pagination with `startAfter` / `startAfterId` for large datasets
- Monitor rate limits via response headers: `X-RateLimit-Limit-Daily`, `X-RateLimit-Daily-Remaining`, `X-RateLimit-Max`, `X-RateLimit-Remaining`, `X-RateLimit-Interval-Milliseconds`
- **$497 Agency Pro plan** required for: SaaS Configurator, Snapshots, full agency management APIs

## Webhook Events

50+ webhook event types for real-time notifications. Key events: `ContactCreate`, `ContactDelete`, `ContactTagUpdate`, `InboundMessage`, `OutboundMessage`, `OpportunityCreate`, `OpportunityStageUpdate`, `OpportunityStatusUpdate`, appointment events, payment events, form submission events. Webhooks continue firing even if access token expires. Config is per marketplace app.
Docs: https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide

## Official SDKs & Developer Resources

- **Node.js**: `@gohighlevel/api-client` (npm) — supports `privateIntegrationToken` config, auto 401 retry
- **Python**: `gohighlevel-api-client` (PyPI) — session storage, auto token refresh, webhook middleware
- **PHP SDK** also available
- All SDKs use `apiVersion: '2021-07-28'`
- **OpenAPI Specs**: https://github.com/GoHighLevel/highlevel-api-docs
- **API Docs**: https://marketplace.gohighlevel.com/docs/
- **Developer Slack**: https://developers.gohighlevel.com/join-dev-community

---

### Built by Ty Shane

[🌐 LaunchMyOpenClaw.com](https://launchmyopenclaw.com) • [🌐 MyFBLeads.com](https://myfbleads.com)
[▶️ YouTube @10xcoldleads](https://youtube.com/@10xcoldleads) • [📘 Facebook](https://facebook.com/ty.shane.howell.2025) • [💼 LinkedIn](https://linkedin.com/in/ty-shane/)
📧 ty@10xcoldleads.com

**No GoHighLevel account yet?** → [Start the free 5-Day AI Employee Challenge](https://gohighlevel.com/5-day-challenge?fp_ref=369ai)

Related Skills

agent-autonomy-kit

3891
from openclaw/skills

Stop waiting for prompts. Keep working.

Workflow & Productivity

Meeting Prep

3891
from openclaw/skills

Never walk into a meeting unprepared again. Your agent researches all attendees before calendar events—pulling LinkedIn profiles, recent company news, mutual connections, and conversation starters. Generates a briefing doc with talking points, icebreakers, and context so you show up informed and confident. Triggered automatically before meetings or on-demand. Configure research depth, advance timing, and output format. Walking into meetings blind is amateur hour—missed connections, generic small talk, zero leverage. Use when setting up meeting intelligence, researching specific attendees, generating pre-meeting briefs, or automating your prep workflow.

Workflow & Productivity

obsidian

3891
from openclaw/skills

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli. And also 50+ models for image generation, video generation, text-to-speech, speech-to-text, music, chat, web search, document parsing, email, and SMS.

Workflow & Productivity

Obsidian CLI 探索记录

3891
from openclaw/skills

Skill for the official Obsidian CLI (v1.12+). Complete vault automation including files, daily notes, search, tasks, tags, properties, links, bookmarks, bases, templates, themes, plugins, sync, publish, workspaces, and developer tools.

Workflow & Productivity

📝 智能摘要助手 (Smart Summarizer)

3891
from openclaw/skills

Instantly summarize any content — articles, PDFs, YouTube videos, web pages, long documents, or pasted text. Extracts key points, action items, and insights. Use when you need to quickly digest long content, create meeting notes, or extract takeaways from any source.

Workflow & Productivity

Customer Onboarding

3891
from openclaw/skills

Systematically onboard new clients with checklists, welcome sequences, milestone tracking, and success metrics. Reduce churn by nailing the first 90 days.

Workflow & Productivity

CRM Manager

3891
from openclaw/skills

Manages a local CSV-based CRM with pipeline tracking

Workflow & Productivity

Invoice Generator

3891
from openclaw/skills

Creates professional invoices in markdown and HTML

Workflow & Productivity

Productivity Operating System

3891
from openclaw/skills

You are a personal productivity architect. Your job: help the user design, execute, and optimize their daily system so they consistently ship high-impact work while protecting energy and avoiding burnout.

Workflow & Productivity

Product Launch Playbook

3891
from openclaw/skills

You are a Product Launch Strategist. You guide users through planning, executing, and optimizing product launches — from pre-launch validation through post-launch growth. This system works for SaaS, physical products, services, marketplaces, and content products.

Workflow & Productivity

Procurement Manager

3891
from openclaw/skills

You are a procurement specialist agent. Help teams evaluate vendors, manage purchase orders, negotiate contracts, and optimize spend.

Workflow & Productivity

Procurement Operations Agent

3891
from openclaw/skills

You are a procurement operations analyst. When the user provides company details, run a full procurement assessment.

Workflow & Productivity