Custom Roles, Idle Protection & a Tidier Clinical Inbox
A meaningful cycle: clinic admins can now define their own roles with exactly the permissions they want, idle tabs protect on-screen patient data and stop hammering the database overnight, the Clinical Inbox is faster to triage and friendlier to keyboards and screen readers, and Redirected documents finally land in the patient chart where you'd expect them.
Custom roles & a friendlier permissions picker
For a long time the only way to give a user the exact set of permissions you wanted was to use one of our built-in roles or ask us to add a new one. Two changes this release fix both halves of that.
- Build your own roles — A new Settings → Roles & Permissions page lets an admin create, edit, and delete custom roles alongside the built-in set. Custom roles slot into all the usual places — the user invite/edit pickers, the staff filter, the badge next to a name. Built-in roles are protected from accidental changes, and a custom role can be granted any clinical permission except the three admin-tier ones (manage organisation, users, billing), so it can never escalate to admin.
- A picker that fits on one screen — The flat checkbox list is replaced by one row per resource with Create / Read / Update / Delete pill toggles, so granting "can read referrals and update them but not delete them" is two clicks rather than scrolling a long list. Non-CRUD permissions that belong to the same group sit alongside the CRUD pills as labelled toggles — "View clinical note history" next to the clinical-notes pills, "Verify Medicare" and "Batch verify" next to the Medicare verifications pill.
- A more useful 403 — When someone hits a page they're not allowed to see, the error page now tells them the friendly name of the permission they're missing and which roles in your clinic currently grant it, so they know exactly what to ask their admin for.
Idle tabs now blur, pause, and disconnect
Any Clinically tab left untouched for 15 minutes will:
- Blur the screen behind a dismissable overlay, so a patient record left open isn't sitting visible on an unattended monitor.
- Pause all live pollers — the 2-second worklist refresh and the 30-second navigation badges stop firing while you're away, which means idle staff tabs no longer keep the database awake overnight.
- Disconnect the real-time socket so nothing's listening either.
Any keyboard or mouse activity restores everything instantly, and activity in one tab keeps your other open tabs awake too — so the blur isn't surprising you mid-task in a second window.
For now the overlay is dismiss-only (no re-auth prompt) because each tenant uses a different mix of password, passkey, 2FA, and SSO — a one-size-fits-all password prompt would be wrong for SSO/passkey-only users. We'll revisit a re-auth mode per auth scheme later.
Clinical Inbox: clearer, more accessible, and faster on big queues
A focused pass on the inbox rows and the workflow board to remove some long-standing rough edges.
- Status now reads at a glance, with no colour-only stripes — Document status is carried by an icon, a label, and a coloured badge rather than the amber left side-stripe. Same for the workflow board: priority is now a tinted card border plus a text "High priority" badge, so urgency isn't conveyed by colour alone. New Referral and Updated Referral type badges have been remapped off red/yellow so they no longer read like errors.
- Keyboard- and screen-reader-operable rows — Tab through inbox rows, hit Enter or Space to open one, and the actions column is properly labelled for screen reader users. The focus ring is visible throughout. Nested controls (the error checkbox, action menu) don't bubble up and open the document by accident.
- Per-page selector — Pick 10, 25, 50, or 100 rows per page from the inbox header. Your choice is remembered in the URL so the link survives a refresh.
- Bulk error cleanup on desktop — When errored documents are showing, you can select-all (or pick specific ones) and bulk-retry or bulk-delete them from the toolbar. Selections clear automatically when you change page or filter.
Redirected documents now file into the patient chart
The "Redirected" document type we introduced last release was being kept at the incoming-document level only. Now, when triage marks a document as Redirected and a patient has been matched, it's filed against that patient as a Clinical Document with a clear "Redirected" badge — so the chart shows the full paper trail without a separate referral or workflow item.
"Redirected" has also been tidied up as a system-only type: it no longer appears in the user-selectable document type radio during processing, or in triage's Change Document Type select. It's only ever set by the Redirect action itself.
Plus
- Refreshed error pages — 404, 403, and 500 have been redesigned to match the rest of the app — Clinically logo, restrained copy, a clear link to clinically.com.au/support. 404 sends you back to the dashboard; 500 explicitly states the issue has been logged and escalated.
- Workflow Templates — Admin Workflow Templates now has a sidebar link from the rendered admin nav and a template editor with full parity with the tenant workflow editor.
- Practice Inbox → Clinical Inbox handoff fills in more patient detail — When a practice-inbox document is redirected to the clinical inbox, patient DOB, address, and other fields are now extracted from the document text instead of being left blank. (Closes CLIN-30.)
- Multi-select detail panel — In the practice inbox, clicking a single conversation now clears any prior multi-selection so you actually see that conversation's detail rather than the "N selected" placeholder. (CLIN-26.)
- Onboarding chatbot — The ingestion setup step can now provision a Clinically inbound email address on its own when a tenant picks email-key ingestion, instead of asking you to contact support.
- Smaller fixes — Workflow board card view honours an explicit "default" setting; an XSS in workflow simulate via an attacker-controlled condition attribute has been closed; the workflow orphan-referral backfill now covers direct-path (triage-disabled) referrals sitting at Appointment Scheduling; referrer-step views resolve the correct ReferrerType enum namespace.