2026.5.22
Annual billing, promo codes, verification
Annual plans with monthly credit refresh, discount codes, in-app seat changes, and a verified email before any account is provisioned.
- billing
- subscriptions
- auth
- mobile
Thirty-one changes shipped in this release. Most of the work was in billing: annual plans, promo codes, seat changes without leaving the app, and a shorter path from a locked feature to an upgraded plan. Signup also stopped provisioning anything before the email is proven.
Billing and subscriptions
- Annual plans — a monthly or annual choice on every plan surface with honest savings figures. Annual subscriptions still refresh credits monthly.
- Promo codes — apply a discount code to a credit pack or an active subscription, with admin-side creation, redemption history, scoping, and per-organization caps.
- In-app seat changes — adjust seat count from one row with live before-and-after pricing and a confirmation that names today’s prorated charge.
- Upgrade where you hit the wall — choosing to upgrade on a gated feature confirms and completes in place, falling through to checkout only when there is no card on file.
- One source of truth for prices — plan prices are read from the payment provider on demand rather than mirrored locally, removing the class of bug where the app and the invoice disagreed.
Reliability in billing
- Correct renewals — a renewal invoice with several proration lines now resets the cycle allowance from the right one, so a mid-cycle plan or seat change no longer distorts the next month.
- Budgets reset only on payment — cycle allowances are driven exclusively by paid invoices, making them immune to out-of-order provider events.
- No stranded subscriptions — a checkout that supersedes an older subscription now cancels it, and switching plans after a cancellation reuses the existing payment method instead of erroring.
Signup
- Email verified before provisioning — signup writes a pending record and emails a six-digit code; nothing is created until the code is confirmed. Resends are rate-limited and codes lock after repeated failures. Social sign-in is unchanged.
Messaging
- Contact info hub — tapping the conversation header opens a dedicated info view with call, message, and email actions and Info, Notes, and Tasks tabs, plus a sheet that edits basics, phones, emails, and custom fields in one screen.
Mobile app
- Push notifications repaired — tapping a notification no longer crashes the app, titles show the contact name instead of a raw number, inbound calls deliver a push, and message notifications open the thread.
- Keyboard and input polish — the composer stays above the keyboard on Android, tap targets are consistent, and forms no longer trigger auto-zoom on iOS.
Voice
- A new realtime model — a higher-reasoning realtime model is available for voice agents with a reasoning-effort control that appears only when it is selected. Existing agents keep working unchanged.
Reliability
- Faster, safer deploys — production now pulls a pre-built image instead of building on deploy, cutting release time from around forty minutes to about ten, with migrations running before traffic moves.
- Realtime cleanup — live channels are reclaimed when a client disconnects instead of accumulating.