Change Log

2026-05-20

Development

Added (2026) year tag to remaining public pages missed in earlier passes: 16 Guides pages with DynamicSeoHead titles (including & entities that the earlier sed pattern skipped) — DoBracesHurt, LifeWithBraces, OrthodontistVsDentist, TeethWhiteningAfterBraces, AreYouTooOldForBraces, NhsOrthodonticWaitingList, DoYouNeedBraces, HowLongDoBracesTake, BracesForAdults, BracesForCrossbite, BracesForTeenagers, ClearAlignersForCrossbite, OrthodonticCostEstimator, OrthodonticGlossary, OrthodonticQuoteOnline, OrthodontistVsDentist, RetainersAfterBraces. Also updated GuidesHub, SupportHub, SupportRequest, SmileVisualisation, and Find.

seo
titles

Development

Added NhsHub FAQ section (7 questions with FAQPage JSON-LD schema) covering IOTN scoring, who qualifies, waiting times, NHS braces cost (Band 3 charge), whether NHS covers clear aligners, going private while on the waiting list, and what to do when not qualifying. NhsHub previously had no FAQs.

seo
faq
schema

Development

Expanded FAQ answers across three hub pages to support featured snippets: (1) CostsHub — all 8 FAQ answers expanded from ~35 words to 100–150 words each, with specific UK price ranges, APR guidance, and quote comparison checklists. (2) GuidesHub — all 7 FAQ answers expanded from ~30 words to 100–140 words each, covering when to use guides vs clinical assessment, adult eligibility, NHS rules, and remote quote process. (3) TreatmentHub — all 8 FAQ answers expanded from 1–2 sentences to 100–150 words each, covering appliance types, adult treatment, remote assessment limits, cost factors, and oral health impact. Also added FAQ section (6 questions with FAQPage schema) and (2026) year tag to CompareHub, which previously had no FAQs.

seo
content
faq

Development

Added (2026) year tag to page titles across remaining public sections: Homepage, Brands hub + 4 brand pages (Invisalign, ClearCorrect, Spark, SureSmile), NHS hub, Patient pages (Locations, Locations A-Z, IOTN Checker, About Patients), and 3 Clinician landing pages (About, Dental Monitoring, Remote Assessment). Completes year-tag coverage across all static-title public pages.

seo
titles

Development

SEO improvements across multiple public pages: (1) Fixed typo "typica pricing" → "typical pricing" in CostsHub hero. (2) Fixed GuidesHub using wrong OgImage constant (was TreatmentHub, now GuidesHub) — added Og.GuidesHub constant to Constants.Routes.cs. (3) Expanded ProblemHub FAQs from 3 to 7, with detailed answers covering treatment duration, adult suitability, NHS eligibility, risks of untreated problems, and treatment selection — matching the depth of other hubs. (4) Improved Locations hub meta description from 69 chars to a keyword-rich 140-char description. (5) Added Speakable() method to SeoCanonical.cs generating SpeakableSpecification schema; wired into CostsHub with .seo-speakable CSS class on hero text. (6) Expanded all 8 Compare pages from ~600-word stubs to 1,200+ word pages — each section body expanded to 100–150 words and FAQ answers expanded from 1–2 sentences to 75–150 words each, covering suitability, cost, clinical risk, and who each option suits.

seo
content
schema

Development

Two new public pages: (1) Orthodontic Glossary (/guides/orthodontic-glossary) — plain-English definitions for 50+ orthodontic terms (archwire, IOTN, overbite, retainer, etc.) with FAQPage schema and internal links. (2) Cost Estimator (/guides/orthodontic-cost-estimator) — interactive Blazor tool that calculates a UK price range based on treatment type (metal/ceramic/lingual/aligners), case complexity (mild/moderate/complex), and location (London vs rest of UK). Both pages added to the Guides Hub index and the public search index.

seo
content
guides

Development

Type="article" applied to 49 content detail pages across Treatments, CostsHub, Problems, Brands, Aligners, Support, Guides, and Nhs directories — unlocking og:type="article", article:published_time, and article:modified_time meta tags. HighIntentSeoPage component also updated (covers ~40 guide pages via the shared template): now passes ArticlePublishedUtc and ArticleModifiedUtc defaulting to June 2024 / May 2026.

seo
article-type

Development

Content depth improvements on three high-traffic pages: (1) Braces.razor — added full comparison table (metal/ceramic/self-ligating/lingual with brands, costs, best-suited-for), step-by-step treatment journey section, and dietary/oral-hygiene guidance with safe/avoid food lists. (2) ClearAligners.razor — added major brand comparison table (Invisalign/ClearCorrect/Spark/lab systems) and daily-life guide covering eating, cleaning, tray progression, and lost aligner handling. (3) CostBracesCostUk.razor — added regional cost variation section (London vs rest of UK) and a quote-comparison checklist.

seo
content

Development

XML sitemap now excludes thin location pages — all three location queries in SitemapEndpoint.cs (cache-key count, main sitemap recent-150, paginated locations sub-sitemap) now filter to only include locations that have FAQs or Neighbourhood data. This aligns the sitemap with the runtime noindex guard added to GeographicalLocation.razor, so Googlebot is no longer invited to crawl stub pages.

seo
sitemap

Development

Two high-impact SEO improvements: (1) Location pages with no FAQs, no nearby locations, and no neighbourhood data are now automatically marked noindex — prevents thin stub pages from being crawled and diluting the site's content quality signal. (2) E-E-A-T reviewer infrastructure added: DynamicSeoHead now accepts Reviewer, ReviewerUrl, ReviewerJobTitle, and ReviewedDateUtc parameters; when set, injects a reviewedBy Person node and dateModified into the page's WebPage JSON-LD (SeoCanonical.InjectReviewerJsonLd). A shared _ArticleReviewer component displays "Medically reviewed by [Name], [Title] · Last reviewed [Month Year]" on any guide or treatment page.

seo
eeat
structured-data

Development

Five further SEO fixes: (1) Removed redundant x-default hreflang tag — it duplicated en-gb and sent a confusing region signal. (2) BlogPosting mainEntityOfPage @id now uses the /#webpage fragment to correctly reference the WebPage graph node. (3) LocalBusiness on all geographical location pages now includes areaServed (location name + county) to strengthen local SEO signals. (4) Organization schema now includes areaServed: "GB" at the top level. (5) Page title max length raised from 60 to 65 chars, giving longer titles room to include the brand name without truncation.

seo
structured-data
meta

Development

Three SEO fixes: (1) Description padding no longer appends "Explore options in " — which produced nonsensical phrases like "Explore options in How Long Do Braces Take" — replaced with a clean "Start online in minutes with Virtual Consultant" CTA. (2) ProcessHowToTakePhotos OgImage changed from the generic home image to user-journey.png. (3) Invisalign page OgImage corrected from problem-hub.png to treatment-hub.png.

seo
meta

Development

Fixed duplicate WebSite JSON-LD node across all public pages. BuildWebPage was emitting a redundant WebSite graph node on every page alongside the always-present WebSiteJsonLd script block. Removed the inline WebSite node from BuildWebPage; the definitive definition with potentialAction (SearchAction) in WebSiteJsonLd is now the sole source.

seo
structured-data
2026-05-19

Development

Added NHS Hub (/nhs) — a new content cluster consolidating all NHS orthodontic content: waiting list guide, NHS vs private comparison, eligibility checker, IOTN score checker, NHS braces cost, and geographical finder. Hub includes urgency CTA (2–5 year wait messaging) driving to private assessment. Cross-links added from NhsOrthodonticWaitingList and NhsVsPrivateBraces pages.

seo
content
hubs

Development

Added Brands Hub (/brands) and four brand deep-dive pages: Invisalign (/brands/invisalign), Spark Aligners (/brands/spark-aligners), SureSmile (/brands/suresmile), and ClearCorrect (/brands/clearcorrect). Each brand page includes comparison tables, sidebar cost cards, FAQ schema, JSON-LD, and varied CTA styles for conversion testing. InvisalignAlternatives guide updated with links to all brand pages.

seo
content
hubs

Development

Added three new guide pages targeting high-intent UK orthodontic keyword gaps: Braces for Crossbite (/guides/braces-for-crossbite), Clear Aligners for Crossbite (/guides/clear-aligners-for-crossbite), and Are You Too Old for Braces? (/guides/are-you-too-old-for-braces). All three pages include FAQ schema, JSON-LD, canonical URLs, sitemap entries, public search index entries, and internal links. Crossbite problem page updated with guide links.

seo
guides
content

Development

Added .elig-sidebar-stack CSS class — sticky sidebar cards now stack sequentially on scroll instead of overlapping. Applied to all 10 existing guide pages with sidebars. New guide pages use the pattern by default.

seo
guides
css

Development

Added WebSite + SearchAction JSON-LD node to home page for Google Sitelinks Searchbox eligibility. Node includes potentialAction pointing to /find?q={search_term_string}.

seo
structured-data
home

Development

GuidesHub CollectionPage bug fixed — was passing a plain object as about on a default WebPage node; corrected to pageType: "CollectionPage" to match the other hub pages.

seo
structured-data
hubs

Development

Added HowTo JSON-LD schema to all four support pages (BrokenBrace, LooseBracket, OrthodonticPain, WireStickingOut) — step-by-step "what to do" content now surfaced as HowTo nodes in @graph for rich result eligibility.

seo
structured-data
support

Development

Added TreatmentsTeethStraightening and GuideOnlineOrthodontistUk to IndexableUrlCollector static URL list to keep Google Indexing API submissions in sync with sitemap.

seo
sitemap

Development

Social channel pages (Facebook, Instagram, LinkedIn, TikTok, YouTube, SocialHub) set to noindex — thin redirect pages should not be crawled. Removed from sitemap static list. Added NoIndex parameter to HighIntentSeoPage template so any page using the template can opt out of indexing.

seo
sitemap
noindex
social

Development

Added two missing routes to sitemap static list: TreatmentsTeethStraightening and GuideOnlineOrthodontistUk.

seo
sitemap

Development

Five hub pages corrected to emit CollectionPage JSON-LD type instead of default WebPage: TreatmentHub, ProblemHub, CostsHub, GeographicalLocations, BlogHub. GuidesHub was already correct.

seo
structured-data
hubs

Development

Blog post JSON-LD corrected: BlogPosting node now emits as a top-level @graph entry (was incorrectly nested as about inside WebPage), @context removed from the node (redundant inside @graph), and page type changed from WebPage to Article for Google article rich results eligibility.

seo
structured-data
blog

Development

Extended HighIntentSeoPage with HowTo schema type (uses Sections as ordered steps). Applied to CompareOrthodontists and OnlineOrthodonticConsultation for step-list rich result eligibility.

seo
structured-data
guides

Development

Added SchemaType parameter to HighIntentSeoPage template, enabling per-page MedicalProcedure or MedicalCondition JSON-LD schema injection alongside existing WebPage + FAQ + BreadcrumbList. Applied MedicalProcedure to 7 treatment pages (BracesNearMe, ClearBracesNearMe, AdultBracesNearMe, RetainersNearMe, ReplacementRetainers, TeethStraightening, EmergencyOrthodontistNearMe) and MedicalCondition to 7 problem pages (CrossbiteTreatmentOptions, UnderbiteTreatmentOptions, OverbiteTreatmentCost, CrowdedTeethTreatmentCost, GapsInTeethTreatmentCost, RetainerDoesNotFit, ClearAlignerNotFitting).

