From 4c60341f67a5c46094fc59fd24db502724301027 Mon Sep 17 00:00:00 2001 From: Codex CLI Date: Tue, 2 Dec 2025 14:00:13 -0700 Subject: [PATCH 1/3] feat(pricing): Rename One-Time to Success Based, add White-Glove tier - Rename 'One-Time' tab to 'Success Based' in pricing components - Add White-Glove AI Operations Engine tier (97/mo + ,997 setup) - Add annual tier (,964/year + ,997 setup) - Add success-based tier (,997 setup + 97/mo) - Includes full white-glove features and compliance pack --- .../home/pricing/PlanTypeToggle.tsx | 2 +- src/components/pricing/CatalogPricing.tsx | 2 +- src/data/service/slug_data/pricing.ts | 106 ++++++++++++++++++ 3 files changed, 108 insertions(+), 2 deletions(-) diff --git a/src/components/home/pricing/PlanTypeToggle.tsx b/src/components/home/pricing/PlanTypeToggle.tsx index 42fd5df8..4d9145f2 100644 --- a/src/components/home/pricing/PlanTypeToggle.tsx +++ b/src/components/home/pricing/PlanTypeToggle.tsx @@ -19,7 +19,7 @@ const PLAN_TYPE_ORDER: PlanType[] = ["monthly", "annual", "oneTime"]; const PLAN_TYPE_LABEL: Record = { monthly: "Monthly", annual: "Annual", - oneTime: "One-Time", + oneTime: "Success Based", }; function formatCurrency(amount: number) { diff --git a/src/components/pricing/CatalogPricing.tsx b/src/components/pricing/CatalogPricing.tsx index 5ea996d5..c4f73311 100644 --- a/src/components/pricing/CatalogPricing.tsx +++ b/src/components/pricing/CatalogPricing.tsx @@ -50,7 +50,7 @@ type PricingView = PricingInterval | "oneTime"; const VIEW_OPTIONS: Array<{ value: PricingView; label: string }> = [ { value: "monthly", label: "Monthly" }, { value: "annual", label: "Annual" }, - { value: "oneTime", label: "One-Time" }, + { value: "oneTime", label: "Success Based" }, ]; const ANNUAL_PLAN_BADGES: Record< diff --git a/src/data/service/slug_data/pricing.ts b/src/data/service/slug_data/pricing.ts index a260f69d..497e447f 100644 --- a/src/data/service/slug_data/pricing.ts +++ b/src/data/service/slug_data/pricing.ts @@ -82,6 +82,27 @@ export const pricingCatalog: PricingCatalog = { "24/7 Priority Support", ], }, + { + id: "whiteGlove", + name: "White-Glove AI Operations Engine", + price: 497, + unit: "month", + ctaType: "subscribe", + idealFor: "Teams wanting full AI operations managed for them", + credits: { ai: "unlimited", skipTrace: "unlimited", lead: "unlimited" }, + seats: { included: "unlimited", additionalSeat: 0 }, + features: [ + "$4,997 one-time setup fee required", + "Full CRM + Automation Buildout (GHL, Zoho, Lofty, FollowUpBoss, HubSpot, etc.)", + "AI Agent Suite (Done For You): Follow-up, Cold Outreach, Lead Intake, Voicemail + Voice Clone, Appointment Setter", + "Lead Masking + Lookalike Engine Setup with continuous audience refresh", + "Personalized Messaging System with POML + AB-tested emotional copy", + "Campaign Templates Loaded + Ready (SMS, Cold Call Scripts, Drip Logic)", + "White-Glove Configuration: We manage automations, logs, retries, errors, and infrastructure", + "Compliance Pack: TCPA settings, Do-Not-Call logic, Opt-in capture, Call recording disclaimers", + "Your entire AI Operations Team — done for you, managed for you, improved for you", + ], + }, ], annual: [ { @@ -129,6 +150,23 @@ export const pricingCatalog: PricingCatalog = { "Dedicated compliance & integration team", ], }, + { + id: "whiteGloveAnnual", + name: "White-Glove AI Operations Engine", + price: 5964, + unit: "year", + ctaType: "subscribe", + idealFor: "Teams wanting full AI operations managed for them", + credits: { ai: "unlimited", skipTrace: "unlimited", lead: "unlimited" }, + seats: { included: "unlimited", additionalSeat: 0 }, + features: [ + "$4,997 one-time setup fee required", + "All White-Glove monthly features", + "Unlimited AI credits/year", + "Save with annual billing", + "Priority white-glove onboarding & dedicated success manager", + ], + }, ], oneTime: [ { @@ -229,6 +267,27 @@ export const pricingCatalog: PricingCatalog = { ], requirements: ["Proven intake process for hot transfers"], }, + { + id: "whiteGloveSuccessBased", + name: "White-Glove AI Operations Engine (Success-Based)", + pricingModel: "$4,997 one-time setup + $497/mo", + ctaType: "subscribe", + idealFor: "Teams wanting full AI operations with success-based pricing", + includes: [ + "Full CRM + Automation Buildout (GHL, Zoho, Lofty, FollowUpBoss, HubSpot, etc.)", + "AI Agent Suite (Done For You): Follow-up, Cold Outreach, Lead Intake, Voicemail + Voice Clone, Appointment Setter", + "Lead Masking + Lookalike Engine Setup with continuous audience refresh", + "Personalized Messaging System with POML + AB-tested emotional copy", + "Campaign Templates Loaded + Ready (SMS, Cold Call Scripts, Drip Logic)", + "White-Glove Configuration: We manage automations, logs, retries, errors, and infrastructure", + "Compliance Pack: TCPA settings, Do-Not-Call logic, Opt-in capture, Call recording disclaimers", + "Your entire AI Operations Team — done for you, managed for you, improved for you", + ], + requirements: [ + "Initial setup consultation to understand your CRM and workflow needs", + "Access to your CRM for integration and data cleanup", + ], + }, ], }, }; @@ -383,6 +442,53 @@ export const PricingPlans: Plan[] = [ highlighted: false, cta: { text: "Check Availability", type: "link", href: "/contact" }, }, + { + id: "white-glove-plan", + name: "White-Glove AI Operations Engine", + price: { + monthly: { + amount: 497, + description: "per month (full AI operations managed for you)", + features: [ + "$4,997 one-time setup fee required", + "Full CRM + Automation Buildout (GHL, Zoho, Lofty, FollowUpBoss, HubSpot, etc.)", + "AI Agent Suite (Done For You): Follow-up, Cold Outreach, Lead Intake, Voicemail + Voice Clone, Appointment Setter", + "Lead Masking + Lookalike Engine Setup with continuous audience refresh", + "Personalized Messaging System with POML + AB-tested emotional copy", + "Campaign Templates Loaded + Ready (SMS, Cold Call Scripts, Drip Logic)", + "White-Glove Configuration: We manage automations, logs, retries, errors, and infrastructure", + "Compliance Pack: TCPA settings, Do-Not-Call logic, Opt-in capture, Call recording disclaimers", + "Your entire AI Operations Team — done for you, managed for you, improved for you", + ], + }, + annual: { + amount: 5964, + description: "per year (save with annual billing)", + features: [ + "$4,997 one-time setup fee required", + "All White-Glove monthly features", + "Unlimited AI credits/year", + "Priority white-glove onboarding & dedicated success manager", + ], + }, + oneTime: { + amount: 4997, + description: "$4,997 one-time setup + $497/mo (success-based pricing)", + features: [ + "Full CRM + Automation Buildout (GHL, Zoho, Lofty, FollowUpBoss, HubSpot, etc.)", + "AI Agent Suite (Done For You): Follow-up, Cold Outreach, Lead Intake, Voicemail + Voice Clone, Appointment Setter", + "Lead Masking + Lookalike Engine Setup with continuous audience refresh", + "Personalized Messaging System with POML + AB-tested emotional copy", + "Campaign Templates Loaded + Ready (SMS, Cold Call Scripts, Drip Logic)", + "White-Glove Configuration: We manage automations, logs, retries, errors, and infrastructure", + "Compliance Pack: TCPA settings, Do-Not-Call logic, Opt-in capture, Call recording disclaimers", + "Your entire AI Operations Team — done for you, managed for you, improved for you", + ], + }, + }, + highlighted: false, + cta: { text: "Get Started", type: "checkout" }, + }, ]; export default pricingCatalog; From f3cc53411ff888a9adf7e8e903eeb65a2a32130b Mon Sep 17 00:00:00 2001 From: Codex CLI Date: Tue, 2 Dec 2025 14:00:45 -0700 Subject: [PATCH 2/3] fix(pricing): Fix unused variable in CatalogPricing Prefix isSelfHosted with underscore to indicate intentionally unused --- src/components/pricing/CatalogPricing.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pricing/CatalogPricing.tsx b/src/components/pricing/CatalogPricing.tsx index c4f73311..386c5493 100644 --- a/src/components/pricing/CatalogPricing.tsx +++ b/src/components/pricing/CatalogPricing.tsx @@ -104,7 +104,7 @@ const stripePromise = process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY ? loadStripe(process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY) : null; -const isSelfHosted = (plan: OneTimePlan): plan is SelfHostedPlan => +const _isSelfHosted = (plan: OneTimePlan): plan is SelfHostedPlan => "ctaPrimary" in plan && "roiEstimator" in plan; /** From a9e464c257aebdad4e25c808b0af8f09689f7340 Mon Sep 17 00:00:00 2001 From: Codex CLI Date: Tue, 2 Dec 2025 14:03:05 -0700 Subject: [PATCH 3/3] feat(pricing): Make White-Glove stand out in Success Based tab - Add PERFORMANCE MODEL badge to White-Glove tier - Prioritize White-Glove to appear first in partnership plans - Make White-Glove card span full width for better visibility - Position White-Glove prominently next to Self-Hosted plan --- src/components/pricing/CatalogPricing.tsx | 31 ++++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/components/pricing/CatalogPricing.tsx b/src/components/pricing/CatalogPricing.tsx index 386c5493..13adf3ce 100644 --- a/src/components/pricing/CatalogPricing.tsx +++ b/src/components/pricing/CatalogPricing.tsx @@ -75,6 +75,7 @@ const ONE_TIME_PLAN_BADGES: Record< string, { label: string; variant: "partner" | "basic" | "starter" | "enterprise" } > = { + whiteGloveSuccessBased: { label: "PERFORMANCE MODEL", variant: "enterprise" }, commissionPartner: { label: "Commission Partner", variant: "partner" }, }; @@ -213,10 +214,17 @@ export const CatalogPricing = ({ const selfHostedPlan = oneTimePlans.find( (plan): plan is SelfHostedPlan => "roiEstimator" in plan, ); - const partnershipPlans = oneTimePlans.filter( - (plan): plan is Exclude => - !("roiEstimator" in plan), - ); + const partnershipPlans = oneTimePlans + .filter( + (plan): plan is Exclude => + !("roiEstimator" in plan), + ) + .sort((a, b) => { + // Prioritize White-Glove to appear first + if (a.id === "whiteGloveSuccessBased") return -1; + if (b.id === "whiteGloveSuccessBased") return 1; + return 0; + }); const handleSubscribe = useCallback( async (recurringPlan: RecurringPlan, interval: PricingInterval) => { @@ -1035,14 +1043,19 @@ export const CatalogPricing = ({
{partnershipPlans.map((plan) => { const badgeConfig = ONE_TIME_PLAN_BADGES[plan.id]; + const isWhiteGlove = plan.id === "whiteGloveSuccessBased"; return ( - + className={isWhiteGlove ? "md:col-span-2" : ""} + > + +
); })}