@elitedcs/ghl-mcp 3.1.1 → 3.3.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,71 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.3.0 — 100% native trigger coverage
4
+
5
+ **173 tools across 36 modules. Bundle: 255.4 KB.**
6
+
7
+ 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.
8
+
9
+ Field-documentation completeness (per trigger, marked in the schema's `.describe()` so the LLM knows):
10
+
11
+ - **42 fully documented** — every filter field path captured (e.g., `contact_changed` with 12 fields, `opportunity_decay` with 9, `survey_submission`, `birthday_reminder`, etc.)
12
+ - **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.
13
+ - **2 fieldless by design** — `inbound_webhook`, `payment_received` (fire on any event)
14
+ - **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.
15
+
16
+ ### Backfills
17
+ - 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`.
18
+
19
+ ### Coverage delta
20
+ | State | Typed | Reachable-but-untyped | Total |
21
+ |---|---:|---:|---:|
22
+ | Before v3.1.0 | 4 | 0 (reads crashed) | 57 |
23
+ | v3.1.0 | 4 | 53 | 57 |
24
+ | v3.2.0 | 13 | 44 | 57 |
25
+ | **v3.3.0** | **57** | **0** | **57** |
26
+
27
+ ### Future-proof
28
+ 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.
29
+
30
+ ### Verified
31
+ - 57 / 57 typed variants matched their own type literal via runtime z.union parse test
32
+ - A synthetic "future_trigger_ghl_invents" type still passes through via the fallback
33
+ - Build: 255.4 KB (up from 248.4 KB; +7 KB for the 44 new variants)
34
+
35
+ ### Files changed
36
+ - `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.
37
+
38
+ ## 3.2.0 — Deep trigger typing
39
+
40
+ **173 tools across 36 modules. Bundle: 248.4 KB.**
41
+
42
+ v3.1.0 made all 57 native trigger types READ cleanly via a permissive fallback. v3.2.0 deeply types 9 more of the most common ones — `form_submission`, `opportunity_created`, `opportunity_changed`, `opportunity_status_changed`, `payment_received`, `inbound_webhook`, `mailgun_email_event`, `note_add`, `task_added` — bringing typed coverage from **4 / 57 (7%) to 13 / 57 (23%)**.
43
+
44
+ For Claude that means: when you ask it to read, build, or edit a workflow using one of these triggers, it now knows the discriminated trigger type AND the field paths each one supports (e.g., `opportunity.pipelineId`, `opportunity.monetaryValue`, `form.id`, `mailgun.event`, etc.). Less guessing, fewer rejected payloads.
45
+
46
+ ### Shared trigger-schema module
47
+ - `src/trigger-schemas.ts` (NEW): single source of truth for `WorkflowTriggerSchema`. Both the read path (`workflow-builder-client.ts`) and the write path (`tools/workflow-builder.ts`) now import from this module instead of duplicating definitions.
48
+ - Bundle shrank from 249.7 KB → 248.4 KB thanks to the dedup.
49
+
50
+ ### Field paths documented per trigger
51
+ - Each typed trigger's `field` is `z.string()` with a `.describe()` listing the known field paths (extracted from `templates/trigger-schemas.json`, captured 2026-05-14). Permissive enough that new GHL fields don't crash reads, structured enough that the LLM knows what fields exist.
52
+
53
+ ### Coverage delta
54
+ | State | Typed | Reachable-but-untyped | Total |
55
+ |---|---:|---:|---:|
56
+ | Before v3.1.0 | 4 | 0 (reads crashed) | 57 |
57
+ | v3.1.0 | 4 | 53 | 57 |
58
+ | v3.2.0 | **13** | **44** | 57 |
59
+
60
+ ### Round-trip verified
61
+ - Real `form_submission` workflow from QA Test Clinic v3 parses cleanly through the new typed variant.
62
+ - 8 synthetic typed-trigger samples match their respective variants and are correctly rejected by sibling variants (discrimination works as expected).
63
+
64
+ ### Files changed
65
+ - `src/trigger-schemas.ts` — NEW: 13 typed trigger variants + `UnknownTriggerSchema` fallback in a single module.
66
+ - `src/workflow-builder-client.ts` — removed inline trigger schemas, imports from shared module.
67
+ - `src/tools/workflow-builder.ts` — removed inline trigger schemas, imports from shared module.
68
+
3
69
  ## 3.1.1 — Auto-update visibility
4
70
 
5
71
  **173 tools across 36 modules. Bundle: 249.7 KB.**
package/README.md CHANGED
@@ -350,7 +350,7 @@ Re-run setup_ghl_mcp with workflow builder:
350
350
 
351
351
  **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
352
 
353
- **Supported trigger types:** All 57 native GHL trigger types read cleanly (form_submission, payment_received, opportunity_created/changed/status_changed, inbound_webhook, contact_tag, appointment, customer_reply, and 50 more). 4 are deeply typed; the rest 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`.
353
+ **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
354
 
355
355
  ### Pipeline Builder (5 tools) — Internal API
356
356