@elitedcs/ghl-mcp 3.2.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/README.md +6 -5
- package/dist/index.js +537 -52
- package/package.json +3 -2
- package/templates/trigger-schemas.json +37854 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.3.1 — validate_workflow + catalogue in npm package
|
|
4
|
+
|
|
5
|
+
**174 tools across 37 modules. Bundle: 266.2 KB.**
|
|
6
|
+
|
|
7
|
+
Two small wins:
|
|
8
|
+
|
|
9
|
+
### `validate_workflow` tool (NEW)
|
|
10
|
+
Pre-flight ID validation for a deployed workflow. Scans every trigger and action for references to pipelines, pipeline stages, custom fields, users, and other workflows. Verifies each ID exists in the current location. Returns a structured report with `references_scanned`, `issues_count`, and a `findings[]` list naming exactly which action / trigger / field path holds an invalid reference.
|
|
11
|
+
|
|
12
|
+
This catches the silent-failure bug documented in CLAUDE.md: *"Invalid IDs silently kill all subsequent actions in a workflow."* GHL doesn't surface the error anywhere — actions just stop firing. Run `validate_workflow <workflowId>` after editing, or whenever a workflow stops behaving as expected.
|
|
13
|
+
|
|
14
|
+
Coverage in this release:
|
|
15
|
+
- Pipeline IDs (in `internal_update_opportunity` actions + trigger conditions)
|
|
16
|
+
- Pipeline Stage IDs (cross-checked against their parent pipeline's stage list)
|
|
17
|
+
- Custom Field IDs (in `update_contact_field` actions)
|
|
18
|
+
- User IDs (in `internal_notification.selectedUser`, `task_notification.assignedTo`, trigger conditions)
|
|
19
|
+
- Workflow IDs (in `remove_from_workflow` actions + trigger `add_to_workflow` actions)
|
|
20
|
+
|
|
21
|
+
Forms, calendars, and surveys are referenced in trigger conditions for specific trigger types (form_submission, customer_appointment, survey_submission) — those checks are deferred to a later release.
|
|
22
|
+
|
|
23
|
+
### `templates/trigger-schemas.json` now ships in the npm package
|
|
24
|
+
The 1.1 MB trigger catalogue (57 native + 434 marketplace trigger entries) was previously left out of the published package — buyers running `npx -y @elitedcs/ghl-mcp@latest` didn't receive it. Added to `package.json` `files[]` so installs always include it.
|
|
25
|
+
|
|
26
|
+
### Files changed
|
|
27
|
+
- `src/tools/validators.ts` — NEW: registerValidatorTools + validate_workflow.
|
|
28
|
+
- `src/tools/index.ts` — wired validators into the registry.
|
|
29
|
+
- `package.json` — added trigger-schemas.json to `files[]`; bumped version; tool count 173 → 174; description updated.
|
|
30
|
+
- README, CLAUDE.md, CHANGELOG — synced.
|
|
31
|
+
|
|
32
|
+
## 3.3.0 — 100% native trigger coverage
|
|
33
|
+
|
|
34
|
+
**173 tools across 36 modules. Bundle: 255.4 KB.**
|
|
35
|
+
|
|
36
|
+
All **57 of 57** native GHL workflow trigger types now have their own typed Zod variant in `WorkflowTriggerSchema`. Claude can discriminate every trigger type by name and read documented field paths where the catalogue captured them.
|
|
37
|
+
|
|
38
|
+
Field-documentation completeness (per trigger, marked in the schema's `.describe()` so the LLM knows):
|
|
39
|
+
|
|
40
|
+
- **42 fully documented** — every filter field path captured (e.g., `contact_changed` with 12 fields, `opportunity_decay` with 9, `survey_submission`, `birthday_reminder`, etc.)
|
|
41
|
+
- **4 partial** — some fields captured, others not: `custom_date_reminder`, `inbound_trigger`, `facebook_comment_on_post`, `ig_comment_on_post`. Reads still pass; LLM is told docs are partial.
|
|
42
|
+
- **2 fieldless by design** — `inbound_webhook`, `payment_received` (fire on any event)
|
|
43
|
+
- **9 uncaptured** — typed-but-no-docs: `affiliate_created`, `scheduler_trigger`, `user_log_in`, `order_submission`, `conv_ai_trigger`, `conv_ai_autonomous_trigger`, `custom_object_created`, `custom_object_changed`, `facebook_lead_gen`. Most rarely used. Type discrimination still works; field paths to be backfilled when buyers need them.
|
|
44
|
+
|
|
45
|
+
### Backfills
|
|
46
|
+
- The 4 originally-typed triggers (contact_tag, appointment, customer_reply, pipeline_stage_updated) had incomplete field lists in v3.2.0. Now enriched with all captured fields. `customer_reply` went from "no fields documented" to `workflow.id, message.type, message.body, contact.tags`.
|
|
47
|
+
|
|
48
|
+
### Coverage delta
|
|
49
|
+
| State | Typed | Reachable-but-untyped | Total |
|
|
50
|
+
|---|---:|---:|---:|
|
|
51
|
+
| Before v3.1.0 | 4 | 0 (reads crashed) | 57 |
|
|
52
|
+
| v3.1.0 | 4 | 53 | 57 |
|
|
53
|
+
| v3.2.0 | 13 | 44 | 57 |
|
|
54
|
+
| **v3.3.0** | **57** | **0** | **57** |
|
|
55
|
+
|
|
56
|
+
### Future-proof
|
|
57
|
+
Even though every native trigger has a typed variant now, `UnknownTriggerSchema` is still in the union as the last fallback — if GHL ships a new trigger type, reads will pass through cleanly instead of throwing.
|
|
58
|
+
|
|
59
|
+
### Verified
|
|
60
|
+
- 57 / 57 typed variants matched their own type literal via runtime z.union parse test
|
|
61
|
+
- A synthetic "future_trigger_ghl_invents" type still passes through via the fallback
|
|
62
|
+
- Build: 255.4 KB (up from 248.4 KB; +7 KB for the 44 new variants)
|
|
63
|
+
|
|
64
|
+
### Files changed
|
|
65
|
+
- `src/trigger-schemas.ts` — all 57 typed variants + 4 doc-completeness statuses (`documented`, `partial`, `fieldless`, `uncaptured`) so the LLM's expectations match each trigger's reality.
|
|
66
|
+
|
|
3
67
|
## 3.2.0 — Deep trigger typing
|
|
4
68
|
|
|
5
69
|
**173 tools across 36 modules. Bundle: 248.4 KB.**
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GHL Command — GoHighLevel MCP Server
|
|
2
2
|
|
|
3
|
-
**Full GoHighLevel API access for Claude.**
|
|
3
|
+
**Full GoHighLevel API access for Claude.** 174 tools across 36 modules — manage contacts, conversations, pipelines, calendars, funnels, workflows, invoices, custom objects, webhooks, and more. **Includes full workflow builder, funnel/page editor, form builder, pipeline builder, bulk operations, account export, and workflow cloning** — capabilities no other GHL tool offers.
|
|
4
4
|
|
|
5
5
|
**Distributed via npm as [`@elitedcs/ghl-mcp`](https://www.npmjs.com/package/@elitedcs/ghl-mcp).** Buyers install with one config block — no git, no Node.js setup, no terminal commands. Updates flow automatically (`npx @latest` re-resolves on every Claude restart).
|
|
6
6
|
|
|
@@ -138,7 +138,7 @@ https://app.gohighlevel.com/v2/location/YOUR_LOCATION_ID/dashboard
|
|
|
138
138
|
|
|
139
139
|
## Enable Workflow Builder (Optional)
|
|
140
140
|
|
|
141
|
-
The
|
|
141
|
+
The 8 workflow builder tools use GHL'''s internal API and require Firebase credentials. Without them, the other 166 tools work fine — you just won'''t have workflow editing.
|
|
142
142
|
|
|
143
143
|
Grab the three values from your GHL browser session, then re-run `setup_ghl_mcp` with them:
|
|
144
144
|
|
|
@@ -167,7 +167,7 @@ Re-run setup_ghl_mcp with workflow builder:
|
|
|
167
167
|
|
|
168
168
|
---
|
|
169
169
|
|
|
170
|
-
## Tools (
|
|
170
|
+
## Tools (174)
|
|
171
171
|
|
|
172
172
|
### CRM & Contacts (15 tools)
|
|
173
173
|
|
|
@@ -332,7 +332,7 @@ Re-run setup_ghl_mcp with workflow builder:
|
|
|
332
332
|
| `get_subscriptions` | List active subscriptions |
|
|
333
333
|
| `get_transactions` | View transaction history |
|
|
334
334
|
|
|
335
|
-
### Workflow Builder (
|
|
335
|
+
### Workflow Builder (8 tools) — Internal API
|
|
336
336
|
|
|
337
337
|
> **This is the flagship feature.** GHL's public API has **zero** workflow write endpoints. These tools use GHL's internal backend API — the same API their own UI calls — reverse-engineered to give Claude full workflow CRUD. No other GHL integration, Zapier connector, or third-party tool can create or edit workflows programmatically. Requires additional Firebase auth setup (see "Enable Workflow Builder" in Quick Start above).
|
|
338
338
|
|
|
@@ -345,12 +345,13 @@ Re-run setup_ghl_mcp with workflow builder:
|
|
|
345
345
|
| `delete_workflow_full` | Permanently delete a workflow |
|
|
346
346
|
| `publish_workflow` | Publish a draft workflow to make it active |
|
|
347
347
|
| `get_trigger_registry` | Discover GHL's marketplace trigger apps (Zoom, WooCommerce, Shopify, etc.) and their available trigger templates |
|
|
348
|
+
| `validate_workflow` | Pre-flight validation: scans every action and trigger for references to pipelines, stages, custom fields, users, and other workflows; verifies each ID exists. Catches the silent-failure bug where invalid IDs make GHL skip subsequent actions |
|
|
348
349
|
|
|
349
350
|
**What you can build:** Complete automation sequences — lead nurture drip campaigns, appointment reminder sequences, onboarding flows, re-engagement workflows, internal notification chains. Tell Claude what you want and it builds the workflow action by action.
|
|
350
351
|
|
|
351
352
|
**Supported action types:** `sms`, `email`, `add_contact_tag`, `remove_contact_tag`, `update_contact_field`, `wait`, `if_else`, `webhook`, `create_opportunity`, `custom_code`, `add_notes`, `internal_notification`, `task-notification`, `remove_from_workflow`, and more.
|
|
352
353
|
|
|
353
|
-
**Supported trigger types:** All 57 native GHL trigger types
|
|
354
|
+
**Supported trigger types:** **All 57 native GHL trigger types are deeply typed** with their own Zod variant. 42 have full field-path documentation (`opportunity_*`, `form_submission`, `contact_changed`, `survey_submission`, `birthday_reminder`, `mailgun_email_event`, and 36 others). 4 have partial docs, 2 are fieldless by design, 9 have type-only discrimination pending field-path capture. A permissive fallback handles any future trigger types GHL ships, so reads never crash. Plus 434 marketplace trigger entries across 85 third-party apps — query them via `get_trigger_registry`.
|
|
354
355
|
|
|
355
356
|
### Pipeline Builder (5 tools) — Internal API
|
|
356
357
|
|