seo
structured-data
treatments
problems

Development

Footer and navigation improvements: footer background now adapts to light/dark theme using CSS surface variables; removed forced white-text overrides so colours inherit correctly in both modes; slimmed footer links down to hub pages and key actions; email address in "Get in Touch" no longer wraps awkwardly; Log In button in the desktop nav bar no longer wraps on intermediate screen sizes; Log In link added to the mobile nav menu below the Virtual Consultant home link.

styling
footer
nav
responsive

Development

Public hub page visual polish: section headings (h5/h6 on Treatments, Problems, Costs) and FAQ headings now render in the primary colour. The three category browse cards on the Problems hub are consolidated into a single grouped card with dividers. Inline body text on Treatments and Costs pages gains cross-links to related hub pages. The explore-glow radial gradient is boosted for stronger visual pop across all showcase cards.

styling
public
treatments
problems
costs
2026-05-18

Development

Postcode location pages temporarily removed from the UI: /postcodes and /postcodes/{slug} routes deleted, all nav links and cross-page buttons removed (NavMenu, desktop menu, home page, Find hub, Orthodontist Near Me, Braces Cost Near Me), and postcode data-loading sections removed from geographical location and county pages to prevent queries against the now-empty PostcodeLocations table.

postcodes
locations
seo

Development

High-intent SEO content expansion: added reusable high-intent public page support and new pages across guides, treatment, problem, and cost clusters, including online orthodontic consultation, private orthodontist costs, NHS vs private braces, braces payment plans, clear aligners vs Invisalign, braces near me, treatment-cost problem pages, and near-me cost pages. Hubs, related-pages components, search index routes, and sitemap static URLs were updated so the new content is discoverable and internally linked.

seo
public
guides
costs
treatments
problems

Development

Robots.txt tightened for public SEO crawling while reducing crawl waste from private, account, checkout, quote, consultation, evaluation, support, framework, PWA, and tracking URLs. The quote evaluation entry point (/evaluations/quote) is now explicitly allowed so search crawlers can reach the public quote flow without opening the wider evaluations area.

seo
robots
quotes

Development

Cost and location SEO improvements: added further UK cost, guide, treatment, and problem pages; expanded guide/treatment/problem/cost route coverage in sitemap generation; cached hot location, postcode, county, eligibility-filter, and sitemap lookup paths; added geolocation indexes; extended public HTML caching to key public routes with a short browser cache window; added EF compiled queries to postcode and geo service hot paths; cached all postcode browse methods (all/by-letter/by-county); tightened memory cache compaction to reduce GC pressure under crawler load; and increased postcode/geolocation page cache TTL to 24 h (individual pages) and 6 h (browse/county lists) since page content is static and only varies by slug.

seo
performance
postcodes
locations
costs
2026-05-17

Feature

Education gamification: three new patient achievements added — Graduate (🎓 complete your first course, 150 XP), Knowledge Seeker (📚 complete 5 lessons, 100 XP), and Dedicated Learner (🔥 maintain a 3-day learning streak, 125 XP). When a patient finishes the last lesson of a course, a celebration dialog pops up with an animated 🎓 emoji, course title, streak chip, courses-completed count, and an "Achievement Unlocked!" banner when a threshold is crossed. Buttons navigate back to learning or directly to the Achievements profile view. Unlocked education achievements now appear as gold chips at the top of the Education Center dashboard.

education
achievements
gamification
patients

Feature

Patient Education System launched. Practices can create course libraries (Course → Module → Lesson) and assign them to patients or staff. Includes multi-tenant templates (parent → child inheritance), progress tracking (status, time, acknowledgement), and assignment states (Assigned, In Progress, Completed, Overdue). Supports due dates, notifications, and course versioning. New Education Manager role added. Education Activity Centre (/education/activity) provides filtered views, stats (assigned, completed, overdue, avg %), and CSV export. Gamification via daily streaks applies to all users. Three starter courses included. Patients access via /patient/education; staff via /my-learning. Controlled by EducationEnabled flag (off by default).

education
lms
patients
staff

Feature

Education Center updates: renamed from “My Learning” to “Education Center” (/education-center). Moved access to avatar dropdown (patients and staff). Added to Manage Profile under “My Achievements” when enabled. Course editor now includes Actions drawer with “Send to All” to assign to all users (patients or staff) and trigger email/push notifications. New SmsEducationAssignment setting adds optional SMS on assignment, with billing tracking.

education
lms
patients
staff

Feature

Education Center updates: assignment emails now use non-expiring magic login links (one-click access, no password). Activity filter panel now scrolls correctly on small screens. Added Help Centre article “Education Module Guide” covering structure, creation, assignment, reporting, learner view, templates, and roles.

education
lms
patients
email

Feature

Education Center updates: navigation restructured — Library under Organisation, Activity moved to Activity Center, Education group removed. Education Center added to patient sidebar (with incomplete badge) and Organisation for staff; removed from avatar menu. Profile now embeds Education Center inline. Activity stats redesigned. Course rows now include Clone and Deactivate actions. TreatmentStage removed — replaced by Audience (Patient/Internal/Both). Editor improvements: dual-audience selection, simplified layout, single Save, improved actions, confirmations, helper text, real-time title updates, company picker, and separate “Assign to All” / “Send to All” options.

education
lms
patients
staff

Development

Postcode SEO/UX updates: /postcodes now paginates (10 per page) using GetOutwardBrowsePaged, replacing large initial loads. Added Prev/Next navigation, counts, and prefix filter with debounce. Outward pages now paginate full postcode grids (24 per page). GetFullChildren supports paging. SeoCanonical.LocalBusiness() now includes areaServed, and pages emit enriched schema data. Added “Browse Postcode Pages” internal links across key content pages.

seo
public
postcodes

Development

Postcode SEO/internal linking updates: NearbyAreas chips now link to /find?q={area} for crawlable links. Added “Find Orthodontists Near [Postcode]” CTA. County link added to sidebar (/locations/county/{slug}). New GetOutwardBrowseByCounty powers county pages with postcode grids. Internal link builder now injects /find?q={postcode} as primary CTA. Outward pages show “Showing X of Y” when capped; GetFullChildCount added.

seo
public
postcodes

Development

Introduced trading name for improved visibility in search engine results when searching for the business name.

seo

Development

Playwright tests now fully work as part of the CI/CD pipelines.

test
2026-05-15

Improvement

Public page performance improved by removing eager script preloads. PWA and push scripts now load only for authenticated users. WebAuthn scripts limited to auth routes. Public pages remain prerendered without unnecessary overhead.

seo
performance

Improvement

Location page section styling refined.

seo
public

Improvement

Reminder jobs hardened to handle missing or stale data. All reminder types now validate related records before sending notifications or writing logs.

jobs
reminders
patients

Development

Postcode crawlability, performance, and discovery improvements: sitemap generation now uses offset pagination (5,000 rows per page via OrderBy(Id)) instead of loading 1M+ slugs into memory, removing OOM risk. Added three composite covering indexes for browse, child lookup, and location queries. Optimised GetOutwardBrowse count query by replacing the 300-item IN clause with a single correlated subquery. New GetOutwardBrowseByLetter method enables filtering by first letter. /postcodes now includes an A–Z filter so all ~3,000 outward codes are internally linked. Added “Browse Postcodes” links to homepage, desktop menu, and mobile nav.

seo
performance
postcodes

Development

New public page /dental-monitoring targeting the dental monitoring keyword cluster. Covers overview, benefits, workflow on VCO, and includes full FAQ with JSON-LD (FAQPage, BreadcrumbList). Added “Dental Monitoring” quick-link to clinician explore section.

seo
public
clinicians

Development

Help Center updates: added “General Guides” with two Scribe walkthroughs (Admin: Create Patient & Evaluation, Patient Journey). Added missing Guidde guide for sending evaluation feedback. Renamed “Create a patient” to “Add and Configure Patients”. Introduced “Feature Guides” section divider.

help-center
guides

Development

SEO and load performance improvements: sitemap now emits content-specific changefreq/priority. Moved all public page stylesheets into HeadContent. DynamicSeoHead now supports author meta (used on blog posts). Blog thumbnails include width/height to prevent CLS. Added sitemap autodiscovery and GA dns-prefetch. Cleaned redundant robots.txt rules. Added HowTo JSON-LD to braces duration guide. Blog hub now emits rel=prev/next. Breadcrumbs added across key public pages.

seo
performance

Development

Completed breadcrumb coverage for remaining public pages (guides, NHS eligibility, smile visualisation, comparisons, support pages). Added guide cross-linking so all treatment and problem pages link to relevant guides.

seo
public
treatments
problems
guides
support

Development

Breadcrumbs added across all remaining public content (guides, costs, hubs, treatments). Homepage schema enhanced with MedicalOrganization, sameAs, contactPoint, description, foundingDate, and structured logo to strengthen E-E-A-T.

seo
public
guides
costs
treatments
home

Development

Improved null-safe DTO/entity mapping across core domains. Added targeted tests for mapping resilience and paid-plan access behaviour.

mapping
stability
tests

Development

Improved OG image fallback: pages without a specific image now use the homepage OG image instead of the default logo for better link previews.

seo
public
2026-05-14

Development

