@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.
@@ -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 || free skin assessment}} request just landed with {{custom_values.business_name}}. I'm {{custom_values.owner_first_name}}, and I read every one of these myself.</p><p style=\"margin:0 0 14px;\">Here's what happens next: within a few minutes you'll get a text from this number. Reply with the one thing you'd most like to change, and I'll tell you honestly whether it's a good fit before you spend a dollar.</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;\">It's 30 minutes, it's free, and nobody will try to sell you something you don't need. That's the whole promise.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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. I answer personally.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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 it is, minute by minute:</p><ul style=\"margin:0 0 14px 20px;padding:0;\"><li style=\"margin:0 0 6px;\">Minutes 0-10: you talk, we listen. What bothers you, what you've tried, what you're nervous about.</li><li style=\"margin:0 0 6px;\">Minutes 10-20: we look at your skin in good light and explain what's causing what.</li><li style=\"margin:0 0 6px;\">Minutes 20-30: you get a written plan with options at different price points. You take it home. 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 the plan has 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>"
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 result comes from a rule we don't break: treat conservatively first, then adjust at your two-week check. It's slower than doing everything in one visit. It's also why our clients don't get the frozen or overfilled look, and why they come back.</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 myself.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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;\">{{offer.summary || Our treatments}} are priced by what we actually use, not a flat package you may not need. Because we treat conservatively, most first visits cost less than people expect. Your written plan shows the price of each option before anything happens, and there is never a surprise on the way out.</p><p style=\"margin:0 0 14px;\">If it helps, we'll also show you how to spread your plan over a few months so it fits your budget instead of the other way round.</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;\">Get my written plan</a></p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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 || free 30-minute skin assessment}}, with a written plan you keep.</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 the visit: nothing. Cost of treatment: shown per option, in writing, before anything happens.</li><li style=\"margin:0 0 6px;\">Our rule: treat less first, adjust in two weeks, never overdo it.</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 and check in next season.</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>"
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, I'll fix it. If it's not the right time, I'll leave you alone until it is.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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;\">Since you first reached out, a couple of things have changed at {{custom_values.business_name}}: new openings on the calendar, and a written plan that now includes a monthly option for people who want to spread the cost.</p><p style=\"margin:0 0 14px;\">What hasn't changed: the assessment is still free, still 30 minutes, and still ends with a plan you take home 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>"
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: your free assessment doesn't expire. 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>"
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) and plan for about 30 minutes.</p><p style=\"margin:0 0 14px;\">What you'll leave with: a written plan with options and prices. 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>"
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 free 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>"
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 and the visit is still free.</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>"
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. The numbers stand for 30 days.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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 I will fix it personally.</p><p style=\"margin:0;\">{{custom_values.owner_first_name}}<br>{{custom_values.business_name}} · {{custom_values.business_phone}}</p></div>"
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 || free skin assessment}} request is in. What's the one thing you'd most like to change? Reply STOP to opt out."
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}}, I can hold a 30-min assessment time for you this week. Mornings or afternoons? Or grab one here: {{custom_values.booking_link}}"
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? I have a couple of openings this week. Want one, or should I check back next month?"
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 personally."
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}}, two openings came up this week at {{custom_values.business_name}}. Want one for your free assessment? Reply YES and I'll hold it."
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. I kept a couple of consult times open for you this week. Want one? Reply with a day that works."
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 in the next few minutes (a text), 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.",
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 by minute, then name and answer the top objection (audience.objections[0]) with the written plan + options. One CTA.",
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: priced by what is used, conservative treatment costs less than expected, written prices before anything happens, spread-over-months option. No numbers unless the brief has them.",
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); promise to fix it or leave them alone. No link; a reply is the CTA.",
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 monthly option, a seasonal fit) from the brief, then what has not changed (free, 30 min, written plan). One CTA.",
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 concrete reason (openings this week) and a YES ask.",
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. Owner kept times open; ask for a 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, else 90 minutes; 24 hours' minimum notice, 1 per slot, the daily cap from the intake, and the clinic's screening text as its description. 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.
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. The day-before reminder already asks the client to come 10 minutes early, so the intake's prep question asks only for anything besides that.
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