@elitedcs/ghl-mcp 3.89.0-beta.6 → 3.89.0-beta.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elitedcs/ghl-mcp",
3
- "version": "3.89.0-beta.6",
3
+ "version": "3.89.0-beta.8",
4
4
  "mcpName": "io.github.drjerryrelth/ghl-command",
5
5
  "description": "GoHighLevel MCP Server for Claude. 250 tools — full CRM, automation, marketing control, account-wide workflow audit, live funnel-capture verification, and the only programmatic GHL workflow builder, now multi-tenant across client accounts.",
6
6
  "main": "dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "source": "Built 2026-09-29 from live wellness trial accounts: a red-light trial clinic's 46 published workflows, pipeline, calendar, products and custom values (read-only), two sister accounts running the same paid-trial-with-deposit offer, and the agency's own texting lessons (A2P, opt-out and link-blocking). Every message template carries a _source note: PATTERN describes the live pattern it follows (never its wording); [NO REAL SOURCE: proposed] means no live example exists. The event-only launch system stays in the launch-event preset.",
30
30
  "conventions": {
31
31
  "triggerTokens": "Use ONLY the executor's native trigger types: contact_tag, form_submission, appointment (confirmed / showed / noshow / cancelled), customer_reply (optionally replyKeywords, an exact-match list), pipeline_stage_updated, call_status, payment_received.",
32
- "handoffTag": "Sequences hand off with add_contact_tag + a contact_tag trigger (nurture-start, winback-start, service-complete), never add_to_workflow (preset-format section 7 bans only that). A booking pulls the lead out with remove_from_workflow (Speed to Lead, Lead Nurture, Win-back, No-Show Rescue), exactly as med-spa's booking workflow does, and Program Sold removes the 72-hour follow-up. Every sequence also stops on reply by itself (stopOnResponse).",
32
+ "handoffTag": "Sequences hand off with add_contact_tag + a contact_tag trigger (nurture-start, winback-start, service-complete), never add_to_workflow (preset-format section 7 bans only that). A booking pulls the lead out with remove_from_workflow (Speed to Lead, Lead Nurture, Win-back, No-Show Rescue), exactly as med-spa's booking workflow does, and Program Sold removes the 3-day follow-up. Every sequence also stops on reply by itself (stopOnResponse).",
33
33
  "nurtureSpan": "Lead Nurture waits sum to 31 days and Win-back waits to 31 days (owner rule: nothing under 30). Speed to Lead ends with the nurture-start hand-off tag.",
34
34
  "staff": "Every internal_notification, task_notification and assign_user carries userRef user.owner (a role placeholder resolved from brief.team). No staff = user.__pending__, the step is kept and handoff.add_staff holds the workflow DRAFT.",
35
35
  "a2pGating": "handoff.a2p.blocks lists every SMS-bearing workflow ref, so nothing texts before A2P approval. Use case Low Volume Mixed; the website form with two separate unchecked consent boxes is the only opt-in.",
@@ -3149,7 +3149,7 @@
3149
3149
  "type": "task_notification",
3150
3150
  "userRef": "user.owner",
3151
3151
  "title": "Record {{contact.first_name}}'s visit outcome",
3152
- "body": "Move their card to {{stage.program_sold}} or to {{stage.no_sale}}. The program confirmation or the 72-hour follow-up texts start from that stage.",
3152
+ "body": "Move their card to {{stage.program_sold}} or to {{stage.no_sale}}. The program confirmation or the 3-day follow-up texts start from that stage.",
3153
3153
  "dueDate": "1"
3154
3154
  },
3155
3155
  {
@@ -3450,7 +3450,7 @@
3450
3450
  "type": "task_notification",
3451
3451
  "userRef": "user.owner",
3452
3452
  "title": "Call {{contact.first_name}} about a program",
3453
- "body": "No reply to the 72-hour follow-up. One call, no pressure: what would make this a yes, or when should we check back.",
3453
+ "body": "No reply to the 3-day follow-up. One call, no pressure: what would make this a yes, or when should we check back.",
3454
3454
  "dueDate": "1"
3455
3455
  },
3456
3456
  {
@@ -3682,7 +3682,7 @@
3682
3682
  },
3683
3683
  {
3684
3684
  "ref": "handoff.deposit_product",
3685
- "conditionalOn": "goal.bookingNeeded == true && offer.depositAmount is set",
3685
+ "conditionalOn": "goal.bookingNeeded == true && offer.depositAmount is set && channels.payment != 'None'",
3686
3686
  "owner": "OPERATOR-EXT",
3687
3687
  "title": "Take the deposit on the calendar",
3688
3688
  "trigger": "the trial takes a deposit",
@@ -3692,7 +3692,7 @@
3692
3692
  },
3693
3693
  {
3694
3694
  "ref": "handoff.balance_product",
3695
- "conditionalOn": "goal.bookingNeeded == true && offer.balanceAmount is set",
3695
+ "conditionalOn": "goal.bookingNeeded == true && offer.balanceAmount is set && channels.payment != 'None'",
3696
3696
  "owner": "OPERATOR-EXT",
3697
3697
  "title": "Set up the trial balance link",
3698
3698
  "trigger": "a balance is due at the visit",
@@ -3705,7 +3705,7 @@
3705
3705
  },
3706
3706
  {
3707
3707
  "ref": "handoff.balance_trigger",
3708
- "conditionalOn": "goal.bookingNeeded == true && offer.balanceAmount is set",
3708
+ "conditionalOn": "goal.bookingNeeded == true && offer.balanceAmount is set && channels.payment != 'None'",
3709
3709
  "owner": "OPERATOR-UI",
3710
3710
  "title": "Limit the Trial Balance Paid workflow to the balance product",
3711
3711
  "trigger": "a payment trigger with no product filter fires on every payment",
@@ -3739,7 +3739,7 @@
3739
3739
  "owner": "TEAM",
3740
3740
  "title": "Move each card after the visit",
3741
3741
  "trigger": "after every trial visit",
3742
- "instruction": "After a trial visit, move the card to {{stage.program_sold}} or to {{stage.no_sale}}. The first sends the program confirmation text and alert; the second starts the 72-hour follow-up texts. A task reminds whoever takes calls.",
3742
+ "instruction": "After a trial visit, move the card to {{stage.program_sold}} or to {{stage.no_sale}}. The first sends the program confirmation text and alert; the second starts the 3-day follow-up texts. A task reminds whoever takes calls.",
3743
3743
  "produces": null,
3744
3744
  "successCheck": "Every showed trial card sits in {{stage.program_sold}} or {{stage.no_sale}} within a day"
3745
3745
  },
@@ -3750,7 +3750,8 @@
3750
3750
  "trigger": "before tagging a past-patient list winback-start",
3751
3751
  "instruction": "Only after A2P approval: warm the sending number, use one number per 500 contacts (at most 4), send to the warmest contacts first (the age of a contact drives the opt-out rate more than wording), in batches of 25 about 5 minutes apart, 08:00 to 19:30, never on Sundays. Leave out anyone tagged not-interested or replied-stop: they asked not to be texted about this.",
3752
3752
  "produces": null,
3753
- "successCheck": "Opt-outs stay under 2% per batch"
3753
+ "successCheck": "Opt-outs stay under 2% per batch",
3754
+ "conditionalOn": "channels.sms != false"
3754
3755
  },
3755
3756
  {
3756
3757
  "ref": "handoff.a2p",
@@ -3758,7 +3759,7 @@
3758
3759
  "owner": "OPERATOR-EXT",
3759
3760
  "title": "Register A2P 10DLC (so texts can send)",
3760
3761
  "trigger": "channels.sms == true",
3761
- "instruction": "Submit your A2P brand and campaign in the GHL Trust Center. Use case: Low Volume Mixed, typically 2-8 messages per month. The website trial form is the only opt-in, with its two separate unchecked consent boxes quoted word for word. Keep the words weight loss, fat loss and GLP-1 off the website. Every text-bearing workflow stays DRAFT until approval. Save your full submission before you submit it.",
3762
+ "instruction": "Submit your A2P brand and campaign in the GHL Trust Center. Use case: Low Volume Mixed, typically 2-8 messages per month. The trial booking form Command OS built is the only opt-in (it works on your website or on its own GoHighLevel link, so you need no website for this): quote its two consent boxes (one for appointment texts, one for offers), both left unticked until the person ticks them, word for word. Keep health and weight-loss claims off the website and out of your sample messages, because carriers reject them. Switch on the automations that send texts only after this registration is approved. Save your full submission before you submit it.",
3762
3763
  "produces": null,
3763
3764
  "successCheck": "A2P campaign status shows submitted or approved",
3764
3765
  "blocks": [