New features, improvements and fixes in each TherapyCRM release.
v1.0.33 ·
Ask agent for every role, conversation history, and a rebuilt Reports module
TherapyCRM 1.0.33 opens Ask agent to every staff member with exactly their own permissions and gives it the full set of TherapyCRM operations that the MCP connector already had — every read and every approval-gated change across clients, leads, scheduling, staff, billing, clinical, documents and messaging. Conversations are now saved, searchable, renamable and resumed after a reload. The Reports module is rebuilt around a month-to-date dashboard, a curated report library and a report builder with period comparison, and AI usage quotas and the agent model are now configurable per environment.
New features
Ask agent is available to every staff role: each request runs under the signed-in user's own permissions, so therapists, front desk, billing and managers can ask about and act on exactly what they can see in TherapyCRM
The agent now covers every supported TherapyCRM operation — clients, leads, appointments, staff and leave, billing, treatment plans and goals, clinical records, documents, forms, messaging and reports — and can look up the exact fields an action needs before proposing it
Conversation history: past chats are saved automatically, listed by date, searchable, renamable and deletable, recent conversations are offered on the welcome screen, and the last conversation is resumed after a reload
Reports module rebuilt with a month-to-date dashboard (sessions, money, growth and outcomes with change versus last month), a curated report library grouped by area, and a report builder with date presets, previous-period comparison, branch and therapist filters, and CSV/PDF export
New report sources for leads, invoices, funding, treatment plans, goals, home practice and session packages, with human-readable therapist and branch names
Improvements
Every change proposed by the agent is shown as an approval card that names the people and records involved; destructive actions are labelled and nothing runs until you approve
Agent approval cards are only shown for calls that can actually succeed — invalid or incomplete requests are corrected by the agent first
Information sent to the AI provider is minimized: people appear as reference labels that the app turns back into names, and contact details, dates of birth, government and insurance numbers and addresses are never sent
Appointment and record times in agent answers are shown in the practice's local time zone
AI usage limits are configurable per environment, with generous defaults for staging and test practices, and the agent model can be chosen independently of other AI features
The agent's prompt library shows only the prompts relevant to your role
Bug fixes
Reports previously showed internal ids instead of therapist and branch names and listed months out of order
Large agent lookups could be cut off mid-result, causing the agent to repeat the same query
Running or exporting a report through the agent no longer asks for approval, since it changes no data
v1.0.32 ·
treatment-plan editing fixes, clearer scheduling errors, and complete public-page snapshots
TherapyCRM 1.0.32 fixes the treatment-plan edit wizard so it loads the saved plan and actually persists edits, returns clear reasons when a schedule cannot be regenerated, derives a client's minor status from date of birth during lead conversion, standardises rate-limit error codes, and makes crawler snapshots of public pages wait for pricing data so search engines always see complete pages.
New features
Editing a draft treatment plan now opens the wizard pre-filled with the saved narrative and goals, and saving persists narrative changes and newly added goals instead of discarding them
Schedule regeneration now reports exactly which practice prerequisites are missing (for example no active treatment plans or no available staff) instead of a generic failure
Crawler snapshots of public pages are captured only after live data such as subscription pricing has loaded, with a bounded wait so a slow billing-provider response can never block publishing
Improvements
When converting a lead to a client, the minor flag is derived from the date of birth using the same rule the server enforces, so conversions no longer fail on a mismatched checkbox
Every rate-limit response now returns the standard JSON error envelope with the RATE_LIMIT_EXCEEDED code and a retry hint
Prerender logging now records when a snapshot was taken before a data section finished loading, making cold-start timing visible to operators
Bug fixes
The treatment-plan edit page opened an empty wizard and silently dropped edits to the plan narrative and goals
Regenerating a schedule for a practice without the required setup returned a 500 error instead of explaining what was missing
Lead conversion could be rejected because the minor checkbox did not match the date of birth
The first crawler snapshot after a deployment could show the pricing section in its loading state until the next scheduled refresh
v1.0.31 ·
safer practice setup, a self-checking defaults catalog, and a public site built for pediatric and autism therapy teams
TherapyCRM 1.0.31 hardens the unified practice-default system introduced in 1.0.30. Signup now fails safely before payment when the source catalog is incomplete, provisioning copies only active and published defaults, catalog identities and published document history are protected, and platform operators can see the exact catalog health that governs new-practice readiness. It also repositions the public website for pediatric and autism therapy teams (ABA, speech-language, occupational and physiotherapy), replaces unsupported marketing claims with the features that actually ship, adds discipline and funding landing pages, makes every public page readable by search engines and link previews, standardises API error responses, and stops billing pages from erroring when a Stripe customer no longer exists.
New features
The Setup Defaults console now reports whether the practice-0 catalog is ready for signup and lists every blocking catalog issue
Platform operators can edit the starter branch alongside its room while immutable catalog identities remain visibly protected
Published system document templates now create an immutable replacement version when their semantic content changes
New public landing pages for ABA, speech-language pathology, occupational therapy and physiotherapy practices, plus an Ontario Autism Program funding page, each describing only shipped capabilities and stating plainly what is not yet available
Public pages now carry per-page titles, descriptions, canonical links, social-sharing cards and structured data (organization, software application, FAQ and breadcrumb schema), with a generated sitemap and robots rules
Search engines and link-preview services receive fully rendered HTML for public pages through a background prerenderer, so page content and prices are indexable without executing JavaScript
Improvements
Signup validates therapy-to-billing mappings, starter-location linkage, published clinical documents, plan-template coverage, lead defaults, and email fallbacks before creating Stripe checkout or tenant data
Provisioning and repair now copy only active defaults, and only active published document templates, while preserving tenant deactivations as customization warnings in health mode
Therapy types and paired billing services are activated, updated, and deactivated atomically, including billing-mode synchronization
Practice-0 operations consistently accept reserved zero and negative identifiers through both HTTP and MCP contracts
Landing-page copy rewritten to reflect the product as built: session data collection, versioned treatment plans, parent portal, funding tracking and billing; claims about artificial intelligence, machine learning and outcome improvement were removed
Support and attendance-app pages rewritten in customer-facing language with accurate availability statements; attendance-app screenshots are 75% smaller and lazy-loaded
Every API error response now includes the standard success, error code, message and correlation-id fields, including legacy handlers that previously returned only a message
Bug fixes
A stale lead-status id can no longer clear the current default, and the sole active default cannot be unset or deactivated
Inactive therapy types, quick phrases, lead tasks, and unpublished documents can no longer be provisioned as active tenant defaults
Lead-task templates now deactivate instead of being hard-deleted, and their repair identity cannot be renamed
Removed the remaining runtime lead-status constants so practice 0 is the only operational source of truth
Provisioning status caches are invalidated after catalog changes and Repair-all now reports unresolved practices
Links from a public sub-page to a landing-page section (for example Pricing) landed at the top of the page instead of the section
Billing history, pending invoices and subscription invoices pages showed errors when the stored Stripe customer had been deleted; they now show the same empty state as a practice with no billing set up
v1.0.30 ·
treatment-plan import and provenance, and reliable new-practice setup
TherapyCRM 1.0.30 closes the treatment-plan authoring gaps (import from an external plan document, plan provenance, a consent gate, and stable goal ordering) and overhauls new-practice provisioning: every setup default now comes from one managed catalog, existing practices can be repaired without touching their own data, and platform operators get a full Setup Defaults console.
New features
Treatment plans can be drafted from a pasted external plan document: the AI import proposes narrative fields and contract-valid goals for clinician review before anything is saved
Treatment plans now record provenance and enforce a client-consent gate before clinical work proceeds, and goals keep a stable, explicit order
Platform operators get a Setup Defaults console covering every new-practice catalog: therapy types with paired billable services, document templates, quick phrases, lead sources, lead statuses, email defaults, and the starter branch and room
The platform Practices view now shows each practice's provisioning health with one-click Repair and Repair-all actions that add any missing setup data without ever modifying a practice's own records
Improvements
New-practice provisioning is unified around the managed system catalog: lead sources, lead statuses, and email notification defaults are now seeded, retried, and verified by the same guarded pipeline as every other default instead of by hidden database triggers
Every provisioning step is an additive top-up, so defaults added after signup reach existing practices on repair while tenant customizations are always preserved
The signup readiness gate now also verifies lead sources, lead statuses, and email notification settings before a checkout is confirmed
A transient email-provider outage can no longer stall an already-provisioned signup: the welcome email is best-effort on both confirmation paths once provisioning is verified
Bug fixes
Fixed editing of system default email templates, which failed for every catalog row because the catalog's reserved ids were rejected by the id guard
Repaired historical provisioning drift: practices created before earlier fixes were missing billing catalogs, plan-template mappings, or clinical preset libraries and can now be brought fully up to date
v1.0.29 ·
invoicing for discharged clients and release pipeline reliability
TherapyCRM 1.0.29 allows invoices to be raised for inactive and discharged clients so final and late billing is fully supported, documents the confirmDestructive requirement on the affected release records, and hardens the automated release and security-scan pipeline.
New features
Invoices can now be created for clients in any lifecycle status, so final or late billing for inactive and discharged clients is fully supported
Improvements
The staging release gate now waits up to 60 minutes for the in-flight staging deployment, removing the manual rerun previously needed on most releases
Billing contract tests now assert the reserved-status invoice eligibility rules explicitly
Bug fixes
Fixed the daily scheduled secret scan failing every run because it scanned a shallow clone; it now checks out full history
v1.0.28 ·
client lifecycle restoration and records safeguards
TherapyCRM 1.0.28 restores a supported way to bring an inactive or discharged client back into active care, tightens how client statuses may change, and extends legal-hold protection to every document deletion path.
New features
A dedicated client lifecycle action reactivates, deactivates, or discharges a client in one step, available from the client list bulk action and the practice API
Reactivation also repairs older client records that were left in a mixed soft-deleted state and could previously not be edited at all
Improvements
Ordinary client edits may only move status between the reserved lifecycle statuses; returning a client to the lead pipeline stays exclusive to the dedicated revert-to-lead action
Saving a client profile no longer fails when an added guardian row was left empty
Bug fixes
Fixed the client list bulk Change Status action failing for inactive and discharged clients
Fixed ordinary edits being able to demote an active client to a lead status
Breaking changes
Destructive MCP operations (deletes, cancellations, legal-hold release) now require an explicit confirmDestructive: true field supplied after the user confirms the action. MCP clients that previously called destructive operations without it receive a validation error instead of a silent execution; the TherapyCRM app UI adds the field automatically via its confirmation dialog.