The latest features, improvements, and platform updates shipped to OfficeHubb from day one to today.
Phase 37New FeatureImprovementFix
Real-time achievements + a cleaner upgrade flow
Achievement toasts now appear on any /hubb page — not just home. Log a sale, send a comment, click Call, or hit a 10th / 25th / 50th milestone and the celebration pops on whatever screen you're on
Office-wide celebrations — when a teammate hits a big milestone (50+ calls, 100 sales, etc.) the rest of the office sees a quick "Way to go, Sarah" toast too
Three new rewards: Search for a person (Solo, $10), Jot in the Notepad (Growth, $15), Save your first bookmark (Growth, $10). Solo and Growth pools redistributed to keep the same totals
Trial honesty — your trial now uses the plan you actually subscribed to, not a temporary Full upgrade. No more "wait, where did Forms go?" surprises on day 31. The Rewards panel and feature gates now match what you're paying for
Upgrades and downgrades during your trial are seamless — switch plans at any time without ending your trial early or being charged today. Just a "Plan updated" confirmation and you're on the new tier
"Your Plan" badge on the active tier card on /hubb/billing, "Switch to <plan>" labels on the others — clear which plan you have at a glance
Reviews panel empty state now has a "Connect Google Business" button that deep-links you straight into Settings with the right section already open
Onboarding got a brighter visual treatment — colorful ambient gradients on the background and a richer purple card. Less dungeon, more product
Removed the stale "1 of 6 milestones / second month free" copy on the onboarding done screen — rewards now credit your Stripe balance live as you earn them
Fixed: card comments now correctly attribute to you in the activity heatmap and trigger the "first comment!" toast
Fixed: new signups were sometimes getting stamped as Full in the database while paying for Starter — every new agency now lands on the correct tier
Fixed: deleting an agency from /support used to fail at random foreign-key constraints (pool numbers, form sessions). Cleanup is now reliable end-to-end
Fixed: the Realtime connection on chat and notifications used to drop every 45 seconds, silently losing pushes. Connection now stays alive across token refreshes
Phase 36New FeatureImprovementFix
Premium Chat — trust, reactions, typing, replies
Reactions on every message — 👍 ❤️ 😂 🎉 🤔 picker on hover, pill counts under the bubble, click to toggle
Reply to a specific message — quote bar above the input, inline ↩ preview header on the reply, click to scroll back to the original
Typing indicators in team chat and DMs — "Bob is typing…" with a fixed-height slot so the input never jumps
Read receipts on DMs — "Read at 3:24 PM" under your most recent message when the recipient catches up
Server-side unread tracking — badges across the topbar, ChatPanel tabs, and the DM sidebar all match exactly
"─── New ───" divider before the first message you have not seen, plus a "↓ New messages" pill that scrolls you there
Delivery checkmarks under your messages: clock while sending, ✓ when confirmed, ⚠ + Retry if the send failed
"Reconnecting…" chip in the chat header when the realtime connection hiccups
Auto-catch-up on tab focus / visibility change — messages received while you were on another tab no longer go silently missing
Bubble shadows cleaned up — consistent across every theme (gold, dark, blue, light)
Phase 35New FeatureImprovement
Mobile-friendly form, Update Notices, Form History
Public landing-page form chat redesigned for phones — full-screen on mobile, no iOS auto-zoom on the input, real Send key on the soft keyboard, safe-area padding for notched iPhones
Conversation now persists across refresh and back-swipe — a refreshed tab resumes the chat instead of starting over
Connection-lost banner with Retry on AI failure, so a flaky network does not silently drop the prospect
OG/Twitter meta tags on agency landing pages — agent-sent SMS link previews now show the agency logo and a clean call-to-action
New "What's new" pop-up across /hubb — explains shipped changes and points users at support if anything looks off
New /support → Tools → Update Notices admin form — platform staff can publish a release note in two clicks
New "Form History" tab on /hubb/forms — every smart-form and AI-chat intake your agency has received, with a Q&A drilldown modal
Abandoned smart-form intakes and AI chats are auto-recovered into the pipeline by a safety-net cron — contactable leads no longer fall through if a prospect bounces
Phase 34New FeatureInfrastructure
Email + SMS Campaigns
Co-pilot model — AI proposes the follow-up, you approve. Per-user opt-in for auto-approval; never default-on
Per-card Quick Actions — Call (tel:), Email (mailto:), Text (in-card thread). ComposeModal with preview, edit, send, ✨ Draft with AI, 🧪 Test send to me
Self-serve Telnyx provisioning — pick your own SMS number in ~60 seconds, three-phase wizard
Five defensive layers around SMS: explicit-consent default, STOP-rate auto-suspend, soft-launch volume cap, spam-keyword content gate, per-agency STOP dashboard for platform support
Compliance gate (canSend) is the single chokepoint for every outbound — TCPA consent, opt-out, dedupe, quiet hours, daily and monthly caps, pacing, unanswered-lockout, content flagging
Inbound + delivery webhooks — Telnyx (Ed25519 verified) and Resend (Svix HMAC verified); inbound SMS surfaces a persistent toast and bell badge for the card owner
Phase 33New FeatureImprovementFix
Pricing, trials, demo & onboarding
Sign-up CTAs route through /pricing for plan pre-selection — the chosen plan + period carries through to Stripe checkout
Updated Terms of Service + signup acceptance + a re-acceptance modal that locks the hub when terms change
14-day trial wired through onboarding — the trial actually applies on the first paid month
Stripe-style order summary panel on the billing step — collapsed plan card with totals always visible
Per-promo Stripe duration support — partner / discount codes can carry their own length
Side-by-side scenario comparison in the commission plan wizard — see two plans against each other before saving
Service credit editing + visibility on sale records — adjust who gets credit after the fact
Demo agency with staged feature reveals — five users, richer seed data, banner pill consolidated in the bottom-left
Partner attribution panel in /support — track which partner referred which agencies + which agencies are on a discount
Delete Agency tool with full JSONB backup — every wipe is recoverable from the backup table
Pipeline: rename a card from the detail modal — the board updates in place instead of disappearing on save