Skip to content

fix(pricing): route Talk to sales CTA to demo request form instead of signup#5602

Merged
waleedlatif1 merged 1 commit into
stagingfrom
fix/pricing-talk-to-sales
Jul 11, 2026
Merged

fix(pricing): route Talk to sales CTA to demo request form instead of signup#5602
waleedlatif1 merged 1 commit into
stagingfrom
fix/pricing-talk-to-sales

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Pricing page's Enterprise card was labeled "Talk to sales" but its CTA hardcoded /signup for every card, so clicking it sent visitors to self-serve signup instead of the demo-request form every other "Contact sales" CTA on the site (navbar, mobile nav, footer CTA, enterprise page) already uses
  • resolveCta in pricing-plans.tsx now keys off the card's sales intent (from getUpgradeCardCta) to pick /demo vs /signup
  • Extracted the /signup//demo route literals — previously hardcoded independently across 6 landing files — into a single shared apps/sim/app/(landing)/constants.ts so a CTA destination can't silently drift again
  • Small cleanup while in the file: hoisted the static per-column comparison sections out of render (they don't depend on any prop/state) and deduped the annual-discount price math into a small helper

Type of Change

  • Bug fix

Testing

Tested manually (typecheck + biome clean on all touched files; verified resolveCta's intent-based branch and PricingCard's href={cta.href} wiring by reading the full call path)

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

… signup

- pricing page's enterprise card was labeled "Talk to sales" but linked to
  /signup for every card, sending visitors to self-serve signup instead of
  the demo-request flow every other "Contact sales" CTA on the site uses
- resolveCta now keys off the CTA's sales intent to pick the right href
- extracted the /signup and /demo route literals (previously hardcoded
  independently in 6 files) into a single shared apps/sim/app/(landing)/constants.ts
  so no CTA can drift to the wrong destination again
- hoisted the static per-column comparison sections out of render and
  deduped the annual-discount price math in pricing-plans.tsx
@vercel

vercel Bot commented Jul 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Jul 11, 2026 6:29pm

Request Review

@cursor

cursor Bot commented Jul 11, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Marketing navigation and pricing CTA href changes only; no auth, billing, or data-path changes.

Overview
Fixes a pricing bug where the Enterprise card showed “Talk to sales” but every card’s CTA still linked to /signup. resolveCta now sends sales intent (from getUpgradeCardCta) to /demo and other intents to signup.

Adds apps/sim/app/(landing)/constants.ts with SIGNUP_HREF and DEMO_HREF, and wires navbar, hero, footer CTA, enterprise page rows, and pricing to those constants so marketing CTAs can’t drift.

On the pricing page only: hoists static comparison sections to SECTIONS_BY_COLUMN and dedupes annual price math via annualPrice.

Reviewed by Cursor Bugbot for commit 6cd33d0. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR updates landing-page CTA routing for pricing and shared marketing links.

  • Adds shared /signup and /demo landing CTA constants.
  • Replaces hardcoded CTA hrefs across navbar, hero, footer CTA, and enterprise sections.
  • Routes pricing sales-intent CTAs to /demo while keeping self-serve CTAs on /signup.
  • Hoists static pricing comparison sections and reuses annual price rounding logic.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.
  • The shared constants preserve the existing href values.
  • The pricing CTA branch matches the current billing CTA intent contract.
  • The pricing refactor keeps the same static data and price math.

Important Files Changed

Filename Overview
apps/sim/app/(landing)/constants.ts Adds shared signup and demo href constants for landing CTAs.
apps/sim/app/(landing)/pricing/components/pricing-plans/pricing-plans.tsx Uses CTA intent to choose pricing destinations and refactors static comparison and annual price helpers.
apps/sim/app/(landing)/components/cta/cta.tsx Replaces footer CTA route literals with shared constants.
apps/sim/app/(landing)/components/hero-cta/hero-cta.tsx Replaces hero CTA route literals with shared constants.
apps/sim/app/(landing)/components/navbar/components/mobile-nav/mobile-nav.tsx Replaces mobile navbar signup and demo hrefs with shared constants.
apps/sim/app/(landing)/components/navbar/navbar.tsx Replaces desktop navbar sales and signup hrefs with shared constants.
apps/sim/app/(landing)/enterprise/enterprise.tsx Replaces enterprise page CTA route literals with shared constants.

Reviews (1): Last reviewed commit: "fix(pricing): route Talk to sales CTA to..." | Re-trigger Greptile

@waleedlatif1 waleedlatif1 merged commit b486aba into staging Jul 11, 2026
18 checks passed
@waleedlatif1 waleedlatif1 deleted the fix/pricing-talk-to-sales branch July 11, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant