Hey everyone! Third bi-weekly update — and the biggest one yet. We rewrote the invoice page, fully automated SMS campaign registration, rolled out voice dictation across every key text field, the AI is now actually selling and booking, full Housecall Pro data import is live, there’s a new SMS composer with templates, and platform navigation has been rebuilt end-to-end.
NEW Features
Voice Dictation — Everywhere A microphone button now lives on Job notes, Estimate Scope of Work, Work Order description and notes, the Google Business Profile review-reply composer, and Vendor notes. Tap, talk, walk away — the field fills itself. Handy when your hands are full or you’re driving.
AI Sales & Scheduling — For Real Now The voice assistant actually does four things now: sends a price quote to the customer, checks open slots on your calendar, books a visit, and creates the job in the system. If something blocks the action (closed hours, conflicting slot, customer not found) — the AI explains it to the customer out loud and suggests an alternative, instead of freezing.
AI With Approval for Risky Actions A new approval queue. For sensitive actions (high-ticket jobs, specific customer types) the AI now prepares a “draft” with a preview of what it’s about to do. An admin opens the queue, sees the plan, approves or rejects — and the AI finishes the job (or doesn’t). Every action is audit-logged: who asked, what the AI proposed, who signed off.
Automatic SMS Campaign Registration (A2P 10DLC) Brand and campaign registration with Twilio used to take weeks and a back-and-forth with support. Now:
- Brand registration fires automatically the moment you connect your card.
- We poll Twilio every hour and keep the status fresh on the page.
- Until the brand is approved, SMS messages don’t quietly fail — you see an explicit “waiting for approval” state.
- If Twilio rejects the application, a banner appears right on the page with a “fix and resubmit” button — no support ticket needed.
- And for anyone who signed up before all this existed, the registration button now lives directly on the Numbers page.
Redesigned Numbers Page Used to be a dry table. Now it’s an overview screen showing your company’s state: connected numbers, tier limits, A2P registration progress. Buying a new number from Twilio (search + city/area-code picker + checkout) now happens in a dialog on the same page — no more bouncing between sections.
7-Step Signup Wizard The old “everything on one screen” form is now sliced into 7 logical steps. Along the way we collect the legal business info needed for A2P, clarify the business name, ask what industry you’re in (HVAC / plumbing / electrical / multi-trade), and at the end you connect your card and set your business hours. The account lands in the system fully set up.
Invoice Page Rebuild The /invoices/:id page now does everything inline, no more bouncing between screens:
- Copy payment link
- Send link to customer via email or SMS
- Record payment
- Edit the invoice
- Duplicate
- Download PDF
- Preview
- Delete
Same treatment landed on estimates: Duplicate, Download PDF, Delete right from the estimate page.
SMS Composer + Templates A new SMS module: composer modal, full thread view, 5 ready-to-use templates (appointment confirmation, “tech is on the way,” review request, payment reminder, follow-up). Every “SMS” button across the platform now opens this composer instead of your phone’s native sms: link. Plus a new API for sending SMS as the customer from anywhere in the system.
Workflow Detail Page Each workflow now has a proper detail page: a Runs tab listing every execution, and inline Enable / Disable / Run / Edit / Delete buttons right in the header. No more bouncing back to the list to manage it.
Housecall Pro Data Import — A Full Pipeline If you’re migrating from HCP, the import got dramatically smarter:
- Auto-detects HCP-format CSV exports.
- Correctly handles “Additional Addresses,” “Additional Emails,” and “Additional Phones” columns.
- Normalizes phone numbers to E.164.
- Parses full names with titles, suffixes, and particles (Mr., Jr., van der, etc.).
- Repairs “mojibake” in Cyrillic and accented characters (when Excel saved Windows-1252 as UTF-8).
- Understands all 11 ways HCP writes tax rates.
- Skips synthetic test/spam rows.
Plus a pre-import diagnostics screen (what’s in the file, which columns mapped, what’s “not ready”), per-entity progress visualization, and a post-import health report on cross-entity links (“jobs without customers,” “addresses not tied to properties”). If the file has errors, the import no longer fails wholesale — it skips bad rows and gives you a row-by-row drill-down.
Import Templates — Version 2 Downloadable Excel templates for all 12 entity types: customers, properties, jobs, equipment, employees, memberships, vendors, invoices, estimates, contacts, accounts, parts. Two flavors:
- Simple — only the required fields.
- Full — every supported field, plus a built-in “
Read this first” tab with instructions.
The importer also now understands European formats — comma as decimal separator, DD/MM/YYYY dates.
Smart / Dashboard The root URL now routes you to a role-appropriate first screen: technicians land on their job board, dispatchers on the dispatch screen, owners on the metrics view.
Skills Hub A new page: Settings → Skills. Build a skill tree for your business: 8 root categories, 24 default leaves, plus your own. The technician matcher is hierarchy-aware now: if a tech is tagged with “Tankless water heater,” they automatically match a “Plumbing” requirement — no need to tag everything by hand.
Navigation Rebuild
- Settings collapsed into 7 logical categories.
- The entire “Enterprise” section was removed from the sidebar — its 32 entries moved into the right places.
- Reports and Analytics are finally separated.
- “Customers” is one canonical entry, not three.
- AI section cleaned up.
- A separate “Foundation Cleanup” pass — 9 small fixes for broken links and dead buttons.
- The non-working Cmd+K palette was removed.
Inbox Instead of “Conversations” The section was renamed to Inbox, and the URL matches. In the conversation header there’s now a mode toggle — AI / manual / under review — one click, with optimistic UI and rollback on failure.
Cmd+\ — Hide Menu Focus mode. The sidebar disappears completely.
Users Page — Everything In One Place The old /settings/team is gone. /users now hosts three tabs in a single shell: Users / Technicians / Invites. Per-user AI category controls moved into the user’s detail panel. Inviting a new person now lives in the Invite tab, no separate modal.
Service Areas — ZIP Only The Service Areas field in Settings now accepts ZIP codes only. The list is wired directly into the voice AI: calls coming from a ZIP you don’t service won’t be picked up.
CUSTOMERS, JOBS, AND PROPERTIES
Customer Name Is Clickable Everywhere In the jobs table, on job cards, in the technician’s schedule — clicking the customer’s name takes you to their profile. Used to work only in some places.
Technician Schedule The full date now shows next to the time — no more guessing which day.
Customer Profile Every row (jobs, estimates, invoices, properties) is now clickable and links to the detail page. The Estimates section no longer disappears when it’s empty — it just shows an empty state.
Customer List Removed the quick-action icons that appeared on hover (they were confusing and triggered accidental clicks).
Account Quick Filters The “Outstanding” and “VIP” chips now actually filter the list, not just highlight.
Technician “Navigate” Button Now opens Google Maps with directions to the job address, as expected.
Schedule Maintenance From the Property Page A “Schedule Maintenance” button now appears in the header of the property detail page — no need to jump to a separate screen.
Estimate Creation The estimate creation modal now has an “Add from Price Book” picker — line items drop into the estimate with one click, no manual entry.
WHAT’S FIXED
The big theme this sprint was making errors visible. Dozens of pages were silently swallowing failures and showing empty states or stale data. Every one of these now surfaces a red “Something went wrong” alert with a Retry button:
Predictive Maintenance · Reports · AI Center · Route Optimization · Calendar · Analytics · Display Preferences · Platform Billing · Data Migration · Conversations · Google Business Profile and Housecall Pro connectors · Documents · Customer Portal (login, dashboard, requests, terms) · Workflows · Public Payments · Service Requests · Inventory Create · Property Stats · Saved Reports · Email Tracking · Forgot Password · A/B Tests · Vendors · Bulk Estimate Reminders · Record Payment · Reset Password button · Set Default / Remove on payment methods · SSO Login · Notifications · Payments · Inventory · Dashboard Metrics · Main Dashboard widgets.
Other notable fixes:
- Team invites — the
/invite/acceptlink no longer redirects to login (new users used to land on the sign-in form and not know what to do). - Schedule and “Overdue” badge — for some tenants the schedule page and the Overdue pill worked intermittently. Fixed.
- A/B tests — “inconclusive” result — now saves (the system used to refuse to record that outcome).
- Technician “Start” button — finally works by moving the job from “Pending” to “In Progress” (the button used to do nothing).
- Workflow canvas — “Fit View” now responds to clicks, and the view switcher activates after load.
- AI replies to inbound SMS — if a contact was saved without a country code, the reply now still matches the right conversation. Used to get lost.
- Speech-to-text — if transcription fails, a toast explains what happened instead of silence.
- Public payments — checkout keeps working even if the invoice amount cached on the page is stale.
- Twilio Voice — normal call hangup — we stopped sending the standard hangup code as an error to our monitoring system.
- Main dashboard — removed the redundant “New Job” and “Schedule” tiles (they duplicated the top actions), and the Export button finally opens a dropdown.
- Employee import — rejects rows without an email and handles duplicates more carefully.
- Property import — no longer defaults the state to “CA” when the source file doesn’t include one.
- Supervisor Dashboard “Done” tile — now clickable and drills through to the completed jobs list.
- Top bar — removed the “Paused / Voice AI / Sales Agent / Scheduling” status pill (it confused more people than it informed).
- Logout — if the server returns an error during sign-out, you can see it now (instead of “we logged you out, but actually we didn’t”).
- Language switcher on the landing page now opens on click, not hover (mobile users couldn’t reach it).
- Inventory stock — the “TOTAL VALUE” stat now includes the stock in technicians’ vans, not just the warehouse.
If something broke, or you want to see a particular feature next — just reply here. We read everything.