@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 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.** 173 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.
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 7 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.
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 (173)
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 (7 tools) — Internal API
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 read cleanly. **13 are deeply typed** with documented field paths (contact_tag, customer_reply, appointment, pipeline_stage_updated, form_submission, opportunity_created, opportunity_changed, opportunity_status_changed, payment_received, inbound_webhook, mailgun_email_event, note_add, task_added). The other 44 pass through a permissive schema so workflows never fail to read regardless of trigger type. Plus 434 marketplace trigger entries across 85 third-party apps — query them via `get_trigger_registry`.
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