Onboarding you can follow, help where you are, and a carrier rule that stops silent failures
US texts from an unregistered number are refused, not silently dropped
5173946American carriers filter A2P traffic from numbers that are not registered under 10DLC — but the send is accepted and billed first, so the message reads as sent and never arrives. Velo now checks the registration before handing anything to the carrier and refuses with an explanation instead.
apps/api/src/services/messaging/a2p.service.tsA carrier registration screen that admits what it cannot do for you
e1795e9Brand and campaign registration lives in messaging settings, with the review times stated. Velo cannot shorten them, and the guide says so.
apps/web/src/pages/settings/comms/PhoneNumbersSettings.tsxTwo launchpads, because there are two levels of setup
eef9e59One flat checklist asked agency-level questions once per client and never asked the agency for its logo, a reusable snapshot or a payment processor. There is now a launchpad per level, each derived from real account state rather than a box you tick.
apps/api/src/services/onboarding/checklist.service.tsA command palette, and a sidebar grouped instead of flat
f941043Thirty navigation items in one list is a list nobody reads. They are grouped by outcome now, and ⌘K reaches any of them, plus a contact or a settings tab, in two keystrokes.
apps/web/src/components/layout/CommandPalette.tsxIn-app help that answers "help me with THIS screen"
39d6d32A drawer on every screen showing the guide for the route you are on, searchable across all of them, without leaving the page you were stuck on.
apps/web/src/components/layout/HelpDrawer.tsxCustomer-facing guides, written for the product as built
cf465bcA public documentation set at /docs, bound by test to the onboarding checklist so a step can never point at a guide that does not exist.
packages/docs/src/index.tsImport a real Go HighLevel export, not a toy CSV
366b20cThe importer now reads the column names GHL actually exports — including the ones it renames between products — instead of the tidy headers a hand-made sample would have.
apps/api/src/services/migration/ghl-columns.tsPriced under Go HighLevel, and billable annually
fead7c3$49, $149 and $399 a month, or ten months of that for a year. The marketing page and the enforced plan catalogue are asserted against each other, so the site cannot sell a limit the API refuses.
apps/api/src/services/billing/plans.tsAffiliate commission is clawed back on a refund or chargeback
e779dd3A referral that refunds used to leave the commission standing. The Stripe webhook now handles charge.refunded and charge.dispute.created and reverses it.
apps/api/src/services/affiliate/affiliate-commission.service.ts