@elitedcs/ghl-mcp 3.97.0 → 3.97.2
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 +62 -0
- package/README.md +1 -1
- package/dist/brain-function.js +167 -16
- package/dist/index.js +6612 -3849
- package/guide/guide.html +29 -4
- package/package.json +1 -1
- package/skills/blueprint/examples/sample-build-plan.json +1 -1
- package/skills/blueprint/presets/clinic.preset.json +29 -29
- package/skills/blueprint/presets/coach.preset.json +28 -28
- package/skills/blueprint/presets/ecommerce.preset.json +21 -21
- package/skills/blueprint/presets/generic-client.preset.json +32 -31
- package/skills/blueprint/presets/local-service.md +1 -1
- package/skills/blueprint/presets/local-service.preset.json +45 -45
- package/skills/blueprint/presets/med-spa.md +1 -1
- package/skills/blueprint/presets/med-spa.preset.json +27 -27
- package/skills/blueprint/presets/wellness-clinic.md +2 -2
- package/skills/blueprint/presets/wellness-clinic.preset.json +36 -36
|
@@ -390,13 +390,13 @@
|
|
|
390
390
|
"ref": "email_template.stl_email_1",
|
|
391
391
|
"name": "Speed to Lead - Instant Email",
|
|
392
392
|
"subject": "Got your request, {{contact.first_name}}",
|
|
393
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Your {{offer.leadMagnet ||
|
|
393
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Your {{offer.leadMagnet || skin assessment}} request just landed with {{custom_values.business_name}}. I'm {{custom_values.owner_first_name}}.</p><p style=\"margin:0 0 14px;\">Here's what happens next: reply with the one thing you'd most like to change, and I'll tell you honestly whether it's a good fit.</p><p style=\"margin:0 0 14px;\">If you'd rather skip the back and forth, pick a time that suits you:</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Hold my assessment time</a></p><p style=\"margin:0 0 14px;\">Nobody will try to sell you something you don't need.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
394
394
|
},
|
|
395
395
|
{
|
|
396
396
|
"ref": "email_template.stl_email_2",
|
|
397
397
|
"name": "Speed to Lead - 3 Hour Email",
|
|
398
398
|
"subject": "The one question we ask every new client",
|
|
399
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Before anyone at {{custom_values.business_name}} recommends a treatment, we ask one question: what do you want people to notice, and what do you want them not to notice?</p><p style=\"margin:0 0 14px;\">Most people give the same answer. They want to look rested, not different. That answer decides everything about how we work: smaller amounts, the right areas, and a plan you can pause any time.</p><p style=\"margin:0 0 14px;\">Your assessment is where we map that plan. Bring your questions. Bring your skepticism.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Pick my time</a></p><p style=\"margin:0 0 14px;\">Or reply to this email with what's on your mind.
|
|
399
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Before anyone at {{custom_values.business_name}} recommends a treatment, we ask one question: what do you want people to notice, and what do you want them not to notice?</p><p style=\"margin:0 0 14px;\">Most people give the same answer. They want to look rested, not different. That answer decides everything about how we work: smaller amounts, the right areas, and a plan you can pause any time.</p><p style=\"margin:0 0 14px;\">Your assessment is where we map that plan. Bring your questions. Bring your skepticism.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Pick my time</a></p><p style=\"margin:0 0 14px;\">Or reply to this email with what's on your mind. </p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
400
400
|
},
|
|
401
401
|
{
|
|
402
402
|
"ref": "email_template.n_email_1",
|
|
@@ -408,19 +408,19 @@
|
|
|
408
408
|
"ref": "email_template.n_email_2",
|
|
409
409
|
"name": "Nurture 2 - What Happens at the First Visit",
|
|
410
410
|
"subject": "What actually happens at your first visit",
|
|
411
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">People put off the first visit because they don't know what's inside the door. So here
|
|
411
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">People put off the first visit because they don't know what's inside the door. So here is how it goes:</p><ul style=\"margin:0 0 14px 20px;padding:0;\"><li style=\"margin:0 0 6px;\">You talk, we listen. What bothers you, what you've tried, what you're nervous about.</li><li style=\"margin:0 0 6px;\">We look at your skin and explain what we see.</li><li style=\"margin:0 0 6px;\">We talk through your options. You take your time. No pressure to decide in the chair.</li></ul><p style=\"margin:0 0 14px;\">The objection we hear most is {{audience.objections[0] || price}}. That's exactly why we talk through options: start with the one change that makes the biggest difference and add from there, or don't.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Book my assessment</a></p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
412
412
|
},
|
|
413
413
|
{
|
|
414
414
|
"ref": "email_template.n_email_3",
|
|
415
415
|
"name": "Nurture 3 - Why We Treat Less",
|
|
416
416
|
"subject": "Why we treat less than you expect",
|
|
417
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">The best compliment you can get after treatment is \"you look well rested.\" Not \"what did you have done?\"</p><p style=\"margin:0 0 14px;\">That
|
|
417
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">The best compliment you can get after treatment is \"you look well rested.\" Not \"what did you have done?\"</p><p style=\"margin:0 0 14px;\">That usually comes from treating conservatively first and adjusting later, rather than doing everything in one visit. Ask us how we would approach it for you.</p><p style=\"margin:0 0 14px;\">If you want to see how that plays out on your face specifically, that's what the assessment is for.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">See my options</a></p><p style=\"margin:0 0 14px;\">Have a question first? Reply to this email. I'll answer it.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
418
418
|
},
|
|
419
419
|
{
|
|
420
420
|
"ref": "email_template.n_email_4",
|
|
421
421
|
"name": "Nurture 4 - About the Price",
|
|
422
422
|
"subject": "About the price",
|
|
423
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Let's talk about the thing most people are too polite to ask: what does it cost?</p><p style=\"margin:0 0 14px;\">
|
|
423
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Let's talk about the thing most people are too polite to ask: what does it cost?</p><p style=\"margin:0 0 14px;\">The honest answer depends on what you need, which is why we look first. Ask us what each option costs before anything happens.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Book my assessment</a></p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
424
424
|
},
|
|
425
425
|
{
|
|
426
426
|
"ref": "email_template.n_email_5",
|
|
@@ -432,31 +432,31 @@
|
|
|
432
432
|
"ref": "email_template.n_email_6",
|
|
433
433
|
"name": "Nurture 6 - Everything in One Place",
|
|
434
434
|
"subject": "Everything you need to decide, in one place",
|
|
435
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">If you're still weighing it up, here is everything in one place:</p><ul style=\"margin:0 0 14px 20px;padding:0;\"><li style=\"margin:0 0 6px;\">What: your {{offer.leadMagnet ||
|
|
435
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">If you're still weighing it up, here is everything in one place:</p><ul style=\"margin:0 0 14px 20px;padding:0;\"><li style=\"margin:0 0 6px;\">What: your {{offer.leadMagnet || skin assessment}}, and a conversation about your options.</li><li style=\"margin:0 0 6px;\">Where: {{custom_values.business_name}}, {{business.location || our clinic}}.</li><li style=\"margin:0 0 6px;\">Cost of treatment: ask about any option before anything happens.</li><li style=\"margin:0 0 6px;\">Book, cancel or move your time any time: <a href=\"{{custom_values.booking_link}}\" style=\"color:#1a56db;text-decoration:underline;\">your booking link</a>.</li></ul><p style=\"margin:0 0 14px;\">If the answer is \"not now\", that's fine. Reply with the word later and I'll stop the emails.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Book my assessment</a></p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
436
436
|
},
|
|
437
437
|
{
|
|
438
438
|
"ref": "email_template.w_email_1",
|
|
439
439
|
"name": "Win-back 1 - One Question",
|
|
440
440
|
"subject": "One question, {{contact.first_name}}",
|
|
441
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">A while back you asked {{custom_values.business_name}} about a {{offer.leadMagnet || skin assessment}}, and then life got busy. That's normal.</p><p style=\"margin:0 0 14px;\">One question, and an honest answer is all I need: what stopped you? Timing, price, nerves, or something we said?</p><p style=\"margin:0 0 14px;\">Reply with a word or two. If it's something we can fix,
|
|
441
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">A while back you asked {{custom_values.business_name}} about a {{offer.leadMagnet || skin assessment}}, and then life got busy. That's normal.</p><p style=\"margin:0 0 14px;\">One question, and an honest answer is all I need: what stopped you? Timing, price, nerves, or something we said?</p><p style=\"margin:0 0 14px;\">Reply with a word or two. If it's something we can fix, tell me. If it's not the right time, say so and I'll stop here.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
442
442
|
},
|
|
443
443
|
{
|
|
444
444
|
"ref": "email_template.w_email_2",
|
|
445
445
|
"name": "Win-back 2 - What Changed",
|
|
446
446
|
"subject": "What's changed since you last looked",
|
|
447
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">
|
|
447
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">It has been a while since you first reached out to {{custom_values.business_name}}, and the calendar is open if the timing is better now.</p><p style=\"margin:0 0 14px;\">What hasn't changed: the visit still ends with a conversation instead of a decision in the chair.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">See the calendar</a></p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
448
448
|
},
|
|
449
449
|
{
|
|
450
450
|
"ref": "email_template.w_email_3",
|
|
451
451
|
"name": "Win-back 3 - The Door Stays Open",
|
|
452
452
|
"subject": "The door stays open",
|
|
453
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">This is the last automatic email you'll get from me. I'd rather you hear from a person when the time is right than from a sequence.</p><p style=\"margin:0 0 14px;\">So here's the deal:
|
|
453
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">This is the last automatic email you'll get from me. I'd rather you hear from a person when the time is right than from a sequence.</p><p style=\"margin:0 0 14px;\">So here's the deal: there's no deadline on your assessment. When you're ready, the link below works, and so does replying to this email.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Book when you're ready</a></p><p style=\"margin:0 0 14px;\">Thank you for considering us. Take care of that skin in the meantime: sunscreen every morning, no exceptions.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
454
454
|
},
|
|
455
455
|
{
|
|
456
456
|
"ref": "email_template.appt_confirm_email",
|
|
457
457
|
"name": "Consult Confirmed",
|
|
458
458
|
"subject": "Confirmed, {{contact.first_name}}: your consult details",
|
|
459
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Your consult at {{custom_values.business_name}} is confirmed for {{appointment.start_time}}.</p><p style=\"margin:0 0 14px;\">What to bring: nothing but your questions. Come with a clean face if you can (no makeup needed)
|
|
459
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Your consult at {{custom_values.business_name}} is confirmed for {{appointment.start_time}}.</p><p style=\"margin:0 0 14px;\">What to bring: nothing but your questions. Come with a clean face if you can (no makeup needed).</p><p style=\"margin:0 0 14px;\">What you'll leave with: a clear idea of your options. No obligation to treat that day.</p><p style=\"margin:0 0 14px;\">Need to move it? Use your booking link: <a href=\"{{custom_values.booking_link}}\" style=\"color:#1a56db;text-decoration:underline;\">reschedule</a>, or reply to this email.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
460
460
|
},
|
|
461
461
|
{
|
|
462
462
|
"ref": "email_template.appt_prep_email",
|
|
@@ -468,37 +468,37 @@
|
|
|
468
468
|
"ref": "email_template.ns_email_1",
|
|
469
469
|
"name": "No-Show 1 - We Missed You",
|
|
470
470
|
"subject": "We missed you, {{contact.first_name}} (no guilt)",
|
|
471
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">We had you down for a consult today and it didn't work out. Life happens; nobody here is bothered.</p><p style=\"margin:0 0 14px;\">Your
|
|
471
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">We had you down for a consult today and it didn't work out. Life happens; nobody here is bothered.</p><p style=\"margin:0 0 14px;\">Your assessment is still yours. Pick a new time whenever it suits, and if something about the visit put you off, reply and tell me. I'd rather know.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Rebook my assessment</a></p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
472
472
|
},
|
|
473
473
|
{
|
|
474
474
|
"ref": "email_template.ns_email_2",
|
|
475
475
|
"name": "No-Show 2 - Still Want This?",
|
|
476
476
|
"subject": "Still want to do this?",
|
|
477
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Quick and honest: if the timing is wrong, say so and I'll check back in a few months. If it's still something you want, the calendar is open
|
|
477
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Quick and honest: if the timing is wrong, say so and I'll check back in a few months. If it's still something you want, the calendar is open.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Pick a new time</a></p><p style=\"margin:0 0 14px;\">Either way, thanks for considering {{custom_values.business_name}}.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
478
478
|
},
|
|
479
479
|
{
|
|
480
480
|
"ref": "email_template.quote_email_1",
|
|
481
481
|
"name": "Quote Follow-up - Day 3 Email",
|
|
482
482
|
"subject": "Any questions on your quote, {{contact.first_name}}?",
|
|
483
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">You have had the quote from {{custom_values.business_name}} for a few days, so this is a short check-in rather than a push.</p><p style=\"margin:0 0 14px;\">Three things people usually ask at this point: what is included, what can wait, and how payment works. Reply with any of those and I will answer plainly.</p><p style=\"margin:0 0 14px;\">If you would rather talk it through, pick a time here:</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Book a quick call</a></p><p style=\"margin:0 0 14px;\">No pressure either way
|
|
483
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">You have had the quote from {{custom_values.business_name}} for a few days, so this is a short check-in rather than a push.</p><p style=\"margin:0 0 14px;\">Three things people usually ask at this point: what is included, what can wait, and how payment works. Reply with any of those and I will answer plainly.</p><p style=\"margin:0 0 14px;\">If you would rather talk it through, pick a time here:</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.booking_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Book a quick call</a></p><p style=\"margin:0 0 14px;\">No pressure either way.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
484
484
|
},
|
|
485
485
|
{
|
|
486
486
|
"ref": "email_template.review_email_1",
|
|
487
487
|
"name": "Review Request - Email",
|
|
488
488
|
"subject": "One minute for a review, {{contact.first_name}}?",
|
|
489
|
-
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Thank you again for your appointment with {{custom_values.business_name}} this week.</p><p style=\"margin:0 0 14px;\">If it went well, a short review is the most useful thing you could do for us. It takes about a minute and it is how the next person decides to trust us.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.review_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Leave a review</a></p><p style=\"margin:0 0 14px;\">If anything was not right, reply to this email instead and
|
|
489
|
+
"html": "<div style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5;color:#1f2937;max-width:600px;\"><p style=\"margin:0 0 14px;\">Hi {{contact.first_name}},</p><p style=\"margin:0 0 14px;\">Thank you again for your appointment with {{custom_values.business_name}} this week.</p><p style=\"margin:0 0 14px;\">If it went well, a short review is the most useful thing you could do for us. It takes about a minute and it is how the next person decides to trust us.</p><p style=\"margin:0 0 14px;\"><a href=\"{{custom_values.review_link}}\" style=\"display:inline-block;background:#1a56db;color:#ffffff;padding:12px 20px;border-radius:6px;text-decoration:none;font-weight:600;\">Leave a review</a></p><p style=\"margin:0 0 14px;\">If anything was not right, reply to this email instead and tell us.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
|
|
490
490
|
}
|
|
491
491
|
],
|
|
492
492
|
"sms": [
|
|
493
493
|
{
|
|
494
494
|
"ref": "sms_template.stl_sms_1",
|
|
495
495
|
"name": "Speed to Lead - Instant Text",
|
|
496
|
-
"body": "Hi {{contact.first_name}}, it's {{custom_values.owner_first_name}} at {{custom_values.business_name}}. Your {{offer.leadMagnet ||
|
|
496
|
+
"body": "Hi {{contact.first_name}}, it's {{custom_values.owner_first_name}} at {{custom_values.business_name}}. Your {{offer.leadMagnet || skin assessment}} request is in. What's the one thing you'd most like to change? Reply STOP to opt out."
|
|
497
497
|
},
|
|
498
498
|
{
|
|
499
499
|
"ref": "sms_template.stl_sms_2",
|
|
500
500
|
"name": "Speed to Lead - 20 Minute Text",
|
|
501
|
-
"body": "{{contact.first_name}},
|
|
501
|
+
"body": "{{contact.first_name}}, Want me to hold an assessment time for you? Mornings or afternoons? Or grab one here: {{custom_values.booking_link}}"
|
|
502
502
|
},
|
|
503
503
|
{
|
|
504
504
|
"ref": "sms_template.stl_sms_3",
|
|
@@ -528,12 +528,12 @@
|
|
|
528
528
|
{
|
|
529
529
|
"ref": "sms_template.n_sms_3",
|
|
530
530
|
"name": "Nurture Text 3 - Midpoint",
|
|
531
|
-
"body": "{{contact.first_name}}, it's {{custom_values.owner_first_name}}. Still thinking about your skin plan?
|
|
531
|
+
"body": "{{contact.first_name}}, it's {{custom_values.owner_first_name}}. Still thinking about your skin plan? Want me to find you a time this week, or should I check back next month?"
|
|
532
532
|
},
|
|
533
533
|
{
|
|
534
534
|
"ref": "sms_template.n_sms_4",
|
|
535
535
|
"name": "Nurture Text 4 - Any Question",
|
|
536
|
-
"body": "Hi {{contact.first_name}}, {{custom_values.owner_first_name}} here. No pitch, just checking: did you ever get your question answered? If not, ask it here and I'll reply
|
|
536
|
+
"body": "Hi {{contact.first_name}}, {{custom_values.owner_first_name}} here. No pitch, just checking: did you ever get your question answered? If not, ask it here and I'll reply."
|
|
537
537
|
},
|
|
538
538
|
{
|
|
539
539
|
"ref": "sms_template.n_sms_5",
|
|
@@ -548,7 +548,7 @@
|
|
|
548
548
|
{
|
|
549
549
|
"ref": "sms_template.w_sms_2",
|
|
550
550
|
"name": "Win-back Text 2",
|
|
551
|
-
"body": "{{contact.first_name}},
|
|
551
|
+
"body": "{{contact.first_name}}, want a time for an assessment at {{custom_values.business_name}}? Reply YES and I'll find you one."
|
|
552
552
|
},
|
|
553
553
|
{
|
|
554
554
|
"ref": "sms_template.appt_confirm_sms",
|
|
@@ -573,7 +573,7 @@
|
|
|
573
573
|
{
|
|
574
574
|
"ref": "sms_template.ns_sms_2",
|
|
575
575
|
"name": "No-Show Text 2",
|
|
576
|
-
"body": "{{contact.first_name}}, {{custom_values.owner_first_name}} here.
|
|
576
|
+
"body": "{{contact.first_name}}, {{custom_values.owner_first_name}} here. We'd be glad to find you another consult time. Want one? Reply with a day that works."
|
|
577
577
|
},
|
|
578
578
|
{
|
|
579
579
|
"ref": "sms_template.quote_sms_1",
|
|
@@ -599,7 +599,7 @@
|
|
|
599
599
|
"name": "Speed to Lead - Instant Email",
|
|
600
600
|
"subject": "Got your request, {{contact.first_name}}",
|
|
601
601
|
"templateRef": "email_template.stl_email_1",
|
|
602
|
-
"copyDirection": "Instant. Who I am, what they asked for (offer.leadMagnet), what happens
|
|
602
|
+
"copyDirection": "Instant. Who I am, what they asked for (offer.leadMagnet), what happens next (a reply invitation; never promise a text, since texting may be off), the one-question ask, the booking CTA, the no-pressure promise. Tone: brief.voice.threeWords. If brief.voice.signatureLine exists, insert it verbatim as its own paragraph right after the greeting.",
|
|
603
603
|
"mergeTags": [
|
|
604
604
|
"contact.first_name",
|
|
605
605
|
"custom_values.business_name",
|
|
@@ -641,7 +641,7 @@
|
|
|
641
641
|
"name": "Nurture 2 - What Happens at the First Visit",
|
|
642
642
|
"subject": "What actually happens at your first visit",
|
|
643
643
|
"templateRef": "email_template.n_email_2",
|
|
644
|
-
"copyDirection": "Day 5. Remove the unknown: the visit minute
|
|
644
|
+
"copyDirection": "Day 5. Remove the unknown: how the visit goes, in order (no minute-by-minute timings unless the brief gives them), then name and answer the top objection (audience.objections[0]) by talking through the options at the visit (no written plan or price list promised). One CTA.",
|
|
645
645
|
"mergeTags": [
|
|
646
646
|
"contact.first_name",
|
|
647
647
|
"custom_values.booking_link",
|
|
@@ -669,7 +669,7 @@
|
|
|
669
669
|
"name": "Nurture 4 - About the Price",
|
|
670
670
|
"subject": "About the price",
|
|
671
671
|
"templateRef": "email_template.n_email_4",
|
|
672
|
-
"copyDirection": "Day 14. Handle cost head-on:
|
|
672
|
+
"copyDirection": "Day 14. Handle cost head-on: it depends on what they need, invite them to ask about prices before anything happens; a payment or monthly option only if the brief says one exists. No numbers unless the brief has them.",
|
|
673
673
|
"mergeTags": [
|
|
674
674
|
"contact.first_name",
|
|
675
675
|
"custom_values.booking_link",
|
|
@@ -711,7 +711,7 @@
|
|
|
711
711
|
"name": "Win-back 1 - One Question",
|
|
712
712
|
"subject": "One question, {{contact.first_name}}",
|
|
713
713
|
"templateRef": "email_template.w_email_1",
|
|
714
|
-
"copyDirection": "Win-back day 0. Acknowledge the gap without guilt; ask the one diagnostic question (what stopped you);
|
|
714
|
+
"copyDirection": "Win-back day 0. Acknowledge the gap without guilt; ask the one diagnostic question (what stopped you); invite them to say what would help. No link; a reply is the CTA.",
|
|
715
715
|
"mergeTags": [
|
|
716
716
|
"contact.first_name",
|
|
717
717
|
"custom_values.business_name",
|
|
@@ -724,7 +724,7 @@
|
|
|
724
724
|
"name": "Win-back 2 - What Changed",
|
|
725
725
|
"subject": "What's changed since you last looked",
|
|
726
726
|
"templateRef": "email_template.w_email_2",
|
|
727
|
-
"copyDirection": "Win-back day 14. One real reason to look again (new openings, a
|
|
727
|
+
"copyDirection": "Win-back day 14. One real reason to look again (new openings, a seasonal fit) from the brief, then what has not changed (a conversation, not a decision in the chair; free or a length only if the brief says so). One CTA.",
|
|
728
728
|
"mergeTags": [
|
|
729
729
|
"contact.first_name",
|
|
730
730
|
"custom_values.business_name",
|
|
@@ -961,7 +961,7 @@
|
|
|
961
961
|
"ref": "sms.w_sms_2",
|
|
962
962
|
"name": "Win-back Text 2",
|
|
963
963
|
"templateRef": "sms_template.w_sms_2",
|
|
964
|
-
"copyDirection": "Win-back day 22. A
|
|
964
|
+
"copyDirection": "Win-back day 22. A YES ask to find a time. No availability claim unless the brief gives one.",
|
|
965
965
|
"mergeTags": [
|
|
966
966
|
"contact.first_name",
|
|
967
967
|
"custom_values.business_name"
|
|
@@ -1018,7 +1018,7 @@
|
|
|
1018
1018
|
"ref": "sms.ns_sms_2",
|
|
1019
1019
|
"name": "No-Show Text 2",
|
|
1020
1020
|
"templateRef": "sms_template.ns_sms_2",
|
|
1021
|
-
"copyDirection": "Next day.
|
|
1021
|
+
"copyDirection": "Next day. Offer to find another time; ask for a day. Never claim times were kept open.",
|
|
1022
1022
|
"mergeTags": [
|
|
1023
1023
|
"contact.first_name",
|
|
1024
1024
|
"custom_values.owner_first_name"
|
|
@@ -10,9 +10,9 @@ The cockpit industry **Wellness clinic** (`wellness-clinic`), the business types
|
|
|
10
10
|
- **1 pipeline, 10 stages:** New Lead, Replied / Engaged, Booking Link Sent, Trial Booked, Trial Completed, Program Sold, No Program Yet - Follow Up, No Show, Not Interested, Lost / DND. A client's own stage list replaces it; every automation is mapped onto the client's stages (the follow-up workflow carries a `stagePreference` so a "No sale" stage is used).
|
|
11
11
|
- **13 custom fields:** lead source, service interest, body focus areas, goal timeline, screening confirmed, results vary understood, program recommended (names only, no prices), visit outcome, payment method (no text-to-pay), program value, appointment date, and the two SMS consent boxes (transactional and marketing, separate, unchecked).
|
|
12
12
|
- **36 tags, 17 custom values** (trial name, price, deposit, balance, balance link, address, programs; spots left and capacity only with the `launch_event` flag).
|
|
13
|
-
- **Trial calendar:** the calendar answer's length, else the intake's visit length,
|
|
13
|
+
- **Trial calendar:** the calendar answer's length, else the intake's visit length; with neither, no length is invented and the plan carries a job, "Set the visit length on the <calendar> calendar" (`handoff.calendar_visit_length`), that holds the automations on that calendar until it is ticked. 24 hours' minimum notice, 1 per slot, the daily cap from the intake, and the clinic's own screening list as its description (with no list, only "check with your doctor first"). The deposit is a calendar payment product set in the UI (`handoff.deposit_product`). An optional 30-minute Program Consult calendar is built only when `goal.programConsult` is true.
|
|
14
14
|
- **Trial Request form:** name, email, optional phone, service interest, body focus, two consent boxes.
|
|
15
|
-
- **13 emails, 50 texts, 19 workflows.** A trial price of 0 or Free uses free-trial wording with no price, deposit or balance. A deposit or balance of 0, none or blank counts as none: the deposit-free texts and emails go instead, and the balance workflows, tags and hand-offs are not built. Scarcity or exclusivity wording ("a set number of trial visits a week", "fill up most weeks", "a small number of spots", "before anyone else") is said only when the intake answers Yes to "Do trial spots really run out most weeks?". A No or a blank answer gets the plain version of each of those texts, including the first win-back text.
|
|
15
|
+
- **13 emails, 50 texts, 19 workflows.** A trial price of 0 or Free uses free-trial wording with no price, deposit or balance. A deposit or balance of 0, none or blank counts as none: the deposit-free texts and emails go instead, and the balance workflows, tags and hand-offs are not built. Scarcity or exclusivity wording ("a set number of trial visits a week", "fill up most weeks", "a small number of spots", "before anyone else") is said only when the intake answers Yes to "Do trial spots really run out most weeks?". A No or a blank answer gets the plain version of each of those texts, including the first win-back text. No message states a visit fact the intake did not give: the visit length is said only when the intake gives one (otherwise the sentence is left out, never filled with a default), and nothing says to arrive 10 minutes early, fill in an intake form, that every visit starts with a consult, that a consult is included, or that every client goes through a screening list. The day-before reminder carries the clinic's own prep answer, or "Bring any questions you have." when there is none.
|
|
16
16
|
|
|
17
17
|
## Workflows
|
|
18
18
|
|