Calls list: SMS after the call, a recordings filter, and a rebuilt phone view
- See what the caller received: the new "SMS after call" column tells you whether the automatic confirmation went out after a call. Hover or tap the badge to read the message itself, when it was sent, and — if it failed — the reason the carrier gave. Until now that meant opening the call and scrolling its SMS history.
- "With recording" filter: one click narrows the list to calls you can actually listen to. Recordings erased at the caller’s request drop out, because the filter means "there is something to play right now".
- The phone list, rebuilt: what the caller said is visible straight away, and the phone number places the call in one tap. Filters start collapsed behind a single button that shows how many of them are narrowing the list. Nearly four times as many calls fit on a screen.
- Change a status from your phone: "New", "Needs decision" and the rest are now set straight from the list, without reaching for a computer.
- Recording and consent in one place: two columns that repeated each other were merged. A call recorded without the announcement now carries its own marker — that is a legally relevant fact and belongs in plain sight.
Outbound dialing, multi-tenant & landline-friendly
- Outbound calls via conference: Call clients straight from Heilo — the system connects you first, then dials the client while you hear a short hold music. The conference is recorded and transcribed the same way as inbound calls.
- Full recording-consent flow: Outbound calls now ship with a controller/processor disclosure, an acknowledgement timestamp on each profile, and an admin panel to resolve consent disputes.
- Multi-seat accounts: Accounts can now be shared across teammates — owner/admin/member roles, invitation panel, deal-stage kanban with workflows, tasks, plus full per-organization data isolation (RLS).
- Choice of recording notice: Pick the announcement the caller hears from a set of ready-made wordings — per call, or as the default for a number. The voice-over was rebuilt (Brian, neutral tone).
- Call tags and mood detection: AI labels calls by mood (positive/neutral/tense) and dynamics (monologue/dialogue/conflict). Filter the call list by tag.
- Caller SMS with a privacy mode: Per phone you choose whether to send the caller the full voicemail body, just the call subject, or only your own template. Plus an opt-in for "send the SMS even if the caller hung up before leaving voicemail".
- CSV export: Download the full list of calls and contacts as a CSV — filters on the page are respected.
- Landlines and better onboarding: Verify landlines via voice (Heilo will call you and read the code), and configure an alternate mobile for SMS notifications via the same verify popup. The add-phone wizard is also clearer (business vs. my own phone).
- Dark mode: The whole app — dashboard, settings, call details — now supports dark mode.
- 10 call-details UX polish items: Visible "Edit summary" button, an "analyzing…" placeholder while processing, a roomier transcript editor, scroll preservation, colored status badges and other small touch-ups.
Recording Landing, Analytics & Voicemail Polish
- Call Recording Landing Page: Dedicated landing page for the recording feature with interactive demo, two layout variants, visual flow diagram, and SMS/system mockups optimized for Google Ads conversion.
- Google Analytics 4 + Ads Conversion Tracking: Added GA4 with SPA page-view tracking and Google Ads remarketing/lead conversion events for pilot form submits.
- Redesigned Call List: Call rows now show the full transcript inline with a unified phone-handset icon for conversation and listen modes, plus matching badge colors.
- Voicemail Reliability: Disabled
finishOnKeyon Twilio Record so DTMF tones no longer cut greetings short, hangup after confirmation prompt, warning on overlong greetings, and dates rendered in the user's regional timezone. - SMS History Filters: Added caller/owner filter and badges to SMS History plus scrolling support when content overflows.
- Admin Toolkit Expansion: New audit log, SMS dashboard, costs view, alerts, and call-quality monitoring in the admin panel.
- Know-How Library Growth: Added 10 new articles on call recording across 5 locales plus a dedicated "Cube ACR vs Heilo" comparison.
- Build Performance: Production builds now use Turbopack and skip Sentry source-map uploads on non-production deploys for noticeably faster CI.
Hosted Numbers Wizard, Inbound SMS & Contact Projects
- Hosted Number Provisioning Wizard: End-to-end wizard for ordering a Heilo-hosted Twilio number with PL regulatory address (AddressSid), per-user promo pricing, and clearer Stripe error handling.
- Inbound SMS on Hosted Numbers: Hosted numbers now receive SMS into the inbox with the contact's name shown next to the phone number in message threads.
- Contact Projects & Tasks: New projects (topics) per contact, unified task list across calls, and the ability to pin important calls to a contact.
- AI-Aggregated Tasks & Decisions: Tasks and decisions extracted from individual calls are now aggregated per contact with AI-powered de-duplication and merging.
- Rich Notes with Transcript Highlights: New TipTap-based rich notes editor with inline transcript highlights so you can drop quotes from the call directly into your notes.
- Per-Number Settings UX Refresh: Refreshed expanded per-number settings layout, ElevenLabs recording-notice voice instead of Polly TTS, and a copy-to-clipboard icon next to each hosted number.
Listen Mode & Smart Call Tools
- Parallel Listen Mode: Listen live on parallel calls with caller identification, counterparty tracking, ElevenLabs audio start prompt, and call filters for listen vs conversation.
- Redesigned Conversation Summary: Cleaner vertical layout with translated labels in all locales, baseline-aligned icons, and improved readability.
- One-Click Reprocess: Reprocess any call's transcript and AI analysis directly from the transcript section, plus per-call reprocess in the admin user detail panel.
- Smarter AI Transcription: Gemini now refuses to hallucinate transcripts on short or silent recordings, and reprocessing correctly passes the call type for better summaries.
- Mark as Unread: Added a "mark as unread" button to call details so you can reopen calls that still need attention.
- Stripe Automatic Tax: Subscriptions now use Stripe Automatic Tax so VAT/sales tax is applied correctly per region.
- Admin Insights: New paying-accounts filter on the users table and a global calls view with clickable company names for faster triage.
- SEO Pillar Pages: Added a "poczta głosowa dla firm" pillar page with case studies and stats, plus cross-locale know-how slug redirects.
Hosted Numbers Foundation & Per-Phone Settings UX
- Hosted Numbers Infrastructure: Foundation for the Heilo-hosted Twilio number model (incoming-only) with safety migrations, paving the way for users to skip the BYON forwarding setup entirely.
- Per-Phone Call Handling Modes: Vertical-tab settings layout (Forwarding → Calls → Greeting → SMS) with per-phone modes — hybrid, voicemail-only, conversation-only, disabled — explained with HTML/CSS flow diagrams that show the real numbers.
- Forwarding Delay Selector: Choose how many seconds Twilio waits before forwarding a call, directly from phone setup.
- Faster Recording Processing: Recording jobs now run inline in the webhook (with the cron as a 5-minute safety net) so transcripts appear within seconds, plus a fix for late-night SMS triggered by the cron.
- SMS Routing Hardening: SMS is now always sent via the US1 main account regardless of which region holds the number, eliminating IE1 sender-ID issues.
Conversation Mode Foundations, Async Recording Jobs & Staging Hardening
- Conversation Mode Foundations: Added the first production-safe building blocks for live call pickup with dual-channel recording, a dedicated dial completion webhook, conversation summaries, and voicemail fallback when nobody answers.
- Async Recording Processing: Twilio recording webhooks now acknowledge quickly and hand off heavy transcription and AI processing to queued jobs with durable idempotency tracking.
- Shared Demo Routing Foundations: Demo locale resolution can now persist the chosen locale and route on each call, preparing the system for shared numbers without guessing the language again after the call ends.
- Safer Staging Rehearsal: Added a dedicated staging workflow for Twilio and Supabase testing, including a manual "Process queued jobs" control for non-production environments where Vercel cron does not run.
- UX & Stability Cleanup: Shorter non-production conversation dial timeout, optional recording notice outside production, changelog page cleanup, locale metadata updates, and several dashboard/admin fixes from today's rollout.
System Health Monitor, Auto-Generated Confirmation Audio & Voice Fixes
- System Health Panel: New admin panel monitoring all critical external services — ElevenLabs credits, Twilio balance (US1 & IE1), Stripe, Supabase DB, Gemini AI, and Resend. Checks run automatically every hour via Vercel cron with a live green/red dot indicator in the admin sidebar.
- Auto-Generated Confirmation Audio: Recording confirmation messages are now automatically generated using ElevenLabs TTS, matching the caller's language and the selected voice.
- Voice Stability Fixes: Fixed ElevenLabs voice IDs being incorrectly passed to Amazon Polly, added SSML prosody wrapper to confirmation messages for natural delivery, and ensured TwiML confirmation is returned immediately after recording.
- Know-How: Heilo vs Fonio.ai: New comparison article available in EN, PL, DE, and ES covering key differences between Heilo.io and Fonio.ai voice assistant platforms.
- Bug Fixes: Fixed admin impersonation button to use correct token hash, updated fonio.ai factual data across knowledge base articles.
Greeting Schedule, US Locale & Forwarding Redesign
- Time-Based Greeting Schedule: Configure different greeting messages for specific time slots throughout the day. Name each slot and assign a unique ElevenLabs voice per schedule entry.
- WAV Audio Recording: Recordings are now converted to WAV format for higher quality. New audio preview player lets you listen to your greeting before saving.
- US Locale (en-US): Full American English locale support with carrier-specific forwarding instructions for AT&T, T-Mobile, and Verizon.
- Forwarding Instructions Redesign: Inline QR codes for USSD dialling, branded H logo on QR codes, *004* as primary forwarding option, and collapsible individual forwarding codes.
- Know-How Expansion: 29 new articles and 59 existing articles expanded to Google Helpful Content standard across all 4 locales. Clickable table of contents, internal links between articles, and voicemail article cluster.
- Customer Testimonials: New social proof section on the landing page featuring real customer testimonials with optimised persuasion flow.
- Native Terminology: Replaced AI/KI/IA technical terms with smart/Heilo native branding across all 4 locales on the landing page.
- SEO Optimisation: Hero section keyword targeting, metadata improvements, breadcrumbs navigation, and robots/noindex configuration for non-public pages.
- Per-Locale Demo Calls: Demo call management per locale with dedicated ElevenLabs voice selection for each language variant.
- Security & Bug Fixes: Prevented email enumeration on registration, fixed demo locale override when testing own greeting, and improved admin error logging.
4 Languages, Transcript Translation & SMS Optimisation
- German & Spanish: Full de-DE and es-ES locale support across the entire app, SMS messages, AI processing, and know-how articles.
- Transcript Translation: AI-powered translation of call transcripts into the user's language via Gemini, so you always read transcripts in your preferred language.
- Know-How Expansion: 6 new GEO-optimised articles published in all 4 locales with author metadata and publication dates.
- Audio Demo Player: Interactive audio demo on the landing page hero section — hear Heilo in action before signing up.
- Shorter SMS Links: New /c/ and /d/ redirect routes cut ~45 characters from SMS notifications, reducing Twilio segment costs.
- Tax ID (NIP) at Checkout: Tax identification number collection during Stripe checkout for business invoicing.
- AI Hallucination Prevention: Added buffer size validation and short recording detection to prevent Gemini from generating false data on empty or corrupt audio.
- SMS Bug Fix: Fixed a bug where the owner notification SMS displayed the locale code instead of the transcript excerpt.
ElevenLabs v3 Upgrade & Audio Confirmation Messages
- ElevenLabs v3: Migrated to eleven_v3 model with 1,806+ audio tags (
[professional],[warmly],[pause:X]) for natural emotional expression and 68% fewer errors on numbers/symbols. - AudioTagPicker Component: New UI component with 40+ user-friendly audio tag buttons for easy insertion into greeting messages.
- Character Limit Increase: Greeting message limit expanded from 1,000 to 5,000 characters to support longer, more detailed greetings.
- Audio Upload for Confirmation: Added full support for uploading custom audio files for confirmation messages (previously text-only in audio upload mode).
- Voice Stability: Increased default ElevenLabs stability from 0.8 to 1.0 for more consistent voice quality in pre-generated greetings.
- Code Quality: Fixed ESLint warning (setState in useEffect) in MessageEditor component for cleaner, more maintainable code.
Landing Page Overhaul, Phone Management & Content Expansion
- Landing Page Enhancements: Added UTM tracking, social proof section, visual feature showcase with SMS mockups, "Who Is Heilo For?" target audience section, and improved SEO with structured data.
- Know-How Content: Published 10 BOFU articles in Polish and English covering voicemail, AI assistants, and call management — rebranded from "AI" to "Heilo" terminology throughout.
- Phone Management: Added phone deletion, account transfer on re-verification, redesigned forwarding UI with database persistence, and country code selector with validation.
- Admin Notifications: Implemented email notifications via Resend for new registrations, phone verifications, and payments for better admin oversight.
- Call Capture Fix: Create call records at call start (not just recording-complete) to capture all incoming calls, including those without recordings.
- AI Localization: Enforced locale-aware output for call summaries and topics — AI now respects user's language preference (Polish vs English).
- Mobile Optimization: Optimized phone configuration view layout for mobile devices.
- Phone Status Fix: Resolved phone status inconsistency and verified_at timestamp handling.
- Supabase Migration: Migrated from deprecated cookie API (
.get()/.set()) to.getAll()/.setAll()for SSR cookie handling. - Twilio Schemas: Migrated from deprecated
.passthrough()toz.looseObject()for webhook validation.
Single Plan Pricing, Email Confirmation & Security Hardening
- Single Plan Pricing: Simplified pricing to a single 49 PLN/month plan for market validation — clearer value proposition, faster onboarding.
- Email Confirmation: Registration now requires email verification before granting access, preventing fake account creation.
- Security Hardening: Patched critical open redirect and webhook bypass vulnerabilities, enabled RLS on all database tables, and completed a full code audit (a11y, architecture, UX).
- Google Ads: Added conversion tracking, remarketing tags, and cookie consent banner for marketing campaign measurement.
- Landing Page: Redesigned mobile hero and problem cards section, added section navigation links with deep linking anchors.
- Know-How i18n: Translated all Knowledge Base articles to English, added internal linking between articles, and fixed Google indexing for Know-How pages.
- Stripe Live Mode: Prepared Stripe integration for production payments with live API keys.
- Admin Panel: Added "Last Login" column to the users table for better user activity tracking.
Settings Redesign, Calls Polish & Content Enhancement
- Settings Redesign: Redesigned SMS, Company, and Welcome pages with a modern multi-card layout for better organization and readability.
- Calls Table: Simplified table actions and improved column layout for a cleaner, more focused call management experience.
- Know-How OG Images: Added dynamic Open Graph images for all Know-How articles, improving social media link previews.
- Landing Page: Replaced generic hero section with product showcase mockups showing the actual Heilo.io interface.
- Polish Terminology: Replaced marketing jargon ('leady') with plain, natural Polish terms across the entire application.
Know-How Section, SEO & Landing Animations
- Knowledge Base: New Know-How section with SEO-optimized articles covering VoIP, virtual PBX, and missed call recovery — including TL;DR summaries, FAQ sections, and JSON-LD structured data.
- SEO Optimization: Added JSON-LD structured data, dynamic sitemap, robots.txt with AI bot crawling rules, and metadata optimization across all pages.
- Landing Animations: Motion.dev entrance and scroll-reveal animations on the landing page for a more engaging first impression.
- Pricing Update: Updated subscription plans to 50/100/200 PLN tiers with revised feature sets.
- Crisp Chat: Linked contact page chat text directly to Crisp embed for instant customer support.
- Developer Tooling: Added Husky + lint-staged for automated pre-commit and pre-push code quality checks.
Language Switcher, Quality & UI Hardening
- Language Switcher Redesign: Modern dropdown design with flag emojis and correct positioning in the dashboard.
- Save as Contact: Added 'Save as Contact' button directly in split view for faster contact management.
- Loading Button: New LoadingButton component with i18n-aware currency and phone formatting.
- Production Hardening: Code quality improvements, type safety fixes, and build error resolutions across the platform.
- Kanban & Charts: Refactored utility functions, renamed charts for clarity, and fixed Kanban card interaction issues.
Configurable Messages, Analytics & Admin Tools
- Recording Confirmation: Customizable confirmation message played after the caller leaves a voicemail, with audio preview support.
- Analytics Dashboard: Added "All calls per day" chart, improved historical data visualization with continuous timeline (no gaps), and added proper axis labels.
- Admin Enhancements: Added ability for admins to delete users directly from the user list dashboard.
- Stability Fixes: Restored missing locale utilities (currency/phone formatting) and fixed build issues caused by dependency updates.
Settings Redesign, SMS Preview & Audit Fixes
- Settings Redesign: Separated SMS into its own settings page, moved account and subscription into the profile popover, and replaced AI branding with Heilo.
- SMS Phone Mockup: Redesigned SMS preview as a realistic phone mockup and removed the dedicated number upsell.
- Greeting Templates: Added ability to save and persist greeting message templates via the database.
- Kanban & Hydration Fixes: Fixed hydration mismatches in localStorage hook, improved Kanban card click targets with stretched-link pattern.
- Code Audit: Added 5MB upload limit for audio files, replaced
anytypes with proper interfaces, added data URL validation, and improved error handling across server actions. - Contact Search: Improved calls search to include matching contact names.
Security, Type Safety & Design Polish
- CSRF Protection: Added double-submit cookie CSRF protection to all mutation API endpoints with automatic token handling on the frontend.
- Type Safety: Eliminated ~25
anytypes across the codebase with proper interfaces andunknownerror handling. - Centralized Locales: Unified locale configuration into a single source of truth, removing hardcoded locale values across 5 files.
- Locale-Aware Formatting: Added
formatCurrencyand improved date/phone formatting to respect user locale settings. - WelcomeMessage Refactor: Extracted form logic into a dedicated
useWelcomeMessageFormhook, reducing component from 608 to 209 lines. - KPI Cards Redesign: Updated KPI dashboard cards to match the clean, minimal design system — soft shadows and rounded corners instead of heavy colored borders.
Frontend Refactor & Performance
Major under-the-hood improvements to UI primitives and state management.
Google Login, Magic Link & Error Fixes
- Google OAuth: Added 'Continue with Google' sign-in and sign-up buttons on Login and Register pages.
- Magic Link: Added passwordless email login — enter your email and receive a sign-in link.
- Bug Fix: Fixed 'No intl context found' errors on all Settings pages (56+ Sentry occurrences) by adding missing client directive to SettingsLayout.
- Analytics: Integrated Vercel Analytics for traffic and usage insights.
- Email Delivery: Configured Resend SMTP for reliable transactional emails (registration confirmations, magic links).
Mobile UI Audit & Fixes
- Mobile Usability: Fixed the floating 'Onboarding Widget' which was blocking content on mobile screens. It is now collapsed by default.
- Localization: Translated 'Always listening' tagline to Polish ('Zawsze słuchamy') in Dashboard/Landing.
- Layout Improvements: Improved spacing and layout on Register, Login, and Settings pages for mobile devices.
Landing Page & Onboarding Fixes
- Greeting & voice section: New landing page section showcasing greeting options — write your own, record yourself, or use professional AI voices.
- SMS from the system: Landing page now highlights the ability to send SMS directly from Heilo.
- Onboarding fix: Widget now shows real progress based on actual account state instead of hardcoded values.
- Welcome modal fix: Fixed 'Let's Go' button not closing the modal. Renamed to 'Smart Receptionist'.
- Upgrade button: Shows error message when checkout fails instead of silently doing nothing.
- Brand tagline: Added 'Always listening' tagline next to the logo on the landing page.
Contacts & Call Detail Redesign
- Contacts system: Full contacts module — auto-populated from call history, contact detail page with call and SMS history, clickable table rows.
- Save as Contact: One-click button to save a caller as a contact, available on both contact detail and call detail pages.
- 1 number = 1 name: Contacts table is the single source of truth for caller names — editing a contact updates the name across all views.
- Topic as page title: Call detail now shows the recognized topic (service_needed) as the main heading instead of caller name.
- Mobile sidebar fix: Fixed CSS typo (
transtone→translate) across 7 files that broke the mobile sidebar slide animation. - SMS phone number: SMS notifications now always include the caller's phone number as a separate line, even when the name is recognized.
- SMS contact name fix: SMS notifications now use the saved contact name instead of showing 'unknown caller' for known contacts.
- SMS history fix: Call detail page now shows all SMS messages for the caller's phone number, not just per single call.
- Contact tabs: Contact detail page now shows calls and SMS history in tabs side by side.
Savings Calculator Redesign
- New calculator design: Light, modern look replacing the dark panel — rounded cards, gradient title, thinner sliders.
- Clear business narrative: Results panel shows: loss → solution cost → net monthly profit.
- Solution cost: New section comparing monthly loss with Starter plan cost (50 PLN/mo.).
- Cleaner code: Removed abstract ROI card, simplified component structure and translations.
Production Fixes & Calculator Update
- Production Critical Fix: Resolved "Server Components render" error by reverting
next-intlWebpack configuration and Sentry client-side migration. - Sentry Stability: Restored stable Sentry configuration to ensure reliable error tracking.
- Savings Calculator Update: Extended slider ranges to 500,000 PLN and 300 missed calls per week based on user feedback.
- Build System Fix: Resolved
NextRequesttype mismatch in recording route handler. - Architecture Audit: Verified API v1 architecture stability and code quality.
Visual Rebrand & Middleware Fix
- New color system — custom heilo-blue + coral palette, gray→slate migration across the app
- Gradient text color for Heilo.io logo on all pages
- Removed H icon and Business AI subtitle from the logo
- Fixed Next.js middleware — restored locale routing and authentication
Mobile UX Fixes, Login i18n & Forgot Password
- Centered View Toggle: The table/board view toggle is now properly centered on mobile screens.
- Removed Horizontal Scroll: Fixed unwanted horizontal scrolling on the calls list in mobile view.
- Settings Submenu on Mobile: The settings navigation submenu is now fully visible when opening the sidebar on mobile devices.
- Contact Page: Added a new contact page — no more 404 when clicking Contact in the footer.
- Login Page Translation: The login page is now fully translated into Polish.
- Forgot Password Page: Added a password reset page with Supabase integration — no more 404 on 'Forgot your password?'.
- Codebase Cleanup: Removed 24 unused SQL migration files, 12 deprecated API proxy routes, legacy reprocess endpoint, dashboard redirect page, and build artifacts. Updated all /dashboard references to /calls.
Demo Call Link, UI Polish & Changelog i18n
- Public Demo Call: Added a public demo call link for potential customers to experience the platform without signing up.
- Unified Form Styles: Unified form field styles in company settings for a consistent look across all input fields.
- Sentry Tunnel Fix: Fixed Sentry tunnel returning 405 errors.
- URL Update: Updated hardcoded URL from vercel.app to www.heilo.io across the platform.
- Lead Timer Simplification: Simplified the lead timer component for better clarity and removed AI branding from public-facing pages.
- Onboarding Widget Fix: Fixed onboarding widget visibility on public pages.
- Mobile UI Spacing: Tightened mobile UI spacing and font sizes for call views for a more compact layout.
- Changelog i18n: Full internationalization of the changelog page — now available in both Polish and English.
Twilio IE1 Region Fix & Test Override
- IE1 Region Support: Fixed webhook signature validation for IE1-region Twilio numbers — the system now tries both the main auth token and the IE1 auth token.
- Configurable Test Override: Moved test number redirect logic to environment variables (
ENABLE_TEST_OVERRIDE,TEST_OVERRIDE_INCOMING_NUMBER,TEST_OVERRIDE_TARGET_USER_PHONE). - Demo User Fallback: Added a configurable
DEMO_USER_IDas fallback for unrecognized direct calls. - Middleware Fix: Fixed API middleware execution order —
withAuthnow runs correctly beforewithAdmin. - Gemini Model: Switched from deprecated
gemini-2.0-flash-expto stablegemini-2.0-flash.
API Refactoring & Unified Error Handling
- API Versioning: New
/api/v1/endpoint structure with full backward compatibility. - Result Type Pattern: Introduced unified error handling inspired by Rust —
Result<T>type for explicit error management. - Standard API Responses: All endpoints return a consistent
{success, data/error, meta}format. - Middleware System: Composable middleware for auth, validation, rate-limiting, and error handling.
- Zod Validation: Comprehensive validation schemas for all endpoints.
- Repository Layer: New repositories for phones and subscriptions with unified data access.
- Service Layer: Refactored billing-service and phone-verification-service.
- AppError Class: Structured errors with codes, HTTP statuses, and details.
Paywall System & Performance Optimizations
- Trial Paywall: Users on the free plan can view details for up to 10 calls. After exceeding the limit, a paywall with an upgrade button is displayed.
- Usage Banner: New banner on the calls list showing usage limits (e.g. "14 / 10 calls") with a progress bar.
- Split View Paywall: Detail blocking also in split view (vertical/horizontal).
- TanStack Query: Client-side caching implementation — faster page transitions without reloading data.
- Progress Bar: Elegant progress bar (YouTube/GitHub style) during navigation instead of skeleton loading.
- Pagination: Calls list shows 20 items per page with full navigation (first, previous, next, last). Page number saved in URL (
?page=2). - Polish Translations: Full localization of paywall and usage banner components.
UI Optimized for Business Users
Comprehensive UI refresh targeting professionals 35+: larger fonts, bigger touch targets (44-48px), improved color contrast, and more spacious layouts across all components including Kanban cards, call tables, filter bars, and mobile views.
Polish Localization & Stability Fixes
- Polish Localization: Complete translation of Settings, Call Details, and technical instructions.
- Navigation Refactor: Migrated Archive and Trash to dedicated routes (
/calls/archive) fixing sidebar highlighting. - Phone Settings UI: Redesigned layout into focused sections (Connected Phones, Business Number, SMS Config).
- Calls Table: Optimized column widths for Status and Actions to prevent cramping.
- Bug Fixes: Resolved "Add Phone" form visibility and build errors.
Trash Functionality & UX Polish
- Trash & Soft Delete: Added full "Trash" support (soft delete) with restore functionality. Deleted items are safe for 30 days.
- Navigation Groups: Calls now organized into "Incoming", "Archive", and "Trash" tabs with live counters.
- Better Layouts: Refined "Call Details" action buttons into a clean grid layout.
- Kanban Actions: Added quick "Trash" button directly to Kanban cards.
- Status Cleanup: Removed "Rejected" status entirely — existing rejected calls migrated to Trash.
UI Refinement & Architecture Modernization
- Split View Refactor: Moved layout toggle to a dedicated "View" menu in the filter bar for better accessibility.
- Layout Persistence: Board/List toggle and Split View preferences are now saved and restored automatically.
- UI Consistency: Unified height and styling of all filter controls (Status, Quality, Date) for a polished look.
- Footer Improvement: Relocated footer links to the left to prevent overlap with onboarding widgets.
- Next.js 16 Readiness: Migrated middleware to
proxy.tsto comply with upcoming Next.js conventions. - Board View Fix: Resolved issue where KPI dashboard was hidden in Kanban mode if Split View was active.
Analytics & Workflow Efficiency
- Redesigned Analytics: Replaced grid cards with large, vertical yearly charts for MRR, ARR, Churn, and LTV.
- Rapid Navigation: Added Next/Previous buttons to call details with Gmail-style keyboard shortcuts (J/K).
- History Tracking: Analytics now enables full 365-day trend analysis for all key metrics.
- Help Tooltip: Added keyboard shortcuts reference directly in the navigation bar.
- Stability Fixes: Resolved i18n context issues for robust error handling across all pages.
Comprehensive Analytics Dashboard
- Advanced Metrics: New comprehensive dashboard tracking Acquisition, Activation, Revenue, Retention, and Engagement.
- Revenue Intelligence: Real-time MRR, ARR, ARPU, and Trial-to-Paid conversion tracking.
- User Activation: Monitoring onboarding completion rates and time-to-first-call to optimize user journey.
- Retention Analysis: Churn rate tracking and Customer Lifetime Value (LTV) estimation.
- Engagement Trends: Daily/Weekly/Monthly Active Users (DAU/WAU/MAU) and call volume trends.
- React 19 Compatibility: Updated authentication flows to use the new
useActionStatehook, resolving consolidation warnings.
Global Reach & Security Hardening
- Full Internationalization (i18n): Complete support for Polish and English languages across the entire platform.
- Language Switcher: New instant language toggle in the sidebar with user preference persistence.
- Security Hardening: Audited RLS policies to prevent unauthorized data access (Strict Insert/Update policies).
- Secure Headers: Implemented automotive-grade HTTP security headers (HSTS, X-Frame-Options) to protect against XSS and Clickjacking.
- Rate Limiting Verification: Confirmed robust brute-force protection via Twilio Verify and Supabase Auth limits.
Architecture Refactoring & Code Quality
- Centralized Configuration: All environment variables now accessed via
getConfig()instead of scatteredprocess.envcalls — easier maintenance and testing. - Service Layer: Extracted voice and transcription logic into dedicated services (
lib/services/) for better separation of concerns (Voice, Twilio Audio, Gemini Processing). - Unified Audio Pipeline: Centralized audio download and AI analysis logic, eliminating duplication across 3 different endpoints.
- Frontend Architecture: Refactored
CallsViewandKanbanBoardinto modular components with custom hooks (useCallsFilters,useKanbanDnD) for better maintainability. - Repository Layer: Fully integrated
CallRepositoryinto admin endpoints and Twilio webhooks, centralized data access logic. - Type Safety: Enhanced
ProcessedTranscriptdefinitions and Zod schemas for stricter validation across the entire stack. - Repository Pattern: Introduced
lib/repositories/withCallRepositoryandProfileRepositoryfor consistent database access. - Twilio Middleware: New
withTwilioWebhookwrapper eliminates repetitive webhook validation code across route handlers. - Webhook Refactoring: Complete rewrite of
recording-completewebhook using new Service/Repository pattern, significantly improving reliability and testability. - Constants Module: Extracted magic numbers and strings to
lib/constants/for consistent configuration. - Skeleton Loading: Added loading states with skeleton components for
/callsand/calls/[id]pages. - UI Architecture: Decomposed
CallRowinto focused components (CallRowNotes,CallRowStatus) and promoted logic to reusableuseCallActionshook. - Configuration: Centralized AI model settings in
lib/config.ts, removing hardcoded values from services. - Architecture Documentation: Comprehensive
architecture.mddocumenting system structure, data flow, and integration patterns.
Mobile Optimization & AI Recommendations
- Mobile Settings: All settings pages optimized for mobile — forms, buttons, and layouts now stack properly on small screens.
- Clear AI Recommendations: New binary recommendations with emojis: ✅ Your topic, 🔥 Hot lead, ❌ Not your topic, ⚠️ Check yourself.
- Recognized Topic: Moved topic section above recording for better visibility, renamed columns for clarity.
- Full Transcript View: Removed text truncation from calls list — see full topic and transcript content.
- Twilio SID: Full call ID now visible in Call Details for customer support communication.
- Renamed Sections: "Customer Insights" → "Good questions to ask during the call".
UI Polish & Desktop Optimizations
- Desktop Table Layout: Optimized Calls table with compact date formats, smarter column widths, and increased content readability.
- Ultra-Compact KPI Cards: Reduced size of top metric cards on desktop to maximize screen space for the calls list.
- Mobile Transcript Improvements: Increased transcription visibility on mobile cards (up to 6 lines) for better context at a glance.
- Widget Layout: Swapped Onboarding and Crisp chat widgets — Chat now floats above the Onboarding checklist on the right.
- Call Back Action: Renamed "Call" to "Call back" on mobile for clarity.
Caller SMS & Onboarding Improvements
- Caller Confirmation SMS: Fixed SMS sending to callers — messages now properly sent after voice message is transcribed.
- Customizable SMS Template: New settings page for personalizing the confirmation message sent to callers with live preview.
- Friendly Reference Numbers: SMS now shows easy-to-read reference numbers (YYYYMMDD-XXXX) instead of UUIDs.
- Enhanced Logging: Added diagnostic logs for SMS functions to track delivery status in Vercel logs.
- Onboarding Widget: Improved widget with navigation links, hidden on public pages (login, signup).
- Onboarding Reorder: "Set up call forwarding" now appears before "Add company info" for better flow.
Infrastructure Security & Stability
- Structured Logging: Implemented centralized logging system with Sentry integration for better error tracking.
- Infrastructure Hardening: Consolidated webhook logic and improved error handling for Twilio integration (including IE1 region support).
- Auth Stability: Fixed "Invalid Refresh Token" loops by automatically cleaning up stale sessions in middleware.
- Component Refactoring: Optimized Settings pages by splitting large forms into focused, maintainable micro-components.
- Environment Fixes: Resolved localhost vs production URL discrepancies for SMS notifications.
Launch Readiness & Observability
- Sentry Integration: Error tracking, performance monitoring, and session replay for better debugging.
- Crisp Chat Widget: Live chat support with automatic user identification — we see your email and company when you write.
- PostHog Analytics: Product analytics, session recordings, and user behavior tracking.
- Legal Pages: Added Terms of Service and Privacy Policy pages with GDPR/RODO compliance.
- Success Funnel: KPI dashboard with Total Calls, Qualified Leads, and Potential Value.
- Stripe Integration: Complete subscription system with Checkout, Customer Portal, and Webhooks for automated status updates.
- SMS Notifications: Receive instant SMS alerts for new business leads, including AI summary and lead score.
- Onboarding Tour: Quick Start checklist for new users to connect their number, test calls, and enable notifications.
- Filter Persistence: Filters are saved in URL — navigate to call details and back without losing your view.
- Unified Filters: Search, Status, Quality filters work across List and Kanban views.
- Ctrl+Click Support: Open call details in a new browser tab.
Visual Polish & UX Refinements
- Callback Response Meter: Redesigned "Response Time" into a compact, single-row meter with clear sentiment stages (Excellent to Critical).
- Drag & Drop Visuals: Trello-like Kanban dragging with full-card ghost images and placeholders.
- Admin Redirect: Admins are now automatically directed to the Admin Dashboard upon login.
- Header Optimization: Compact "Calls" header to save vertical screen space.
- Message Preview: Quick click-to-preview greeting message using a new popover.
Direct Call Handling & Admin Tools
- Improved direct call identification: System now recognizes owners calling from their verified numbers.
- Added Admin Impersonation: Super admins can now log in as users to troubleshoot issues.
- Fixed forwarding number issues: Default forwarding number logic updated for all new accounts.
- Updated USSD codes: Now using double-star prefix (e.g., **61*) for better compatibility.
Gemini 3.0 & Prompt Refinement
- Upgraded AI engine to Gemini 3.0 Flash (Preview) for faster and more accurate analysis.
- Refined "What to do next" prompts to provide natural language advice (e.g., "Call back and schedule a meeting").
Lead Tracking & Response Time
- Lead Temperature: Animated progress bar showing lead urgency with shimmer effect for new leads.
- Response Time: Tracks how quickly you respond to new leads with visual indicator.
- Card Reordering: Drag cards vertically within Kanban columns to prioritize leads.
- Quick Status Move: One-click button to advance leads to next stage.
- Brute-Force Protection: Rate limiting for login attempts to prevent attacks.
- Phone as Primary: Caller phone number shown prominently, name as secondary identifier.
Welcome Messages & Address Intelligence
- Voice Preview: Test your welcome message before saving with audio preview.
- AI Address Extraction: Automatically extracts client address, city, and country from transcriptions.
- Distance Calculation: Shows approximate distance between your office and client location.
- Date Filtering: Filter calls by Today, Week, Month, Quarter, or Year.
- Service Requested Column: New column in table view showing what service each caller needs.
- Inline Editing: Per-field auto-saving in Account settings and Call details.
- Template Dropdown: Quick message templates for faster responses.
🚀 Heilo.io Initial Launch
- Core Platform: Heilo.io with Twilio integration for call recording and forwarding.
- AI Call Analysis: Powered by Gemini 1.5 Flash for automatic transcription and lead scoring.
- Kanban Dashboard: Full-width board with New, Negotiations, Preparing Offer, and Done columns.
- Custom Greetings: Personalized voicemail messages per company.
- 2026 Design System: Modern glassmorphism UI with gradients and smooth animations.
- Security Audit: Webhook validation and authentication hardening.
- Settings Tabs: Organized into Account, Company, Forwarding, and Subscription sections.
- Call Details: Notes editor, task management, and AI-powered summaries.