Comprehensive on-site SEO improvements for domain authority signals: (1) Visual breadcrumbs (<Breadcrumbs> component) added to all 7 treatment pages and all 12 problem pages. (2) Cross-category internal linking expanded — treatment related-pages now include 7 specific problem links; problem related-pages now include 6 specific treatment links. (3) Author profile pages (/blog/author/{slug}) added with Person JSON-LD and E-E-A-T signals; author sitemap sub-group (/sitemaps/authors/*.xml) added so crawlers can discover author pages. (4) Hero image LCP preload (<link rel="preload" as="image">) added to DynamicSeoHead for article-type pages. (5) MedicalProcedure / MedicalCondition JSON-LD added to treatment and problem pages. (6) IndexNow switched from batch POST (10,000 URLs) to per-URL GET streaming with 500ms delay. noindex audit confirmed clean — only admin/checkout pages carry noindex.

seo
public
treatments
problems
blog

Development

Added _ProblemCostGuidance reusable component to the problems hub. Each of the four primary problem pages (crooked teeth, crowded teeth, gaps in teeth, overbite) now includes a "Treatment Costs — What to Expect in the UK" section with rough private cost ranges for clear aligners and braces, links to the relevant cost pages, and NHS eligibility context including a link to the IOTN checker.

seo
public
problems

Development

New SEO content pages targeting high-volume UK orthodontic keyword gaps: Braces for Teenagers (/guides/braces-for-teenagers), Do Braces Hurt (/guides/do-braces-hurt), Life With Braces (/guides/life-with-braces), Orthodontist vs Dentist (/guides/orthodontist-vs-dentist), Teeth Whitening After Braces (/guides/teeth-whitening-after-braces), NHS Braces Cost (/costs/nhs-braces-cost), and Fixed Retainers (/treatments/fixed-retainers). All pages include full-length content, FAQ sections with FAQPage JSON-LD, breadcrumbs, internal cross-links, and sitemap entries. GuidesHub, CostsHub, and treatments related-pages component updated to surface new content.

seo
public
guides
treatments
costs
2026-05-09

Feature

Smile visualisation introduced at /tools/smile-visualisation: allows patients to upload a photo and preview how their teeth may look at the end of orthodontic treatment, with AI-generated illustrative results.

public
ai
billing
patients

Feature

Biometric sign-in (passkeys/WebAuthn) is now available for patients and clinicians, enabling secure login with Face ID, fingerprint, or Windows Hello instead of passwords or magic links. Users can register and manage passkeys from their security settings, with the option automatically hidden on unsupported browsers for a smooth fallback experience 🔐

auth
passkeys
admin
patient

Improvement

Smile Preview enhancements: rotating tips during AI generation, inline face and lighting advisory on image upload, browser navigation guard while generating and a patient history page at /my-smile-previews. Logged-in patients see a Smile Previews card on their home dashboard and a nav link. The admin dashboard now shows a Smile Previews Generated stats card (gated by feature flag).

patients
ai
public
nav

Improvement

Smile visualisation with public lead capture before generation, provider-swappable OpenAI/stub tooling, billable usage tracking, secure patient links, company settings, admin patient history, sitemap/search integration, and clear illustrative-preview disclaimers.

public
ai
public

Improvement

Smile Preview — reCAPTCHA v3 protection on the public generation form, patient regeneration (up to a company-configured limit per preview, each billable), shared panel UI across secure and patient detail views, and company settings for enabling regeneration and configuring the maximum number of regenerations allowed.

patients
ai
billing
admin
security

Development

New content pages targeting keyword gaps: Ceramic Braces (/treatments/ceramic-braces), Lingual Braces (/treatments/lingual-braces), Invisalign Cost (/costs/invisalign-cost), and Retainers After Braces guide (/guides/retainers-after-braces). All cross-linked, sitemap-listed, and footer-linked.

seo
public
treatments
guides

Development

Guides hub added at /guides with two new SEO-focused patient guides (remote orthodontic quotes + NHS waiting lists), both schema-enabled, cross-linked, and integrated into nav/footer.

seo
public
guides

Development

SEO improvements: noindexed and removed 37K thin location pages from sitemap, improved location metadata for CTR, and fixed redirect bug causing 5xx errors on paginated URLs.

seo
public
2026-05-08

Feature

Stock take feature added for material products: enable in company settings, assign Stock Taker role, perform and save draft counts, complete stock takes with adjustments, view stock history, and trigger low stock alerts when thresholds are met.

admin
products
stock
inventory

Feature

Staff achievements system added: users earn XP across activity, view tiers and progress on /my-achievements, see role-aware achievements and tier badges, while admins get a filtered, printable leaderboard report ranking users by XP.

gamification
achievements
users
admin

Bug

Patient email updates now enforce uniqueness against linked user accounts, and API upserts return a structured 409 Conflict when the email is already in use, enabling reliable duplicate handling.

patients
api
auth
2026-05-07

Feature

Quotes can now trigger an SMS notification to patients. When the new "SMS - Send Quote" company setting is enabled, sending a quote also sends the patient an SMS with a short link to review it. Disabled by default; requires a valid patient phone number.

quotes
sms
admin

Improvement

Automated usage invoicing now runs daily and aligns with each company’s Stripe billing cycle, with invoices finalized immediately, a 14-day grace period enforced via webhooks, automatic access control on non-payment, and support for re-invoicing voided usage 🔄

billing
stripe
admin
2026-05-05

Improvement

SEO improvements across public pages: FAQ JSON-LD schema added to key patient-facing pages (home, treatment hub, costs hub, Invisalign, guides), hreflang en-GB tags added site-wide, og:image:type now derived dynamically from image format, WebSite schema with SearchAction added for sitelinks searchbox eligibility. Three new patient guide pages published: "How Long Do Braces Take?", "Do You Need Braces?", and "Braces for Adults". Invisalign sub-pages expanded with detailed UK-specific content and keywords. Internal links improved for orphan pages.

seo
public

Improvement

Patient triage category and sub-category selection has been restyled with clearer selected states, hover treatment, and a more contained card layout.

patient
triage
ui

Bug

Patient updates now preserve the existing linked user account when the submitted patient payload does not include a user ID. Changing a patient's email also updates the linked user record consistently and prevents duplicate patient or user emails within the practice.

admin
patients

Bug

Scheduled evaluation request reminders now persist correctly when reminder settings are updated, including creating the expected reminder rows for enabled weekly reminder schedules.

admin
evaluations
scheduled
2026-05-04

Feature

Introduction of the Engagement Report that provides clear visibility into user activity and engagement trends across the platform. The report surfaces key metrics including active users, action completion rates, average response times, and workflow usage. Data can be filtered by date range and exported, enabling deeper analysis and reporting.

admin
engagement
report
2026-05-03

Feature

Practice Details Page. Practices can enable a patient-facing “My Practice” page from Company Settings → Features. Enabling this introduces a Practice Profile section allowing configuration of public contact details (phone, email, website), parking info, reception instructions, directions notes, assigned Treatment Coordinator, and team members (including job title, bio, and display order).

admin
practice

Feature

“My Practice” patient page. Displays practice information via a clean public page including an interactive OpenStreetMap embed with directions, current weather (Open-Meteo), and team profile cards. The navigation link appears automatically when enabled and minimum data requirements are met (address + at least one contact method).

patient

Improvement

Dashboard now only displays active items — excluding anything deactivated directly or via a deactivated parent (e.g. an evaluation request linked to a deactivated patient).

admin
dashboard

Improvement

Restyled the patient quote approval pages; quote overview, quote extras and quote acceptance, making the content more engaging and easier to understand and consistently styled.

patient
ui

Improvement

Updated the default quote product image presented to patients.

patient
ui

Improvement

Company settings help text now displayed via a mini modal.

admin
ui

Improvement

When linking a quote to an evaluation request, the list of options give more information such as date and status of evaluation request.

admin
evaluation
quote

Improvement

Dashboard no longer counts quotes without an order as an actionable item.

admin
dashboard

Improvement

Change log and help center background gradient fix applied for both light and dark theme.

admin
ui
theme
2026-05-01

Feature

News Bulletins are now available. Practices can create announcements targeted at specific audiences (all staff, all patients, everyone, or specific roles), pin important bulletins, set expiry dates, and optionally share bulletins with child practices. Bulletins appear on the admin dashboard and patient portal.

admin
news

Improvement

News Bulletins now support Draft, Published, and Archived statuses. Bulletins must be explicitly published before they appear on the dashboard or patient portal. Publishing shows a confirmation dialog with an optional push notification. The bulletin body now uses a rich text editor. Staff and patients can click through to a dedicated article view page, and admin lists now show a read count per bulletin along with a status filter bar.

admin
news

Improvement

Menu will show an unread bulletin count badge for each relevant audience segment, so staff and patients can easily see when new information is available.

admin
news

Improvement

When a patient has a single outstanding evaluation request, a banner is displayed with a clear link to help them quickly complete the required action.

patient
ui

Improvement

Video consultations links are now only shown when the company has the feature enabled and configured.

patient
ui
2026-04-30

Improvement

Scheduled evaluation requests now display indicator chips in the heading: child requests show a "Scheduled Follow-Up" chip linking back to the parent, and parent requests show whether they have pending or completed scheduled reminders. Users can now cancel individual or multiple unsent scheduled reminders directly from the evaluation request page.

admin
evaluations
scheduled

Improvement

Mailbox triage now gives practices more control over post-processing behaviour. Each mailbox connection can be independently configured to mark processed emails as read (on by default) and optionally move them to a named folder after triage. Email-to-category matching has also been improved: subject line matches are now weighted more heavily than body text, and the engine now identifies the best matching sub-category within a matched category.

admin
mailbox
triage

Improvement

Public SEO coverage has been improved. Invisalign pages are now included in public prerendering, key public content sections receive cache-friendly HTML headers, the locations hub is included in the sitemap, and aligner/Invisalign pages are available in public site search.

seo

Bug

Usage report date range filters now correctly include items created on the "date to" day rather than excluding them.

admin
usage
2026-04-29

Feature

Supplier management is now available for practices, including supplier records, product supplier assignments, and product list filters for supplier-specific products or products with any supplier assigned.

admin
suppliers
products

Bug

Issue with footer logo dynamic resizing resolved.

ui
whitelabel
2026-04-28

Improvement

The address auto-complete component has been updated, improving address suggestions and formatting.

address
ui
2026-04-27

Feature

Reminders and automations are now fully configurable per practice. Replace the fixed set of on/off reminder flags with flexible schedules — set any number of reminders at custom offsets (minutes, hours, days) before or after key events such as evaluation requests, quotes, consultations, and issue replies. Each schedule can independently enable or disable push notifications. A global 24-hour cooldown across all patient comms is enforced automatically. ⏱

admin
practice

Feature

A new Automations section is available in practice settings, replacing the previous hardcoded reminder checkboxes. Add, toggle, and delete reminder schedules per topic with immediate effect. ⚙️

admin
practice

Feature

The dashboard Stats tab now shows an Upcoming Comms grid — all automated reminders expected to send within the next 24 hours, with patient name, type, schedule description, expected send time, and push notification indicator. 📊

admin
dashboard

Feature

Evaluations can now be marked as the treatment-start evaluation for a practice. Sending that evaluation sets the patient's treatment start date when it has not already been recorded. 🦷

admin
patients
evaluations

Feature

You can now download all evaluation request photos relating to a patient record from the patient actions sidebar. 📸

admin
patient
photos

Feature

Patient records now include a photo export action that downloads all available evaluation request and issue photos for the patient. Owners can also navigate from transferred patient copies back to the original patient record. 📁

admin
patients

Feature

Webhook list page added to Activity Center. This means users can now view both the webhook results and webhooks for all their associated practices. 🔗

admin
integrations

Improvement

Evaluation requests now complete against the DateAdminCompleted rule consistently. Practices without treatment-plan requirements automatically complete requests when every photo is valid, while treatment-plan-required practices continue to route valid-photo requests to admin completion unless force completed.

admin
evaluations

Improvement

Parent practice users and owners can now view, set, save, and regenerate API credentials for child practices. Child practice users no longer receive those credential values in the practice API panel.

admin
practice
integrations

Improvement

Dashboard todo cards now match the stats card treatment with a bottom action bar, direct section navigation, quote and order cards restored, and improved spacing around the reporting period.

admin
dashboard

Improvement

Admin list pages now show contextual descriptions under their headings so users can understand what data each page contains and how it fits into the wider workflow.

admin
navigation

Improvement

Practice theme defaults are now honoured for users until they set their own theme preference.

admin
theme

Improvement

Quotes and orders list pages now show key stat cards above their data grids for faster operational review.

admin
orders
quotes

Improvement

Overhaul of the practice management area with helpful info to better describe the different configuration settings.

admin
practice

Improvement

Practice settings have been reorganised into clearly defined categories for better usability and consistency, making it easier to customise your Virtual Consultant experience. Sections include: API, Automations, Branding, Configuration, Features, Site Customisation, Reminders, Video Consultation Settings, Usage, and System. 🧩

admin
practice

Improvement

Practice settings page will prompt when user makes change without saving and tries to navigate away.

admin
practice

Improvement

When a new child practice is created, it now inherits the parent practice's settings by default, saving time on configuration and ensuring consistency across locations.

admin
practice

Improvement

You can now manage team members, products, evaluations and vouchers directly within the practice management area.

admin
practice

Improvement

Dashboard data now excludes data associated with patients where their associated practice has been deactivated.

admin
dashboard

Improvement

Activity centre pages where the feature is not enabled will now alert the user and prevent further actions.

admin
dashboard

Improvement

Renamed dashboard 'TODO' tab to 'Actions'.

admin
dashboard

Improvement

Dashboard shows reporting period on every tab location for consistency.

admin
dashboard

Improvement

The public change log header now has mobile horizontal padding so the title and menu affordance do not sit against the viewport edge.

public
changelog

Bug

Deactivated patients now have their linked user account deactivated with a refreshed security stamp, and dashboard counts/lists avoid returning actions, reminders, issues, quotes, orders, and patient rows for deactivated patient records.

admin
patients
dashboard

Bug

Issue preventing roles assigned to user from showing in the team member list has been resolved.

admin
practice

Development

Seed data now utilises static data for seeding rather than hardcoded values, improving maintainability and readability of the seed scripts.

standardisation
2026-04-26

Feature

Feature toggles have been introduced, allowing practices to enable or disable functionality at a practice level, helping reduce interface clutter and tailor the experience for their users. 🎛️

admin
features

Improvement

Patient list can now be filtered by outstanding issues.

admin
ui

Improvement

Patient list now shows the postcode beneath the patient name, improving readability and mobile layout.

admin
ui

Improvement

Evaluation requests list can now filter records where photos have been uploaded. Further additional filters based on pending action type.

admin
ui

Improvement

Significant changes made to the main navigation menu including link renaming for clarity, better grouping and improved styling.

admin
ui

Improvement

Marketing data now shows key stat information and each record now links directly to patient. You can also expand the row to display all marketing details at a glance.

admin
marketing

Improvement

Company has been renamed and relinked across the site to 'Practice'. 📛

admin
ui

Improvement

Dashboard key stats values now centered with improved styling for dark theme.

admin
ui
dashboard
2026-04-25

Feature

Added a new App Notifications admin list page, giving users a dedicated view to browse in-app notifications with search, read/unread filtering, export, and direct navigation from each notification. 🔔

admin
comms
notifications

Improvement

Patient sidebar navigation updated: Support Hub renamed to Support, Blog icon changed to an article icon, and four smaller quick-links added below the divider — About, Clear Aligners, Prices, Treatments, and Problems.

ui
navigation
patient

Improvement

Dashboard Communications tab now shows emails, SMS and push notifications sent to team members as well as patients.

communications
dashboard

Improvement

The Emails list now shows the recipient address, making it easier to identify who each email was sent to at a glance.

communications
lists

Improvement

All tab header bars across the app are now swipeable on touch devices — swipe left or right on any tab bar to scroll through tabs without needing the arrow buttons. Applies site-wide to every tab group.

ui
mobile

Bug

Issue preventing photo export has been resolved.

admin
export
2026-04-24

Feature

Blog management now includes JSON-based create and update workflows. ✍️📰

admin
blog

Improvement

Analytics loader extracted into a dedicated analytics.js file and moved out of the inline HTML; service worker registration, logout helper, and consent-gating logic consolidated into the JS bundle. Blazor framework scripts and the JS bundle now use <link rel="preload"> hints so browsers fetch them earlier in the load waterfall.

performance
seo
public

Improvement

Homepage CSS is now loaded asynchronously via a preload hint rather than being bundled into the shared CSS bundle, so returning visitors on other pages don't download it unnecessarily. Blog and footer images have loading="lazy" to defer off-screen image fetches.

performance
public

Improvement

Page speed and Core Web Vitals improvements on the public homepage: critical layout CSS is now inlined to eliminate flash of unstyled content, the LCP hero heading renders immediately without an opacity animation delay, footer logo has explicit dimensions to prevent layout shift (CLS), and MudBlazor button transitions are overridden to GPU-composited properties only to reduce main-thread style recalculations.

performance
seo
public

Improvement

Versioned CSS and JS bundles, fonts, and images now receive appropriate long-lived cache headers — bundles are immutable (1 year), fonts and icons 30 days, images 7 days.

performance
caching

Improvement

Heading hierarchy on the public homepage corrected throughout — section headings and card titles now render with semantically correct h2/h3 tags while preserving their visual Typo styles, fixing the heading-order accessibility audit failure.

accessibility
seo
public

Improvement

A thin primary-coloured progress bar now appears at the top of the screen during page navigation, giving a clear visual signal that a new page is loading without blocking the existing content.

ui
navigation

Improvement

Improved blog hub paging navigation.

ui
blog
2026-04-21

Feature

Admins viewing an evaluation request can now upload photos and use the camera directly on behalf of a patient. Each photo slot gains an upload icon button that opens the full photo capture UI — file upload (including HEIC/HEIF), live camera capture with pose overlay, countdown timer, face detection, and brightness validation — identical to the patient-facing experience. The page refreshes automatically after a successful upload.

evaluation-requests
photos
admin
2026-04-19

Feature

New Help Center guide added for Scheduled Evaluation Requests, covering setup, scheduling options, and how to interpret the generated reminder list.

help-center
evaluation-requests

Feature

Monthly usage invoicing introduced. Billable usage rows can now be grouped into Stripe usage invoices, tracked by Stripe invoice ID, and processed safely by the scheduled monthly job with idempotent usage stamping.

billing
usage
stripe

Feature

Mailbox triage now supports per-category assignees, category-specific minimum confidence thresholds, exclusion patterns for false positives, a richer triage audit view, and re-triage of individual processed messages.

mailbox
triage
admin

Feature

New Help Center guide added for Mailbox Triage, explaining category setup, exclusion patterns, confidence thresholds, and triage audit review.

help-center
mailbox

Feature

Oral health analysis now captures four dimensions — Healthy, Plaque, Gum Disease, and Decay — and presents them as a multi-metric result panel with dominant finding, confidence threshold handling, and a manual run option when automation is disabled.

oralhealth
analysis
ui

Feature

New Help Center guide added for Oral Health Analysis, covering setup, confidence threshold behaviour, result interpretation, and billing implications.

help-center
oralhealth

Improvement

The floating per-page drawer action is now fixed to the bottom-right of supported admin pages, so the contextual action menu remains reachable while scrolling instead of disappearing with the page header.

ui
navigation

Improvement

Admin evaluation request pages now use a more consistent header style. Patient name is shown prominently above the email address, and the chip summary row better matches the newer patient record layout.

evaluation-requests
ui

Improvement

"Automated Reminders" has been renamed to "Scheduled Evaluation Requests" across the admin interface for clarity. The evaluation request page now also includes a how-it-works link, clearer scheduled-send status chips, formatted send dates, and a more persistent summary after saving reminder settings.

evaluation-requests
automation

Improvement

Company evaluation request lists have been restyled into a card-based layout with clearer status chips, photo counts, created dates, and direct access to the request detail screen.

evaluation-requests
ui
companies

Improvement

Billing → Usage now surfaces pending usage summary cards, grouped usage chips, a manual usage invoice action for a selected month, and a 12-month usage invoice history table to make revenue and billing support work more transparent.

billing
usage
admin

Improvement

Stripe invoice webhook handling now updates usage invoice rows when payment succeeds or fails, and sends a billing failure alert to the company alert mailbox when a Stripe invoice payment fails.

billing
webhooks
usage

Improvement

Billable SMS sending and oral health analysis are now blocked when a company is in an inactive billing state such as Payment Due or Lapsed, preventing new usage from being generated while billing is unresolved.

billing
compliance
usage

Development

Added the OnboardingWizardCompletedAt company-config field and migration as a forward-compatible schema prerequisite for future onboarding and first-run guidance work.

database
onboarding
2026-04-18

Improvement

Floating actions sidebar menu icon, responsive on all device sizes.

ui

Improvement

The Treatment Planning Suite now defaults to the current evaluation request in the patient photos filter, so only photos from the active evaluation are shown on load. A banner is displayed when the current evaluation has no uploaded photos, and other patient photos are still accessible by clearing the filter. A pose filter has also been added alongside the evaluation filter.

treatment-planning
ui

Improvement

When marking an evaluation request as complete in the Treatment Planning Suite, a confirmation dialog is now shown before saving. Once complete, the treatment plan is read-only; a "Revert to In Progress" button in the suite's menu restores edit access. A "Go to Evaluation Request" link has also been added to the menu.

treatment-planning
ui

Improvement

The treatment plan text field now auto-grows as content is entered rather than using a fixed large height. The complete/incomplete toggle now shows a caption explaining that marking complete will finalise the evaluation request.

treatment-planning
ui

Improvement

The photo annotator pan/move tool is now the default selected tool and appears first in the toolbar. After zooming in or out the tool automatically switches to pan so the image can be repositioned without accidentally drawing. Panning is now constrained so the image cannot be dragged beyond its edges. Zoom step increased from 10% to 25% per click, a reset button shows the current zoom percentage and resets to 100% on click.

treatment-planning
photos

Improvement

Audit entries for evaluation request status changes now use human-readable descriptions (e.g. "Pending Admin Completion") rather than raw enum names (e.g. "PendingAdminCompletion").

treatment-planning
audit

Improvement

The treatment plan timeline in the Treatment Planning Suite now orders entries by completion date descending, strips legacy HTML markup from plan text, and only shows the timeline when at least one completed evaluation with a plan exists.

treatment-planning
timeline

Improvement

Dashboard evaluation request tabs updated: "Pending Feedback" renamed to "Requires Feedback Sending". A new "Awaiting Patient" tab shows requests where feedback has been sent and the patient has not yet re-uploaded. "Pending Review" now only counts requests that have at least one photo.

dashboard
evaluation-requests

Improvement

When a patient completes their photo upload the admin team (owners and treatment prescribers) now receive a "photos ready for review" push/email notification. When an admin marks all photos as valid and treatment planning is enabled, treatment prescribers receive a "ready for treatment plan" notification instead of a generic review alert. The incorrect "ready for review" notification that was previously firing when admins validated photos has been removed.

evaluation-requests
notifications

Improvement

Sending photo feedback now automatically advances the evaluation request status to "Awaiting Patient" (PendingFeedbackCompletion) so it surfaces on the new dashboard tab.

evaluation-requests
workflow

Improvement

When all photos are marked as valid and treatment planning is disabled, the mark-as-complete dialog opens automatically.

evaluation-requests
workflow

Improvement

Marking a single photo as invalid now prompts for feedback immediately. Cancelling the prompt leaves the photo status unchanged.

evaluation-requests
photos

Improvement

Evaluation requests can now be marked as complete directly from the sidebar, covering all workflow scenarios without requiring a treatment plan. The button adapts its confirmation message based on context: if treatment planning is enabled and a plan has been saved it confirms standard completion; if treatment planning is disabled and all photos are valid it confirms photo-based completion; otherwise it presents a force-complete option for cases such as an appointment already being booked. An optional completion note can be entered at the point of marking complete and is recorded in the patient audit trail. A "Revert to In Progress" option is also available in the sidebar when a request is already marked complete.

evaluation-requests
completion

Improvement

Saving a treatment plan in the Treatment Planning Suite and marking the evaluation complete in one step now automatically marks the evaluation request as Complete. If the treatment plan is saved without marking complete, the owning company's admin users (Owners) receive a push/email notification that the plan is ready and the evaluation awaits final completion.

treatment-planning
workflow

Improvement

The Treatment Planning Suite text editor has been replaced with a standard multi-line text field. This eliminates a slow load delay that previously made it appear as though the saved plan had not persisted.

treatment-planning
ui

Improvement

The admin summary panel on the evaluation request page now displays key details (status, photo count, created date, assessment progress, completion date, treatment plan) as compact chips, consistent with the patient record style.

evaluation-requests
ui

Improvement

Creating a patient (manually or via the API) now checks for an existing active patient with the same email address within the same company and returns a clear error rather than creating a duplicate record.

patients
data-integrity

Improvement

Dashboard todo items (evaluation requests, patient issues, quotes, orders, and company tasks) no longer show records belonging to deactivated or transferred patients.

dashboard
patients

Improvement

Additional details (custom fields) can now be added when creating a patient manually, not just when editing an existing record.

patients
additional-details

Improvement

Transferring a patient now hides the original patient record and all related actions (evaluation requests, issues, quotes, orders, and tasks) from the originating company. Only the transferred patient's details in the receiving company remain visible.

patients
transfers

Improvement

The usage report page now shows a date range filter in the sidebar, defaulting to the current billing month. Dates can be changed and applied independently, and a reset button returns to the current month.

usage
billing

Bug

The evaluation request complete/incomplete toggle in the Treatment Planning Suite now correctly reflects the saved state. Previously toggling complete and saving could leave the status as "Pending Admin Completion" due to photo validity checks overriding the admin-completed date.

treatment-planning
workflow

Bug

Reverting an evaluation request to "In Progress" no longer clears a saved treatment plan. Previously the treatment plan text was lost when toggling completion off.

treatment-planning
workflow

Bug

Treatment plans that were previously saved as HTML (from the rich-text editor) are now automatically stripped of markup tags when re-saved, ensuring clean plain-text storage going forward.

treatment-planning
ui

Bug

On tall portrait photos the Annotate and Compare buttons were pushed below the visible area of the photo carousel. The image frame now flexes to fill available space and the buttons are always visible at the bottom of the card.

treatment-planning
photos
2026-04-17

Improvement

All card headings on the patient record (Evaluations, Quotes, Orders, Issues, Tasks) now use a consistent style.

patient-record
ui

Improvement

The patient edit form now includes an optional Date of Birth field.

patient-record
dob

Improvement

Staff can now store custom label/value pairs against a patient record — for example a practice's own patient ID, referral source, or any other internal reference. Fields are managed via an "Additional Details" option in the patient sidebar menu, which opens a modal where rows can be added, edited, and removed (with confirmation before deleting a saved entry). When any fields have been saved, a summary card appears on the patient record showing all values at a glance, with a button to open the same modal. All values are searchable from the patients list.

patient-record
custom-fields

Improvement

Evaluation request list now includes a "Feedback Ready to Send" filter, showing all requests where feedback has been written for invalid photos but not yet dispatched to the patient.

evaluation-requests
feedback

Improvement

The Manage Billing button now surfaces the specific Stripe error when the billing portal cannot be opened, rather than showing a generic failure message. The most common cause — the Customer Portal not yet activated in the Stripe Dashboard — is now clearly indicated.

billing
ui
stripe

Improvement

When an owner records a manual subscription via the admin Manual Subscriptions page, a confirmation prompt now asks whether to notify the company. If confirmed, a push notification is dispatched to all Admin-role users in that company who have push subscriptions registered. If no admin push subscribers are found, the notification falls back to an email sent to the company's configured alert mailbox only. The push path uses a new SendToCompanyAdmins method that filters recipients to Admin-role users, keeping internal billing activity out of the broader staff feed.

billing
admin
notifications
manual-subscription

Improvement

Photo capture flow improved. Clicking "Use photo" in the camera dialog now closes the modal immediately rather than waiting for image processing to complete. A loading spinner is shown in the photo slot while the image is being prepared, giving clear feedback without blocking the interface.

ui
upload
photos

Improvement

Light theme is now the default for new users or any device without a saved theme preference. Users who have previously chosen Dark or System mode are unaffected.

ui
theme

Bug

Photo validity can now be toggled (valid/invalid) without being forced to enter feedback immediately. Feedback is entered separately and only dispatched to the patient when the Send Feedback button is explicitly clicked. The bulk "mark all" action also no longer errors on pose name parsing.

evaluation-requests
photos

Bug

Saving a treatment plan now shows a success or error notification and refreshes the data. Previously the save button appeared to do nothing.

treatment-planning
ui

Bug

The patient profile header no longer shows a stray | separator when no postcode has been entered.

patient-record
ui

Bug

Entering a treatment plan in the Treatment Planning Suite no longer leaves an evaluation request stuck on "Pending Feedback" status.

evaluation-requests
status

Bug

The side navigation menu no longer auto-opens on mobile when logging in. It now only opens automatically on screens 960px wide or larger, matching the responsive drawer breakpoint. On mobile the menu remains closed until the user taps the hamburger icon.

ui
mobile
navigation

Bug

Manual subscription access windows now expire correctly. Previously, granting a manual subscription stored the company status as Active, meaning access was never revoked when the window lapsed — the company remained permanently Active. The stored status is now set to a distinct Manual value. While the window is in the future the access resolver returns Active as before; once it lapses and no live Stripe subscription exists, the company is automatically downgraded to Lapsed. Existing manual grants will be re-evaluated at the next access check.

billing
manual-subscription
access

Bug

Manual subscription notifications now correctly fall back to the company alert mailbox email when no admin push subscribers are found. Previously the alert mailbox was not being read due to the company config not being loaded alongside the subscription record, causing the fallback to silently skip even when an alert mailbox was configured.

billing
notifications
manual-subscription

Bug

Push and email notifications for evaluation requests ready for review were only firing for companies with Treatment Plan Required enabled. Notifications now fire for all companies when a patient completes their submission, regardless of whether treatment planning is configured.

notifications
evaluations

Development

All transactional service methods and background jobs now execute inside an EF Core CreateExecutionStrategy, making database operations resilient to transient connection failures and SQL Azure retry scenarios. Affected services include quote approval and upsert, patient upsert and import, product import, evaluation request create and update, consultation booking create and reschedule, blog and help guide upsert, company upsert and registration, and the automated evaluation request reminder job.

database
resilience
2026-04-16

Feature

New Owner-only Help Center guide "Stripe Subscription Operations" added at /help-center/stripe-subscriptions. Covers tier setup via Stripe product metadata, promotion code discounts, manual off-Stripe subscription windows, webhook events and activation flow, the company_id metadata contract, access status meanings, ops playbooks for common customer scenarios, and safety rails. Linked from the Help Center landing page and the Manual Subscriptions admin page — visible only to Owners.

help-center
owner
billing
stripe

Improvement

Stripe webhook handling hardened. A unique database index has been added to the webhook event log so retries from Stripe can no longer be double-applied, and idempotency is now race-safe. Company lookup during webhook processing now reads company_id metadata directly from the Stripe customer or subscription before falling back to legacy client reference id parsing, removing the brittle string-parsing path for new checkouts.

billing
stripe
webhooks

Improvement

Subscription activation is now driven by customer.subscription.created and customer.subscription.updated events rather than depending solely on the invoice-paid signal. Companies move to Active as soon as a Stripe subscription reaches active or trialing, with invoice-paid acting as a confirming backstop. Status mapping is centralised, so past_due, canceled and unpaid all resolve correctly without gaps.

billing
stripe
activation

Improvement

New product.* and price.* webhook handlers invalidate the in-process Stripe product catalog cache. Pricing, feature copy, or tier changes made in the Stripe Dashboard are now reflected in the app within seconds — no restart and no cache TTL wait required.

billing
stripe
catalog

Improvement

Billing flow and UI consistency improved across billing pages.

billing
ui
admin

Bug

Fixed outlined input label rendering issue caused by CSS overrides. Labels now float and position correctly without overlap or spacing glitches.

ui
mudblazor
forms

Bug

Resolved company settings update save error.

ui
company

Development

New admin-triggered Quartz job StripeCustomerCompanyMetadataBackfillJob introduced. The job iterates every company that already has a StripeCustomerId, stamps metadata["company_id"] on the matching Stripe customer, and emails a summary to the internal notifications inbox. Safe to re-run; already-stamped customers are skipped, and customers with a conflicting metadata value are flagged for manual reconciliation rather than overwritten. Intended as a one-shot migration step to retire the legacy client-reference-id fallback.

billing
stripe
jobs
admin

Development

Refactored theme.css to remove unused/commented code and simplify overrides. Cleaned up input, table, and navigation styles to reduce conflicts and improve maintainability.

ui
css
cleanup
2026-04-15

Feature

Subscription tiers are now discovered from Stripe product metadata (tier, sort_order, feature_list, display_name, description) instead of being hardcoded. Price and feature copy can be updated in the Stripe dashboard without a redeploy. Active products are fetched once and cached in-process for ten minutes.

billing
stripe
admin

Feature

Checkout consolidated behind a single tier-driven flow. The service now resolves the Stripe price from the requested tier at request time, supports re-using an existing Stripe Customer when the company already has one, accepts an optional pre-applied promotion code, and stamps company_id on subscription metadata so webhooks can recover the mapping even if the client reference id is stripped.

billing
checkout
stripe

Feature

Owners can now record off-Stripe payments (e.g. bank transfer) against a company from a new Manual Subscriptions page in the admin navigation. Each entry grants an Active window of N whole months (minimum 1), stacks on top of any existing window, and transparently takes precedence over expired or past-due Stripe state. All changes are audited and bump the company access version so access is re-evaluated.

billing
owner
manual-subscription

Feature

Patient import tooling introduced for admins. Company settings now include a patient import wizard with drag-and-drop CSV upload, auto column mapping, preview, and result reporting. Imports create linked patient user accounts, validate email format and date of birth across UK/US/ISO formats, reject duplicate emails within the file or against existing accounts, and roll back cleanly on any row-level error.

admin
import
patient

Feature

Product import tooling introduced alongside the patient import flow. Admins can now bulk import products with drag-and-drop CSV upload, auto column mapping, preview, per-row validation for categories, types, cost and sale price, and structured result feedback before data is committed.

admin
import
product

Improvement

Company access resolver now honours the manual-subscription window ahead of all other states, so a manually-paid company remains Active even if its Stripe subscription is marked expired or past-due. Stripe and manual windows stack — the later end date wins.

billing
access
owner

Improvement

Company admin pages now expose dedicated import actions for both patients and products, making large data onboarding easier to access directly from company management.

admin
companies
import

Improvement

Patient journey pages and public API endpoints received null-safety and resilience improvements, including safer busy-state cleanup on assessment and quote flows, environment-aware cookie auth behaviour, and sitemap and search optimisations to reduce unnecessary processing.

patient
api
performance

Improvement

Public Find page performance improved by reducing repeated filter and sort work during rendering, helping search results stay more responsive as content grows.

search
public
performance

Improvement

Sitemap generation received additional guard rails and URL normalisation fixes to prevent invalid or incomplete entries from being emitted.

seo
sitemap

Development

Automated test coverage expanded with a new Playwright end-to-end test project for the patient complete page flow and additional unit tests covering public find, quote requests, sitemap generation, and the patient and product import services.

testing
e2e
unit-tests

Development

Development-only authentication helpers and seed endpoints were added to better support automated browser testing and repeatable test setup.

auth
testing

Development

Google URL reporting tool updated to output submitted URLs directly to the console, making indexing runs easier to audit and troubleshoot.

seo
google-indexing
2026-04-12

Feature

Treatment Planning Coordinator video consultations introduced. Existing patients can now book 30-minute Jitsi consultations from their dashboard, while admins can send a secure single-use booking link directly to a patient. Consultation availability is controlled by company business hours, reminder emails are supported by default, optional SMS reminders can be enabled in company settings, and child companies inherit the parent consultation business hours when created.

patient
admin
video
booking

Feature

Rota Management Phase 1 introduced. Staff schedules can now be planned and tracked across day, week, and month views. Rota Coordinators, Admins, and Owners can create and manage rota entries for working shifts, annual leave, sickness, and general unavailability.

admin
rota
scheduling

Feature

Help Center introduced for non-patient users. Staff can now browse role-relevant help guides, contact technical support from the help area, and find help content through global search using guide titles, content, and tags. Owners also have a dedicated Help Center CMS to create, edit, tag, and manage articles separately from the public blog.

admin
help-center
search

Improvement

Treatment Planning Coordinators can be marked unavailable for holiday, sickness, or other leave periods, patients are prevented from selecting unavailable slots, and reschedules keep the assigned coordinator unless an admin explicitly reassigns the booking.

consultations
admin
patient
availability

Improvement

Admin consultations include booking stats, consultation notes, completion actions, and clearer availability states. Patient and admin booking actions also now show loading states to prevent duplicate clicks during cancel, reschedule, reassign, note-save, and booking operations.

consultations
admin
patient
workflow

Improvement

Assignment types added to rota entries, including reception, nursing, orthodontic therapy, treatment prescribing, and admin support, allowing clearer role-based scheduling.

admin
rota
scheduling

Improvement

Role-based filtering introduced to quickly narrow the rota view to specific staff groups.

admin
rota
scheduling

Improvement

Week copy functionality added, enabling schedules to be duplicated forward to reduce repetitive data entry.

admin
rota
scheduling

Improvement

Print-friendly rota view introduced for easy display within the practice.

admin
rota
scheduling

Improvement

Multi-practice users can now switch between locations directly within the rota view without leaving the page.

admin
rota
scheduling

Bug

Issue with encoded links to specific pages with token failing intermittently resolved by preserving text casing on URL and token.

patient

Bug

Fixed issue preventing users from adding multiple roles for an existing team member.

admin

Development

Introduced an overhauled cookie consent banner allowing specific permissions to be given for tracking analytics purposes.

ui

Development

Platform highlights page introduced to showcase the key new features and benefits of the Virtual Consultant platform.

ui

Development

Fixes to theme selection to ensure public facing pages are excluded.

ui

Development

Option to install as PWA always available within the avatar menu unless already installed.

ui

Development

Dashboard sections now grouped as cards for consistent styling and better visual separation.

ui

Development

Introduced an informative clear aligners hub making it easier to find information about clear aligners and what systems are available.

seo

Development

New sitemaps introduced for the new clear aligners pages including location based slug variant pages.

seo
2026-04-10

Feature

PWA push notifications are now active. When installed as an app, staff and patients receive native OS notifications for key events � new patients, trial sign-ups, evaluation requests, and pose feedback. Notifications are delivered even when the browser tab is closed. Notifications still fallback to email if not available.

ui
pwa
notifications

Feature

In-app notification centre introduced. A bell icon in the app bar shows a live unread count badge. Clicking opens a panel listing recent notifications with title, summary, and relative timestamp. Individual notifications can be marked as read by clicking them; a "Mark all read" shortcut clears the badge instantly. Notifications are always saved to the inbox regardless of whether push delivery succeeded.

ui
notifications
2026-04-08

Feature

Theme toggle added to the avatar menu. Users can switch between Light, Dark, and Auto (follows the OS setting) � preference is saved per device. The dark theme derives its accent colours directly from the company's brand palette, using HSL lightness adjustment to ensure readability on dark surfaces while preserving the brand identity.

ui

Feature

PWA install prompt and update notifications are now active. Authenticated users are encouraged to install the app via a banner and a shortcut in the profile menu, with dismissal resetting after 7 days. An update banner appears automatically when a new version of the app is deployed.

ui
pwa

Feature

Treatment tracking added to patient records. Staff can now record a treatment start date (suggested automatically from quote acceptance date or patient creation date) and close a case with a treatment end date. The patient summary displays an open/closed treatment length chip for at-a-glance visibility.

ui
admin

Feature

New Treatment Length report under Reports. Filterable by company and date range (presets include this year, last year, last 3 months). Key stats include average, shortest and longest treatment durations, with a full per-patient breakdown table.

ui
admin
reports

Development

Public API patient create/update endpoint now accepts DateTreatmentStarted and DateTreatmentEnded fields, supporting future integration with practice management systems such as OrthoTrak.

api

Development

Patient actions menu now split into categories.

ui
2026-04-07

Feature

Site-wide search with intelligent autocomplete, enabling instant access to patients, quotes, tasks, and key records - significantly reducing navigation time and improving day-to-day efficiency ??

ui
admin

Feature

Public facing site-wide search to navigate to key public content such as locations, treatment information and blog posts.

ui
patient

Bug

Fix applied to resolve the intermittent circuit disconnection issue on the blog hub.

blog

Development

Expanded deterministic location content builder with richer, slug-stable variation across SEO fields and page sections.

seo
ui

Development

Updated robots.txt to disallow crawling of parameter URLs to prevent crawl waste and potential duplicate content issues.

seo
ui

Development

Page headers slightly condensed to make better use of screen real estate.

ui

Development

Admin pages now feature concise summaries of key information, presented in a consistent, cleaner chip-and-caption layout for improved readability and visual clarity.

ui
2026-04-05

Feature

Multi-site company based users can now filter their actions to a specific company from the avatar dropdown. This allows users to focus on the relevant actions for a specific company when they have access to multiple companies.

ui
admin

Development

Major dashboard overhaul. Dashboard now splits stats from actions ensuring important todo items aren't missed.

admin

Development

Introduced the blog reader achievement.

gamification

Development

Evaluation request page now better uses screen real estate on mobile devices.

ui
2026-04-04

Feature

Introduction of the public Orthodontic Support triage engine. Patients can now report issues � broken braces, wire problems, pain, loose appliances, and more � without needing to log in. The guided multi-step flow captures patient details, issue category, sub-category, photos, and a description before automatically creating a patient record and raising an issue for the clinician.

patient
support
triage

Feature

Pre-treatment triage pathway added. Prospective patients not yet in treatment can be triaged to relevant treatment information and recommended next steps. A patient lead record is created automatically and tagged for clinician follow-up.

patient
support
triage

Feature

Triage categories, sub-categories, and photo requirements are now seeded with a standard set of in-treatment and pre-treatment categories for every new company. Existing companies can manage their own triage setup from the Triage Categories admin page.

admin
triage

Improvement

Patient record header now displays tags as chips for quick identification of patient origin and issue type.

admin
patient

Development

Triage categories now support a Pre-Treatment flag to split the in-treatment and pre-treatment support journeys. An optional recommended treatment URL can be set per category for the pre-treatment recommendation screen.

admin
triage

Development

Four new orthodontic support content pages introduced � Broken Brace, Wire Sticking Out, Orthodontic Pain, and Loose Bracket � providing SEO-optimised information and linking directly into the triage engine.

seo
2026-04-02

Development

Introduction of an orthodontic software page, invisible braces page and a braces v clear aligners page.

seo

Development

Costs pages now have expanded and more specific content.

seo

Development

Various changes to page keywords.

seo
2026-04-01

Development

Minor performance enhancements made to the background services.

admin
2026-03-31

Improvement

Further work completed to improve the photo upload experience for Safari mobile users.

upload
ui

Improvement

Treatment plan no longer visible unless the evaluation request is ready for treatment planning or company config allows it.

admin
2026-03-21

Improvement

Blog hub page refactored for easier readability and filtering and various SEO improvements.

seo
ui
2026-03-20

Improvement

Further work completed to solidify the user flow on the photo upload page.

upload

Improvement

After a photo is taken or uploaded the user is now scrolled to the next required pose.

upload
ui

Improvement

After captured photo is confirmed we now display a loader whilst the image is being processed preventing the image canvas showing as a black square.

upload
ui

Improvement

Further work undertaken to improve the treatment planning suite with better handling of edge cases and improved UI for viewing annotated photos.

admin
tps

Improvement

Blog editor improvements including FAQs section and improved cited reference capture.

blog

Improvement

Blog post page shows the new FAQs and the improved cited references.

blog

Improvement

The reason why the treatment plan cannot be set or updated is now displayed within the TPS.

tps

Improvement

Count of uploaded photos shown as a badge for each evaluation request listed on the Evaluation Requests page and within the patient record.

admin
ui

Development

Various SEO improvements made including html tag property added for accessibility headings, content enriched with FAQs

seo
2026-03-19

Improvement

Camera permissions dialog now falls back to upload function when camera permission is denied.

upload

Bug

Issue reported on Safari mobile addressed to fix issue with camera permissions and file upload.

upload
2026-03-13

Improvement

Geolocation page now has a more engaging and informative layout with improved styling to make it easier to read and understand the information provided.

seo
ui

Improvement

New informational CTA sections added to hub pages.

seo
ui

Development

Redirects, forcing https and canonical fallback now handled in a centralised way for improved maintainability and consistency.

seo

Development

Implemented Identity security stamp validation changes with an internal admin endpoint to invalidate user sessions and force logout.

admin

Development

Sitemap generation has been optimised with caching to prevent performance issues as the site scales.

seo
performance

Development

Reordered sitemap index to prioritise recently updated and SEO based content.

seo

Development

Refined robots.txt rules to prevent crawl waste from parameter URLs.

seo

Development

Centralised JSON-LD generation to ensure consistent and valid structured data across pages.

seo
2026-03-12

Improvement

Reduced database load by throttling login validation checks.

performance

Improvement

Quote request page now has internal links for better SEO and ensuring the user is fully informed.

seo

Improvement

The Orthodontist near me page, how treatment works page and the individual treatment & problems pages are now more informative and the styling has been improved to be more engaging and easier to read.

seo

Development

Pre-render paths now generated dynamically based on content, with fallback for non-existent paths.

seo

Development

Canonical URL handling improved with dynamic generation based on request path and query parameters.

seo

Development

Trailing slash now removed for consistent sitemap URLs and matching canonical URLs.

seo

Development

Open new tab URLs now have noopener noreferrer tags.

seo

Development

Robots metatag fully utilized with dynamic SEO component rather than separate tags.

seo

Development

SEO 'Unparsable structured data' fix applied to the geolocation page.

seo
2026-03-10

Improvement

Patients list now displays postcode for easier location identification.

admin
patient

Bug

Patient transfer now includes a copy of the address details.

admin
patient

Development

Improved shared seo component with dynamic breadcrumb builder and standardised canonical url handling.

seo
2026-02-28

Improvement

When a clinician tries to login via the patient login page rather than failing log in they will now be redirected to the clinician log in page along with the email they entered for quick and convenient log in.

admin
account

Improvement

Overhaul of the trial company flow. Previously account password was set at the time of registering but now a separate email will be sent to set password. This allows sign ups to be performed on behalf of others.

admin
account

Improvement

Refactored look and feel of the account password management pages such as forgot password.

admin
account

Improvement

Reset and Set password pages will now pre-populate user email based on the request.

admin
account

Improvement

Default theme values now set for email theming and email footer text.

admin
them

Improvement

Theme page on company settings now display color picker text in the color selected rather than in a separate color swatch which was misleading users into thinking the swatch was clickable.

admin
ui

Bug

Updating a company logo then updating it a second time with no other page change caused an error which has now been resolved by clearing the previous cached custom logo.

admin
theme
2026-02-27

Development

Stripe integration coupled tighter so immediately after successful payment the user is able to access the site.

dev
2026-02-26

Development

Introduction of a stylised offline page to be used during maintenance periods or downtime.

dev

Development

Update to system architecture with slot based deployment strategy to allow for reduced downtime deployments and improved reliability.

dev

Development

API now resolves on custom domain; api.virtualconsultant.online

dev
2026-02-25

Improvement

Refactored look and feel of the evaluation request completion pages with useful quick links and next steps details.

ui

Development

Dynamic white label logo optimisation for LCP.

ui

Development

Added missing image alt tags.

ui

Development

Delayed non-critical JS loading until later in the page load lifecycle.

ui

Development

Added aria-labels to key icon button elements for improved accessibility.

ui
2026-02-23

Improvement

Quote request and Register pages superfluous content removed and buttons better aligned on mobile.

seo

Development

ui

Development

Improved embedded back button function.

ui

Other

Major web optimisation and asset bundling improvements, including build-based bundle versioning for cache busting.

2026-02-15

Feature

Introduced the patient transfer function which transfers majority of the original patient information to the target company excluding data which has company specific information such as quotes and orders.

admin
leads

Feature

Once a patient is transferred, a notification will also be sent to the company alert mailbox to support prompt follow-up.

admin
comms

Feature

Once a patient is transferred they will be automatically logged out of their session.

admin
comms

Improvement

Introduction of the eligibility hub where users can evaluate their eligibility based on the specific circumstance categorised by treatment required, problem and any specific detail.

seo

Improvement

Removed UK wording from cost pages.

seo

Development

Improved log out functionality.

ui
2026-02-12

Improvement

Clear aligner systems now have consistent naming rather than specific brand names.

seo

Improvement

Geographical location hub page created to list all locations we partner in.

seo
2026-02-07

Improvement

Introduction of the IOTN Severity Score checker page to give patients a rough understanding of their personal IOTN.

seo
ui

Improvement

Checker pages now logically grouped in navigational menus.

ui

Improvement

Unauthorised home menu standardised font across links and link groups.

ui
2026-02-06

Improvement

Upgraded to .Net 10.

dev

Improvement

Public-facing blog posts and the blog hub have been updated to better align with SEO best practices, with improved structure and styling.

seo
ui

Improvement

Location page SEO overhaul with pre-render.

seo
ui

Improvement

Introduction of the location browse by county page. Sitemap generation endpoint now also includes the county hub and related pages.

seo
ui

Improvement

Improvement to HTML structure to meet SEO requirements on public pages; integrations and change log.

seo
ui
2026-01-23

Improvement

Styling refactor of the problem, costs and treatment pages with standardised menus. Also applied a styling refactor to the 'how to take ortho photos' page.

seo
ui

Improvement

Introduction of the Remote Orthodontic Assessment informational page for clinicians.

seo
clinician
2026-01-18

Improvement

Major overhaul of the unauthorised/lander homepage. Content focuses on providing information and CTAs to patients. The styling has been vastly improved to build on the Virtual Consultant flat design brand guidelines.

seo
ui

Improvement

Complete overhaul of the clinician and patient about pages with improved content and styling.

seo

Improvement

Introduced contextual links and information to the treatment, cost and problem hub pages.

seo

Improvement

Using new research papers we have been able to prove an increase of chair time saved minutes, travel time saved minutes and CO2 per remote appointment.

carbon
2026-01-16

Improvement

Updated pricing scheme where Premium plan users now able to create an unlimited amount of companies. Was previously limited to 2 companies only.

admin
billing

Improvement

Improved billing management UI for better performance and clarity on current plan and next billing date.

admin
billing
ui

Improvement

Updated default quote product image. This image is served when the appliance product on the quote doesn't have an image uploaded.

patient
ui

Improvement

Nav menu updated to link to the relevant anonymous access patient/clinician about page.

admin
ui

Bug

Issue preventing new patients from access evaluations resolved. Was due to the auth role check also checking for subscription status.

auth
patient

Development

Bimi logo support added to email headers for improved brand recognition in supported email clients.

seo

Development

Added extra error logging to Sentry.

error
logging
2026-01-15

Feature

Plan upgrades and downgrades are now supported, with any pro-rata difference automatically applied as credit toward your next invoice.

admin
billing

Improvement

Admin login now encourages saving login information upon successful log in.

seo

Improvement

Register CTAs added to home and about clinician pages.

seo

Improvement

Company billing view invoices now redirects you to a private Stripe portal URL where you can manage your payment information and view historical invoices.

admin
trial
billing

Bug

Newly registered demo accounts no longer redirect straight to the package upgrade page.

trial

Development

Complete overhaul of side bar menu with desktop specific unauhorised user home menu component.

ui
2026-01-11

Improvement

Updated company settings UI for better usability and clarity with pricing per unit values for optional extras.

settings
admin
ui

Development

Metadata keywords truncated to meet recommended keywords character limits for SEO optimisation.

seo

Development

Public pages improved layouts and standardised button types and styling for consistency.

seo

Development

Location autocomplete extracted to partial and used in public hub pages.

seo

Development

Further SEO improvements made to the Geolocation template served across all locations.

seo
2026-01-10

Development

Basic usage report added to show users billable/free items that are chareable outside of their subscription plan.

seo
trial
usage
invoicing
reports

Development

Problem hub and related pages introduced to help leads/patients understand common issues preventing a straight smile.

seo
patient

Development

Treatment hub and related pages introduced to help leads/patients understand what treatment options are available.

seo
patient

Development

Costs & Pricing hub and related pages introduced to help leads/patients understand the potential costs involved with treatment.

seo
patient

Development

Footer links updated to follow logical grouping categories.

seo
ui

Development

Standardised header tags across all public pages for improved SEO performance.

seo

Development

Optimised geolocation OG image generation endpoint with caching.

seo
performance
2026-01-08

Development

Trial sign-up and renewal flow introduced, including a 14-day demo and updated registration journey.

seo
trial
signup

Development

New public SEO pages added, including About, Locations, Pricing Plans, and Orthodontic Treatment Near Me, with improved metadata and search visibility.

seo

Development

Authorization updated to use policy-based access control, supporting trial enforcement and clearer upgrade paths.

security

Development

Public routes extracted into a dedicated routing structure and internal navigation updated.

dev
2026-01-06

Improvement

Location page loading and browsing improved.

seo

Improvement

On both photo upload and camera capture the image quality has been significantly improved whilst maintaining as low as possible upload times.

evaluations
poses

Development

Note capture now auto saves automatically when added to an existing entity record.

admin

Development

App Insights integration now captures verbose logs.

tracking
2026-01-05

Improvement

Dashboard now shows badges to quickly and easily identify the number of outstanding actions for the various categories shown.

dashboard

Bug

Dashboard no longer filters out actionable items depending on which reporting filter period is selected.

dashboard

Bug

Patient address data no longer cleared on log in.

patient

Development

Timeline component now conditionally renders as a card for UI standardisation.

audit
ui

Development

Pre-Render now disabled to speed up data loading performance. Will take longer to load HTML onto the screen but will prevent data double loading in the background.

ui

Development

Patient address postcode populated from quote request form now surfaced on the patient record.

patient
2025-12-16

Bug

Issue that was preventing sending of automated reminders resolved. Was due to transaction scope.

admin
automated
2025-12-15

Feature

Introduction of the Treatment Planning Suite (TPS).

The TPS allows users with required role to compare all photos for a patient. Photos can be filtered by evaluation request. Each photo can be annotated and each annotated version can be viewed to give a full history.

The treatment plan itself now allows markup making complicated plans to be more legible and easier to follow.

When adding a treatment plan you can now mark as complete which will then complete the treatment planning activity and allow non-prescribing users a read only view.

admin
treatmentplanning
feature

Feature

You can now easily view the patients treatment plan history from within the patient management screen as well as within TPS.

ui
admin

Feature

Treatment plan required workflow is now conditional based on company settings.

ui
admin

Improvement

Photos that open image gallery now show helpful image information such as status and related pose details.

ui
2025-12-12

Improvement

Date and time of when a patient uploads a photo is now captured.

data
2025-12-02

Feature

A new role has been introduced for 'Treatment Prescriber' ensuring only users with this role can add/set treatment plan.

ui
admin
security

Improvement

Evaluation request page for admins now shows a chip button indicating if treatment plan has been set allowing a click to view.

ui
admin
2025-12-01

Improvement

'Customer' has been renamed to 'Patient' throughout the admin interface for clarity.

ui
admin
2025-11-30

Improvement

Major revamp of the Evaluation Request page presented to patients. Fully redesigned UI and a more stable camera integration.

ui
evaluations
2025-11-25

Feature

You can now choose which mailbox connection to use when sending an email. Standard email elements such logo, title, and styling are still applied automatically to maintain consistent branding recognition.

email
oauth
mailbox

Improvement

You can now send an email from a task. This will create a note against the task for tracebility of work completed to avoid duplicating work.

email
oauth
mailbox
tasks

Improvement

You can directly view emails associated with a task from the task page.

email
tasks

Improvement

Users can now be deactivated. After deactivation the user will be automtaically kicked out of any active sessions after a page refresh.

admin
user
2025-11-24

Feature

Added Gmail & Outlook mailbox connection management for secure automated email triage. While the app is going through Google and Microsoft verification (6�12 weeks), you may see temporary warnings such as:

Gmail: �Google hasn�t verified this app.� Outlook: �This app isn�t published by Microsoft.�

These appear only because verification is in progress. It is safe to select �Continue� to complete the connection.

email
oauth
infrastructure
mailbox

Feature

Implemented an initial mailbox triage engine, retrieving unread messages, automatically matching senders to existing patients by email or name, and creating company-wide tasks based on incoming messages. If a patient match is found, tasks are linked directly to the patient; otherwise, a general company task is created. ????

email
triage
automation
tasks

Feature

email
triage
automation
tasks

Development

email
triage
automation
tasks
dev

Other

New report introduced to view the result of each email processed as part of the triage engine.

Other

All emails processed by the triage engine are fully logged for auditing and troubleshooting purposes ensuring quick resolution of any issues. Dev dashboard extended to quickly view any errors.

2025-11-23

Improvement

Improved change log readability and formatting. Change log records are now tagged and you are able to filter by tag(s).

ui
formatting
changelog

Bug

Certain CSS and JS bundling optimisations were causing slower page loads and visible content shifting during render. Asset prioritisation and optimisation logic have now been improved, resulting in faster load times and significantly reduced layout shift.

ui
formatting
changelog
2025-11-22

Feature

Introduced company-wide tasks. Tasks can be assigned to users for accountability. Tasks can also be assigned to patients. Dashboard will now track and display stats around task resolutions. Resolution rules can be configured in the company settings. ???

tasks
company
workflow
2025-11-20

Improvement

Company audit record is now created when a user logs in.

audit
security

Development

Custom logo now scales to size of app header and vertically aligns.

branding
ui

Development

Company creation only allowed for users with appropriate role.

security
permissions
2025-11-12

Improvement

To prevent email overload - reminders are only ever sent for the specified overdue days configured in company settings.

email
reminders
throttling
2025-11-09

Improvement

Audits now capture when users sign in using a magic link.

audit
login
2025-11-08

Improvement

Font change making the site as a whole much easier to read.

ui
typography

Improvement

Home page layout geared towards conversion with clear CTAs for clinicians.

ui
conversion
homepage

Improvement

Book demo form simplified with fewer required fields.

forms
ui

Bug

Authenticated user sliding refresh persists required claims which should prevent users getting stuck on a blank page loading screen.

auth
claims
login
2025-11-05

Feature

Unsubscribe requests are now captured internally and surfaced in the patient details page.

email
unsubscribe
compliance
2025-11-01

Feature

First iteration of the Oral Health Analysis module introduced and can be configured to run manually or automatically. OH score is then surfaced within the Evaluation Request.

ai
oralhealth
analysis
2025-10-27

Feature

Webhook functionality introduced! ?? You are now able to manage webhooks from the company settings area. Webhook requests have a retry strategy to avoid transient errors with full result logging accessed within the webhook management section or within the Webhooks report.

webhooks
integration
api
2025-10-18

Feature

Ability to customise text shown on the quote request page from the company settings section.

customisation
quotes
companysettings

Feature

Added the marketing information report.

reports
marketing
2025-10-14

Development

Platform highlights page introduced.

ui
content

Development

Footer wording changes.

ui
footer
2025-10-13

Improvement

Evaluation request action renamed from �Mark as Treatment Planned� to �Mark as Complete�, reflecting that quotes now manage treatment planning for new patients. Additionally, clinicians can now directly add a treatment plan within the evaluation request.

ui
evaluations
workflow

Development

Canonical URL SEO warning fixed for Geographical Location slug page.

seo
canonical
2025-10-12

Feature

Patient gamification introduced to incentivise engagement, reducing sales delays and chair-side time. ??

gamification
engagement

Improvement

Refined styling on the patient facing quote page to focus patients on viewing estimate details to gently encourage acceptance.

ui
quotes

Improvement

Side navigation grouped more intuitively for better usability.

ui
navigation

Bug

Issue preventing export to CSV resolved.

csv
export
2025-10-11

Bug

SMS list filters now actually filter the data.

sms
filters
2025-10-09

Feature

Introduction of more company configuration values giving you the ability to toggle: Finance Enabled, SMS for Evaluation Requests, Evaluation Request Feedback and Patient Issue Replies. ??

companysettings
toggles
config

Feature

Right-click / long press actions added to Evaluation Request rows for quick actions depending on state.

ui
evaluations

Improvement

Patient manager now allows expansion of Evaluation Requests row to show associated automated reminders.

ui
reminders
evaluations

Improvement

Patient manager now conditionally shows editable profile fields to clean the interface.

ui
profile

Improvement

Admin Quote page improved layout and easier form submission.

quotes
ui

Improvement

SMS URL shortening now applied to all SMS messages sent.

sms
shortlinks
2025-10-05

Improvement

Complete overhaul of the dashboard. Data is more logically grouped and styling more consistent. Data queries optimised.

dashboard
ui
performance

Development

Geographical location browse page introduced to prevent orphaned links.

seo
locations

Development

Dynamic SEO content now has more null fallback values.

seo
content
2025-10-04

Bug

Evaluation requests with generic images but no photo are removed to prevent them being stuck in pending state.

evaluations
cleanup

Bug

Automated evaluation requests were incorrectly generated based on weekly interval minus 1 day.

evaluations
automation

Bug

Resolved error when admin user was redirected from unauthorised home to dashboard.

navigation
auth

Development

Evaluation manager now excludes Generic pose type.

evaluations
poses

Development

When patient raises an issue they are instantly presented with reply/compose functions.

issues
ui

Development

Patient quote now shows most recent primary product image with fallback behaviour.

quotes
images

Development

Autocomplete address lookup wildcard improved.

addresslookup
api

Development

API now exposes internal address controller with autocomplete endpoint.

api
internal

Development

API docs now ignore internal endpoints.

api
docs

Development

Improved unauthorised user home page menu styling and responsiveness.

ui
unauthenticated
2025-10-03

Development

Further security work for data protection and cross-application architecture access.

security
architecture

Development

Job endpoint added to allow manual triggering of scheduled tasks (internal only).

jobs
scheduling
2025-09-20

Bug

Blog image deletion issue resolved.

blog
images
2025-09-19

Improvement

Automated communications now send between 9am and 7pm to avoid unsocial hours.

automation
communications

Development

Sitemap generation endpoint performance improved.

seo
sitemap

Development

Geographical location lookup performance improved with enhanced SEO functionality.

seo
locations

Development

Enforced single canonical path to improve SEO efficiency.

seo
2025-08-28

Development

Updated icons.

ui
icons

Development

Unauthorised user home page desktop menu shifted left.

ui
unauthenticated

Development

Sitemap endpoint performance improved.

seo
sitemap
2025-08-18

Development

Location pages introduced for SEO-friendly URLs. 36,099 locations created.

locations
seo

Development

Dynamic sitemap generation.

seo
sitemap

Development

Dynamic location page SEO content generation.

seo
content

Development

Dynamic location page OG image generation minimal endpoint.

seo
og
2025-08-16

Bug

Blog filter-by-tag fix.

blog
filters

Development

Various SEO header content introduced.

seo
headers
2025-08-14

Development

Site-wide blog function introduced.

blog
content
2025-08-07

Improvement

Caching applied to most web assets including CSS, JS, icons and specific image directories.

performance
assets
2025-08-06

Improvement

Quotes now generate unique references to make them easier to identify.

quotes
ui
2025-08-05

Improvement

App bar now occupies full width, improving sidebar space usage.

ui
layout

Bug

Sidebar now consistently closes on mobile after link click.

sidebar
mobile

Development

Bundling and minification of CSS and JS files. ??

bundling
performance
2025-08-01

Feature

Major overhaul of email functionality. Custom logo, colours and footer text now configurable.

email
branding
companysettings

Improvement

Automated emails with URLs now use shorter, cleaner links.

email
shortlinks
2025-07-29

Improvement

Prompt appears when creating an evaluation request asking whether to notify the patient immediately. ??

evaluations
email

Improvement

Unauthorised home page now has a content menu.

ui
navigation

Bug

Dashboard overview now filters correctly based on selected company.

dashboard
2025-07-28

Feature

Introduction of �address� on patient and company objects with autocomplete lookup.

address
patients
companies

Improvement

Conditional dismissible prompt prompting users to install as PWA.

pwa
ui
2025-07-27

Feature

?? Added PWA Support with Auto-Silent Updates including network-first strategy, offline fallback and full Lighthouse compliance.

pwa
offline
caching

Feature

Patient login now supports 6-digit authentication code via SMS.

auth
patients

Feature

Companies can now enable login codes via SMS (chargable).

sms
auth

Feature

Patients can upload optional extra photos.

evaluations
photos

Improvement

Sidebar auto-closes on mobile after navigation.

sidebar
mobile

Development

Service worker enhancements with cache versioning and cleanup.

serviceworker
cache

Development

Home page sections created with SEO in mind.

seo
homepage

Development

Demo booking form introduced.

forms
leads

Development

Footer links added.

ui
footer

Development

Clinician and Patient about pages added.

content
2025-07-26

Feature

Admins can now raise patient issues from the management screen.

issues
admin

Improvement

Invalid photos now highlighted with a clearer red border.

evaluations
ui
2025-07-25

Feature

Evaluation requests are no longer marked complete until �Treatment Planned�.

quotes
workflow

Improvement

Introduced new �generic� pose type.

evaluations
poses

Improvement

Evaluation request list can now filter items pending Treatment Planned.

evaluations
filters

Improvement

Adding estimate now scrolls to new item.

quotes
ui

Improvement

Company theme colour picker improved.

ui
theming

Improvement

Global culture info set.

globalisation
2025-07-24

Improvement

Clearer camera-blocked / permission-denied messaging.

camera
errors
2025-07-23

Feature

Manual emails can now include attachments directly from company file store. ??

email
filesharing
2025-07-22

Feature

Remote Assessments Impact: calculates key environmental factors based on completed remote assessments. ??

environment
analytics

Improvement

Dashboard layout modularised into 3 tabbed sections.

dashboard
ui
2025-07-21

Improvement

Major overhaul of patient quote acceptance journey (3-step flow). ??

quotes
ui
2025-07-20

Feature

Automated reminders now include full logging.

reminders
logging

Feature

Automatic resolution of patient issues after 10 days inactivity.

issues
automation

Improvement

Patient issue replies now contain resolution information.

issues
communication

Improvement

Issues can now be re-opened by patient (within 7 days).

issues
workflow

Improvement

Admins can recall unread patient issue messages.

issues
admin

Improvement

New automated issue-reply reminder.

reminders
automation
2025-07-19

Feature

statuspage

Bug

Duplicate filenames fixed for multi-file uploads.

files
storage

Development

Centralised route management introduced.

routing
architecture
2025-07-18

Feature

Admins can log in as a patient for troubleshooting. ??

support
admin
2025-07-17

Feature

Appliances now company-specific.

appliances
companies

Feature

SMS sending introduced. ???

sms

Improvement

Appliances can be managed and marked as base group.

appliances
management

Improvement

Email+SMS list pages introduced.

communications
listpages
2025-07-16

Improvement

New list component with consistent UI, pagination and search. ??

lists
ui

Improvement

Inactive evaluation requests now clean up related reminders.

evaluations
reminders

Development

IdentityRole replaced with ApplicationRole. ??

roles
auth
An unhandled error has occurred. Reload 🗙