@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 +66 -0
- package/README.md +1 -1
- package/dist/index.js +1121 -931
- package/package.json +1 -1
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
|
|
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
|
|