PageSourceSearch

https://callflow.dev/assets/PricingPage-DXioI9ao.js

js callflow.dev collected 2026-10-08 05:57:31 UTC 14,409 bytes, 2 lines download raw bytes

1import{r as c,j as e,i as A,L as f}from"./vendor-react-BejaPDzU.js";import{d as k,B as b,e as P,s as N,b as j,f as $,g as I,P as L,O as E,c as F,i as B,L as O,S as D,A as T}from"./index-B6Tyvt9P.js";import{S as U}from"./SEOBreadcrumbs-D9EbTBDn.js";import{S as R}from"./switch--U7-R_xr.js";import{D as G,a as H,b as W,c as _,d as q}from"./dialog-BuASFBqZ.js";import{I as Y}from"./input-BwU7N1FI.js";import{B as M}from"./badge-OW0agykM.js";import{C as h}from"./circle-check-C0t50smJ.js";import{S as Q}from"./shield-check-D8bJF9df.js";import{L as K}from"./lock-CIxnjdoP.js";import"./vendor-query-DdyZXiDU.js";import"./vendor-ui--X5BZniO.js";import"./vendor-supabase-FIOcN6HE.js";import"./index-BH3fl-Co.js";import"./index-BAQWsOKG.js";import"./index-aOMPTBki.js";const z="price_1U3fYx6OO137WdEn4YTRRgYT",v="$149.99",V="$179",J=["20 seats included","Unlimited AI role-play and voice training","700+ scenarios plus your own custom builder","AI scoring, supervisor reviews, and reporting"];function X({open:s,onOpenChange:l,defaultEmail:t}){const[d,o]=c.useState(t??""),[n,m]=c.useState(!1),x=async()=>{const{data:r}=await N.auth.getSession(),i=!!r.session,u=d.trim().toLowerCase();if(!i&&!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(u)){j.error("Enter a valid email so we can set up your account");return}m(!0);try{const{data:a,error:p}=await N.functions.invoke("create-checkout",{body:{priceId:z,plan:"growth",...i?{}:{email:u,payFirst:!0}}});if(p)throw p;if(a?.error)throw new Error(a.error);if(a?.url){window.location.href=a.url;return}throw new Error("Could not start checkout")}catch(a){j.error(a.message||"Could not start checkout"),m(!1)}};return e.jsx(G,{open:s,onOpenChange:r=>!n&&l(r),children:e.jsxs(H,{className:"sm:max-w-md",children:[e.jsxs(W,{className:"space-y-2",children:[e.jsxs(M,{className:"w-fit bg-primary/10 text-primary border border-primary/20 text-xs gap-1",children:[e.jsx(k,{className:"w-3 h-3"})," One-time offer"]}),e.jsx(_,{className:"text-2xl",children:"Wait, here is a better deal"}),e.jsx(q,{children:"You left before finishing checkout, so we put together a one-time annual price on the Growth plan. Pay once, train your whole team for a full year."})]}),e.jsxs("div",{className:"rounded-xl border-2 border-primary bg-primary/5 p-4 text-center",children:[e.jsxs("p",{className:"text-3xl font-extrabold text-foreground",children:[v,e.jsx("span",{className:"text-base font-semibold text-muted-foreground",children:"/year"})]}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Normally ",V,"/year. Billed once, cancel renewal anytime."]})]}),e.jsx("ul",{className:"space-y-2",children:J.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground",children:[e.jsx(h,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsx("span",{children:r})]},r))}),!t&&e.jsx(Y,{type:"email",placeholder:"[email protected]",value:d,onChange:r=>o(r.target.value),className:"h-11"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(b,{className:"w-full h-11 rounded-lg",disabled:n,onClick:x,children:[n?e.jsx(P,{className:"w-4 h-4 animate-spin mr-2"}):null,"Claim ",v," for the year"]}),e.jsx(b,{variant:"ghost",className:"w-full text-sm text-muted-foreground hover:text-foreground",disabled:n,onClick:()=>l(!1),children:"No thanks, show me the plans"})]})]})})}const y=[{key:"starter",name:"Starter",tagline:"For founder-led small teams getting started with AI role-play training.",seats:8,monthly:9.97,yearly:89,savePct:26,saveLabel:"Save 26% (3+ months free)",ctaLabel:"Get Started",ctaHelper:"Cancel anytime. No credit card surprises.",features:["8 seats included","Unlimited AI training sessions","700+ scenario templates","AI scoring & instant feedback","Text & voice training","Email support"]},{key:"growth",name:"Growth",tagline:"For growing SDR, AE, and support teams that need more coverage and reporting.",seats:20,monthly:19.97,yearly:179,savePct:25,saveLabel:"Save 25% (3 months free)",highlight:!0,ctaLabel:"Start Free Trial",ctaHelper:"30 days full access. Cancel in one click.",features:["20 seats included","Everything in Starter, plus:","Custom scenario builder","Team management & reporting","Supervisor review workflows","Priority support"]},{key:"scale",name:"Scale",tagline:"For multi-team contact centers scaling onboarding.",seats:50,monthly:49.97,yearly:399,savePct:33,saveLabel:"Save 33% (4 months free)",ctaLabel:"Get Started",ctaHelper:"Need 50+ seats? Talk to sales.",features:["50 seats included","Everything in Growth, plus:","Advanced analytics dashboard","Branded login & domains","Bulk user management","Dedicated success manager"]}];function S(s){return s%1===0?`$${s}`:`$${s.toFixed(2)}`}function he(){const[s,l]=c.useState("yearly"),t=s==="yearly",d=$(),o=I(),[n]=A(),[m,x]=c.useState(!1),r=n.get("e")||void 0;c.useEffect(()=>{if(n.get("checkout")==="canceled"){const a=setTimeout(()=>x(!0),400);return()=>clearTimeout(a)}},[n]);const i="https://callflow.dev",u=[{"@context":"https://schema.org","@type":"Product",name:"Call Flow",description:"AI-powered call center and sales role-play training platform. Realistic AI callers, instant 5-dimension scoring, supervisor reviews, and custom scenarios. Cuts new-hire ramp time by up to 40%.",brand:{"@type":"Brand",name:"Call Flow"},image:`${i}/og-image.png`,url:`${i}/pricing`,sku:"callflow-saas",isRelatedTo:{"@id":L},offers:{"@type":"AggregateOffer",priceCurrency:"USD",lowPrice:"9.97",highPrice:"49.97",offerCount:y.length.toString(),offers:y.map(a=>({"@type":"Offer",name:`${a.name} (${a.seats} seats)`,description:a.tagline,price:(t?a.yearly/12:a.monthly).toFixed(2),priceCurrency:"USD",url:`${i}/pricing`,availability:"https://schema.org/InStock",category:"SaaS subscription",eligibleQuantity:{"@type":"QuantitativeValue",value:a.seats,unitText:"seat"},priceSpecification:{"@type":"UnitPriceSpecification",priceCurrency:"USD",price:(t?a.yearly/12:a.monthly).toFixed(2),billingIncrement:1,unitCode:"MON",referenceQuantity:{"@type":"QuantitativeValue",value:"1",unitCode:"MON"}},seller:{"@id":E}}))}},F([{name:"Home",url:"/"},{name:"Pricing",url:"/pricing"}]),B([{q:"What does the free trial include?",a:"The free trial unlocks the Growth plan for 30 days with up to 20 seats. Full access to AI role-play, instant scoring, the custom scenario builder, supervisor reviews, and reporting. Cancel any time in one click."},{q:"How much does Call Flow cost?",a:"Plans start at $9.97/month for the Starter tier (8 seats), $19.97/month for Growth (20 seats), and $49.97/month for Scale (50 seats). Annual billing saves up to 33%. Enterprise pricing is available for 500+ seats."},{q:"Can I cancel any time?",a:"Yes. Monthly plans cancel in one click from your billing portal with no contract minimum. Annual plans renew yearly but you can cancel renewal at any time."},{q:"How much do I save with annual billing?",a:"Annual billing saves 26% on Starter, 25% on Growth (three months free), and 33% on Scale (four months free) ver
1sus paying monthly."},{q:"What happens if I need more seats?",a:"Upgrade between Starter, Growth, and Scale at any time, prorated to the day. For teams above 50 seats, contact sales for volume pricing on the Enterprise tier."}])];return e.jsxs(O,{children:[e.jsx(D,{title:"Pricing — Call Flow AI Training Plans",description:"Flat team pricing for AI role-play training: 8 to 50 seats from $9.97/mo, unlimited practice, no per-seat surprises. Start free, cancel anytime.",canonical:"https://callflow.dev/pricing",schemaJson:u}),e.jsx(U,{items:[{label:"Pricing"}]}),e.jsx(X,{open:m,onOpenChange:x,defaultEmail:r}),e.jsx("section",{className:"pt-20 lg:pt-28 pb-10 px-6",children:e.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[e.jsx("p",{className:"text-sm font-semibold text-primary uppercase tracking-[0.2em] mb-4",children:"Pricing"}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-extrabold leading-tight tracking-tight text-foreground",children:"Simple pricing that scales with your team"}),e.jsx("p",{className:"mt-4 text-lg text-muted-foreground max-w-2xl mx-auto",children:"One plan per team size. Unlimited training. Annual billing saves up to 25%."})]})}),e.jsx("section",{className:"pb-10 px-6",children:e.jsxs("div",{className:"max-w-3xl mx-auto flex flex-col items-center gap-3",children:[e.jsxs("div",{className:"inline-flex items-center gap-4 roun
1ded-full border border-border bg-card px-5 py-3 shadow-sm",children:[e.jsx("button",{type:"button",onClick:()=>l("monthly"),className:`text-sm font-semibold transition-colors ${t?"text-muted-foreground hover:text-foreground":"text-foreground"}`,"aria-pressed":!t,children:"Monthly"}),e.jsx(R,{checked:t,onCheckedChange:a=>l(a?"yearly":"monthly"),"aria-label":"Billing period"}),e.jsx("button",{type:"button",onClick:()=>l("yearly"),className:`text-sm font-semibold transition-colors ${t?"text-foreground":"text-muted-foreground hover:text-foreground"}`,"aria-pressed":t,children:"Billed Yearly"}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-secondary/10 text-secondary px-2.5 py-1 text-xs font-semibold",children:[e.jsx(k,{className:"w-3 h-3"})," Save up to 25%"]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Switch any time. Annual customers lock in today's price."})]})}),e.jsxs("section",{className:"pb-16 px-6","aria-live":"polite",children:[e.jsx("div",{className:"max-w-6xl mx-auto grid md:grid-cols-3 gap-6 items-stretch",children:y.map(a=>{const p=t?a.yearly:a.monthly,g=t?a.yearly/12:null,C=a.key==="growth"&&s==="monthly"?o.ctaHref:`/get-started?plan=${a.key}&billing=${s}`;return e.jsxs("div",{className:`relative rounded-2xl bg-card p-7 flex flex-col transition-all duration-200 ${a.highlight?"border-2 border-primary shadow-xl lg:scale-[1.02]":"border border-border hover:shadow-md hover:-translate-y-0.5"}`,children:[a.highlight&&e.jsx("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-1 rounded-full bg-primary text-primary-foreground text-xs font-semibold shadow-sm",children:"Most Popular"}),e.jsxs("div",{className:"mb-5",children:[e.jsx("h2",{className:"text-xl font-bold text-foreground",children:a.name}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:a.tagline})]}),e.jsx("div",{className:"inline-flex items-center gap-2 mb-5",children:e.jsxs("span",{className:"rounded-full bg-primary/10 text-primary px-2.5 py-1 text-xs font-bold",children:[a.seats," seats included"]})}),e.jsxs("div",{className:"mb-2",children:[e.jsxs("div",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-5xl font-extrabold tracking-tight text-foreground tabular-nums",children:t&&g!==null?`$${g.toFixed(2)}`:S(p)}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"/mo"})]}),t&&g!==null?e.jsxs("div",{className:"mt-1.5 flex items-center gap-2 text-sm",children:[e.jsxs("span",{className:"text-muted-foreground line-through",children:["$",a.monthly.toFixed(2),"/mo"]}),e.jsxs("span",{className:"text-muted-foreground",children:["Billed annually at ",e.jsxs("span",{className:"font-semibold text-foreground",children:[S(a.yearly),"/yr"]})]})]}):e.jsx("div",{className:"mt-1.5 text-sm text-muted-foreground",children:"Billed monthly"}),e.jsxs("div",{className:"mt-2 inline-flex items-center gap-1.5 rounded-md bg-secondary/10 text-secondary px-2 py-1 text-xs font-semibold",children:[e.jsx(h,{className:"w-3.5 h-3.5"}),t?a.saveLabel:`Switch to yearly to save ${a.savePct}%`]}),a.key==="growth"&&e.jsx("p",{className:"mt-3 text-xs text-muted-foreground leading-relaxed",children:"$179/yr is less than one week of a stalled new hire's ramp, and every rep on the team can practice unlimited."})]}),e.jsx("ul",{className:"space-y-2.5 mt-6 mb-7 flex-1",children:a.features.map(w=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-foreground",children:[e.jsx(h,{className:"w-4 h-4 text-secondary shrink-0 mt-0.5"}),e.jsx("span",{children:w})]},w))}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(b,{asChild:!0,size:"lg",variant:a.highlight?"default":"outline",className:"w-full gap-2 rounded-lg",children:e.jsxs(f,{to:C,children:[a.key==="growth"&&s==="monthly"?o.ctaLabel:a.ctaLabel," ",e.jsx(T,{className:"w-4 h-4"})]})}),e.jsx("p",{className:"text-xs text-center text-muted-foreground",children:a.key==="growth"&&s==="monthly"?o.showPrice?`${d.durationLabel} full access. Cancel in one click.`:"Full access. Cancel in one click.":a.ctaHelper})]})]},a.key)})}),e.jsxs("div",{className:"max-w-3xl mx-auto mt-10 flex flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm text-muted-foreground",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(Q,{className:"w-4 h-4 text-secondary"})," Cancel anytime"]}),e.jsx("span",{className:"hidden sm:inline",children:"•"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(h,{className:"w-4 h-4 text-secondary"})," Full access during subscription"]}),e.jsx("span",{className:"hidden sm:inline",children:"•"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(K,{className:"w-4 h-4 text-secondary"})," No hidden fees"]})]})]}),e.jsx("section",{className:"pb-20 px-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto rounded-2xl border border-border bg-card p-8",children:[e.jsx("h2",{className:"text-xl font-bold text-foreground text-center mb-6",children:"Why teams pick annual billing"}),e.jsx("div",{className:"grid sm:grid-cols-3 gap-6",children:[{title:"Lock in today's price",body:"Your rate is fixed for the full year, even if pricing changes."},{title:"2 to 3 months free",body:"Annual billing saves between 17% and 25% ver
1sus paying monthly."},{title:"Smoother budgeting",body:"One invoice per year keeps procurement and finance happy."}].map(a=>e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground",children:a.title}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:a.body})]},a.title))}),e.jsxs("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm",children:[e.jsx(f,{to:"/pricing-comparison",className:"text-primary font-semibold hover:underline",children:"Compare Call Flow pricing vs competitors →"}),e.jsx(f,{to:"/faq",className:"text-primary font-semibold hover:underline",children:"Pricing FAQ →"})]})]})})]})}export{he as default};
2//# sourceMappingURL=PricingPage-DXioI9ao.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.