@elitedcs/ghl-mcp 3.45.0 → 3.47.0

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,67 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.47.0 — Blueprint Cap-0: cross-workflow exit chaining + native trigger builders
4
+
5
+ Two foundational executor fixes so `apply_build_plan` builds workflows that actually
6
+ chain together AND actually fire — the prerequisites for a non-hollow account build.
7
+
8
+ - **Fixed: a cross-workflow `remove_from_workflow` / `add_to_workflow` halted the build.**
9
+ When one workflow's exit action targeted another workflow in the SAME plan, execute
10
+ halted, reporting the (already-built) target as unresolved — so the canonical "pull the
11
+ lead out of nurture when they book / reply" pattern (workflows that enrol each other)
12
+ could not fully execute. The executor now resolves EVERY workflow's identity in a first
13
+ pass (never-clobber bind existing, else create an empty DRAFT) before expanding any
14
+ actions, so forward, backward, AND mutual cross-workflow references all resolve. Safety
15
+ rails intact and hardened: never-clobber (existing workflows are never modified),
16
+ empty-orphan detection (now halts rather than blind-binds when an existing workflow's
17
+ action count is unreadable), verify-after, and rollback of every unsaved shell on a halt
18
+ — with any orphan id that could not be deleted SURFACED in the halt message (never
19
+ swallowed) and dropped from the returned id map.
20
+ - **New: native trigger builders for the trigger types real accounts actually use.**
21
+ Previously only `contact_tag` triggers were auto-built; every other workflow shipped
22
+ trigger-less (inactive) — the #1 reason builds were hollow. Blueprint now builds
23
+ `form_submission`, `appointment` (status-conditioned, e.g. confirmed / no-show),
24
+ `customer_reply`, `pipeline_stage_updated`, `inbound_webhook`, and `payment_received`
25
+ triggers natively. Each saved shape was CAPTURED from a real, live, UI-built trigger in a
26
+ reference account (not guessed) so the synthesized trigger reads back identical and fires.
27
+ Refs in trigger conditions (form / pipeline / stage) resolve to real GHL ids at build
28
+ time. A trigger type Blueprint doesn't yet build natively — or one missing the field it
29
+ needs (e.g. an `appointment` trigger with no status) — is still surfaced as a manual step.
30
+ - Plan validation now rejects two workflows that share a name (the executor binds workflows
31
+ by name, so duplicates would collapse onto one shell).
32
+
33
+ ## 3.46.0 — `verify_funnel`: prove a funnel actually captures leads (+ external-funnel wiring bundle)
34
+
35
+ The live-runtime companion to `audit_workflows`. `audit_workflows` finds dead workflow
36
+ steps (static); **`verify_funnel`** proves a public funnel actually **captures** a lead AND
37
+ the machine **acts** on it — because the UI is never proof. (Motivated by two real failures
38
+ from the field: a funnel whose thank-you page showed while every lead silently evaporated,
39
+ and a handler that wrote guessed field keys so values were dropped on save.)
40
+
41
+ - **New tool `verify_funnel`.** Submits a clearly-marked sentinel lead to the live funnel
42
+ URL, then reads GHL back to verify what REALLY happened:
43
+ - **Backend truth** — the contact is actually created (`search_contacts`), with submit→appear latency.
44
+ - **Field-value fidelity** — each expected field PERSISTED with the exact submitted value
45
+ (a wrong field id makes upsert succeed while silently dropping the value).
46
+ - **Trigger tag landed**, else the speed-to-lead workflow can't fire.
47
+ - **SMS/A2P pre-check** — flags an account with no SMS-capable number (any SMS step would silently fail).
48
+ - **Workflow status** — flags a DRAFT workflow (never fires on real leads).
49
+ - **Outreach fired** — an outbound message was actually logged (proves enrollment + send, not a green log).
50
+ - **Consent recorded** when messaging fires (TCPA/CAN-SPAM).
51
+ - **Duplicate-contact dedup** + **concurrent double-submit race** (lag-stable polling, no false-pass).
52
+ - **Routing/opportunity/attribution** (optional) and **multi-surface** (extra URLs).
53
+ - Booking can't be faked server-side → surfaced as a manual "book one real appointment" step.
54
+ - Safety: creates a real (clearly-marked `blueprint-qa`) contact and may fire real automation;
55
+ cleans the sentinel(s) up afterward by default (cleanup runs even on error), with a verdict
56
+ that turns any failed assertion into an overall FAIL (no silent skips).
57
+ - **`apply_build_plan` execute now returns an `externalWiring` bundle.** For each
58
+ `target:"external"` funnel: the location id, the **verified GHL custom-field ids** the
59
+ external form must send (never name-guessed keys), the booking URL, and the contact-tag
60
+ trigger to add — with an `unresolved` list for anything not yet built. This is what you
61
+ template into the self-hosted lead bridge (`templates/external-funnel/`).
62
+ - External-funnel README hardened: the contactless-inbound-webhook rationale (why the bridge
63
+ uses `/contacts/upsert`, not a raw trigger) + a "verify after deploy" QA checklist.
64
+
3
65
  ## 3.35.0 — `create_social_post` is now draft-first (closes the silent "everything published at once" trap)
4
66
 
5
67
  **Behavior change.** `create_social_post` no longer defers go-live to GoHighLevel's
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GHL Command — GoHighLevel MCP Server
2
2
 
3
- **Full GoHighLevel API access for Claude.** 219 tools across 43 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. **Multi-tenant:** one install can run the workflow builder across multiple clients' GHL accounts.
3
+ **Full GoHighLevel API access for Claude.** 220 tools across 43 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. **Multi-tenant:** one install can run the workflow builder across multiple clients' GHL accounts.
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
 
@@ -116,7 +116,7 @@ Run setup_ghl_mcp to activate GHL Command:
116
116
  ghl_location_id: YOUR_LOCATION_ID
117
117
  ```
118
118
 
119
- Approve the tool call. Server validates your license, verifies your GHL credentials, writes them to a per-user config file. **Quit Claude one more time and reopen** — the full core toolset is now unlocked (219 tools total with the optional Workflow Builder Firebase add-on).
119
+ Approve the tool call. Server validates your license, verifies your GHL credentials, writes them to a per-user config file. **Quit Claude one more time and reopen** — the full core toolset is now unlocked (220 tools total with the optional Workflow Builder Firebase add-on).
120
120
 
121
121
  ### 4. Try it
122
122
 
@@ -734,7 +734,7 @@ Source repo is private. Contributors need an invitation from `drjerryrelth`. The
734
734
 
735
735
  ### Reducing context / token usage
736
736
 
737
- Every registered MCP tool's schema is shipped to the model on every message. With 219 tools that's a meaningful per-message context cost even in chats that never touch GHL. If you only use a slice of GHL Command, restrict the tool surface with `GHL_ENABLED_MODULES` and/or `GHL_ENABLED_TOOLS`:
737
+ Every registered MCP tool's schema is shipped to the model on every message. With 220 tools that's a meaningful per-message context cost even in chats that never touch GHL. If you only use a slice of GHL Command, restrict the tool surface with `GHL_ENABLED_MODULES` and/or `GHL_ENABLED_TOOLS`:
738
738
 
739
739
  ```jsonc
740
740
  // Claude Desktop config — enable whole modules