Skip to main content

Changelog

Stay up to date with our latest changes and improvements.

New calendar

The calendar has a new layout. Every appointment has a new card that shows its status at a glance. You scroll sideways through the days, collapse both sidebars and choose which hours you see, the contrast, the grid lines, the weekends and whether patient names are visible. This cycle we also fixed over fifty issues, from invoicing to integrations.

Appointment cards

Seven appointment cards: a first appointment with a star, an arrived patient, a patient running late, an appointment without an appointment type, a no-show, a cancelled and a deleted appointment
The new appointment cards, with their statuses and markers

The name sits at the top of the card, the time below it, and a narrow bar on the left shows the appointment's colour. Markers sit in the top right, together with the status icon once an appointment has moved past booked. A short appointment fits on a single line.

A cancelled appointment is hatched and struck through, a deleted one has a dashed outline and is struck through, and a no-show is red. Status icons look the same everywhere in Flux.

In the Week and 2 Weeks views the columns are narrow. There the card keeps the status icon, the time and the markers in view first, and leaves out the name when there is no room for it.

New on the card:

  • Patient's first appointment: a star on a patient's first appointment, so the front desk can give that patient extra attention.
  • No appointment type selected: a warning icon on an appointment with a patient but no appointment type. When you save one, Flux asks if you are sure. 'Save anyway' goes ahead.
  • Running late: a new status for a patient who has let you know they will be late.
The message No appointment type: This appointment has a patient but no appointment type. Are you sure you want to save it without an appointment type? With the buttons Cancel and Save anyway
The question when you save an appointment with a patient but no appointment type

Dragging appointments is smoother, and the calendar responds straight away to the first click, scroll or drag after opening.

Continuous

Next to Day, Week and the other views there is now Continuous. You scroll sideways through the days instead of paging week by week. The day header with week numbers stays at the top.

The Day view now scrolls sideways too when you select many practitioners. Columns no longer get so narrow that appointments become unreadable.

Full screen

You can now collapse the left sidebar too, with the arrow at the left of the header or with [. Collapse the right panel as well, with ], and the calendar fills the whole screen. Flux remembers your choice on this device.

Display

Under Display above the calendar:

  • Privacy mode: the card shows the appointment type instead of the patient's name, without birthday and description. For when a patient can see your screen.
  • Weekends: hide Saturday and Sunday in the Week, 2 Weeks and 5 Days views. If a hidden weekend holds appointments, a narrow column shows how many. Click it to show the weekend. With 'Start on today' on, the 5 Days view now moves exactly five days, without skipping any.
  • Show availability: turn off the available times and locations above the columns.

In your profile, under Calendar settings, you set the visible hours. The calendar then shows only those hours, so you no longer scroll past the night. If an appointment falls outside them, the calendar extends so you still see it. To change the hours on one device, use 'Day starts at' and 'Day ends at' under Display.

Under Settings → User → Display you turn on High contrast. Grid lines, off-hours shading, column headers, free slots, appointments, location strips and the current-time line then become easier to see. Only the calendar changes, and the setting applies on this device.

Also in your profile, Grid lines sets how often a line is drawn in the calendar: every hour, or every 30, 15 or 10 minutes.

  • New (16)
    • New appointment cards with clear statuses
    • Continuous view: scroll sideways through the days
    • High contrast for the calendar schedule
    • Privacy mode that hides patient names in the calendar
    • Hide weekends in the Week, 2 Weeks and 5 Days views
    • Collapse the left sidebar, for a full-screen calendar
    • Running late status for an appointment
    • Marker for a patient's first appointment
    • Warning for an appointment with a patient but no appointment type
    • Visible hours: the calendar shows only the hours you set
    • Grid lines every hour or every 30, 15 or 10 minutes
    • A profile page for every user, through 'My profile' or 'View profile'
    • Send PREMs in bulk for treatment processes that can still have one
    • SIRSI questionnaire
    • FABQ can be sent as a questionnaire
    • Red flags specific to speech therapy
  • Shortcuts (4)
    • P turns privacy mode on or off
    • [ collapses or expands the calendar's left sidebar
    • ⌘ + [ collapses or expands the sidebar with the main menu (Ctrl + [ on Windows or Linux), instead of [; this also works while you are in a text field
    • When you click an appointment, the arrow keys carry on from that appointment's day
  • Improvements (35)
    • Availability and locations above the calendar can be turned off
    • More space between the top bar and the calendar header
    • A faster calendar: less memory and smoother dragging
    • Closed treatment processes no longer show up when choosing one for a later appointment
    • Appointments in the calendar feed (.ics) are marked as private
    • A chosen patient shows in the appointment form straight away
    • A patient's appointment overview loads faster
    • Better and faster patient name search
    • The patient's phone number on worklist items for an open treatment process without an appointment
    • The close action was removed from the worklist
    • Filter the medical feed on favourites
    • Diagnosis codes on the body location
    • Admins can edit treatment plan templates
    • A default responsible practitioner for a treatment process
    • Updated PREM requirements
    • Treatment processes without treatments are no longer sent to Nivel and LDF
    • Clearer, more consistent terms throughout Flux
    • Better grammar for the location placeholder in email templates
    • Copy an invoice number with one click
    • An overview of claims per diagnosis
    • Crediting only the rejected lines of a collection invoice marks both the credit and debit invoice as handled
    • The appointments table opens with the most used settings, without a default filter on appointments without an invoice
    • Filter revenue on blocked appointments and treatment processes
    • Filter and group on the diagnosis body location
    • A companies column in patient data
    • Hours in the planning analysis with one decimal
    • Practitioners are sorted better on the analysis page
    • An option to show appointment duration in hours
    • Choose in the settings which revenue allocations are active
    • Excel exports from the data explorer and Analysis are built on the server
    • Mediquest login details are verified
    • GDS801 validation updated to Vektis u29
    • Service code list for chiropractors
    • PDF document classification on a newer AI model
    • Technical maintenance
  • Fixed (50)
    • The calendar ignored the first click, scroll or drag after opening
    • The 5 Days view skipped two days with 'Start on today' on and weekends shown
    • Day view columns became too narrow with many practitioners
    • A practitioner's pop-up in the calendar got in the way
    • The tooltip on a user's avatar in the calendar stayed after a click
    • The practitioner select was invisible when every user is a planner
    • A planner was selected while only practitioners should be shown
    • The online planner sometimes showed availability where an appointment was already booked
    • A patient could appear twice in an appointment proposal
    • Times and buttons in appointment suggestions were cut off
    • The notification setting for appointment proposals did not work for automatically accepted proposals
    • The appointment overview email could not be viewed
    • The treatment count on the patient card included an intake until it was invoiced
    • Resending a questionnaire did not work without a treatment process
    • Placeholders were sometimes taken from the wrong update
    • The consent checkbox for direct mail disappeared while it was still required to send
    • An error on invalid content in the text editor
    • Searching AGB healthcare professionals gave inconsistent results
    • Searching the ZorgMail address book with special characters failed
    • Removing a Physitrack connection failed when it was already gone
    • An error processing a response to a personal data request
    • An invoice was not always created when an appointment was completed
    • Automatically merging invoices gave a different result than merging by hand
    • Insurance coverage could be out of date after a COV check
    • Invalid correction invoices counted as revenue
    • A user AGB code was required on a product invoice, even when not needed
    • A patient's default invoice type was not saved
    • Some invoice dashboard figures were not filtered by user
    • The subscription invoices tab did not load
    • An error while finalising an invoice went unreported
    • Yuki missed some payments
    • Twinfield: errors on an expired or unreachable connection
    • Mollie: errors on an unknown payment
    • An error when a healthcare provider had no KvK number on a date
    • The last day was cut off in some analyses
    • A doctor could not open the analysis page
    • Analysis data was not always updated
    • Analysis data for invoice lines stopped after the first page
    • Patient data in Analysis was not available offline
    • Worked hours per day gave an error
    • Opening a page from the login page could freeze the tab
    • Features outside your plan were reachable through a direct link
    • When you edited a patient from the patient list, the patient was missing from the navigation at the top
    • The invitation email had no button
    • A refused change on the email settings and salutation pages went unreported
    • An import was recorded in a user's name instead of the system's
    • A visual glitch in filters
    • Typos in Flux
    • User details were not refreshed properly after changing practice settings
    • Several technical issues fixed

Flux Analysis

Good decisions begin with the right question. How is capacity developing? Where is drop-off occurring? Which locations, practitioners, or appointment types need attention? And what is really behind that one striking number on your dashboard?

With Analysis, Flux gives you a powerful new way to answer those questions yourself. Business Intelligence is now Analysis: a place where you turn practice data into insight that helps you make decisions.

Not only to look back, but above all to steer ahead.

From a signal to an answer

A dashboard shows you what is happening. Analysis helps you understand why.

Do you see appointment numbers changing, a quieter schedule at one location, or more cancellations? Open the result and investigate what is behind it. You start with the same context as your dashboard, then build from there around the question that matters to you.

Understand what is moving in your practice

Analysis is built for the questions that arise in everyday work. Not just for reporting on the past, but for the conversations and decisions that matter today and tomorrow.

Use Analysis, for example, to see:

  • how capacity is developing by location or period;
  • where differences emerge between practitioners, appointment types, or patient groups;
  • whether cancellations and no-shows are part of a temporary pattern or something more structural;
  • how workload, capacity, and activity relate to one another; and
  • where a small adjustment in planning or ways of working could make the biggest difference.

You can view and compare a result from different angles. That makes visible what you might otherwise only discover much later: a pattern that is building, a difference between teams or locations, or an approach that is clearly working.

Start a better conversation with your team

Team meetings are stronger when everyone starts from the same view.

Instead of discussing how busy things ‘feel’, you can see together how the previous weeks have gone. Instead of guessing where there is room in the schedule, you can investigate where capacity is available. And when something stands out, you can decide together whether action is needed and what that action should be.

Analysis gives care providers, planners, and practice owners a shared starting point. It helps connect experiences from day-to-day work with what the data shows. That does not make decisions less human; it makes them better informed.

Your practice, your question

Every practice works differently. That is why Analysis does not start with one fixed report, but with the question that matters right now.

Want to know how workload is developing? Investigate it. Want to understand why a number is changing? Go a layer deeper. Want to discuss a trend in a monthly meeting? Bring exactly that context into view.

Analysis gives you the freedom to view practice data from the perspective that helps you move forward. From planning and capacity to care, operations, and financial insights.

From insight to next step

Sometimes an insight is the beginning of a conversation. Sometimes it is a reason to make a change. And sometimes you want to take a result into a meeting or work with it further.

That is why you can export an analysis directly as a CSV or Excel file. You take exactly the selection you investigated with you, including its breakdown and totals. If you then need the individual records behind a result, you can continue in Data Explorer. The flow is simple: first understand what is happening, then decide what is needed.

Analysis is here

With Analysis, Flux takes a major step forward. You no longer have to wait for a standard report or a separate export to understand what is happening in your practice.

Start with a signal. Ask the question. Discover what is behind it. Open Analytics, select a dashboard card, and run your practice with insight. Analysis: from data to direction.

Easy and secure sign-in

Login made simple in Flux

A Flux account gives access to confidential information about patients, treatments, appointments and business operations. Securing that account is therefore an important part of handling health data carefully. Information security is built around three principles: data should only be accessible to authorized people, it must remain accurate and complete, and it must be available when a care provider needs it. These principles are also known as confidentiality, integrity and availability.

An insufficiently secured account can affect all of these areas. An unauthorized person could view data, change information or disrupt access to an account. That is why we have further strengthened sign-in with support for passkeys, better protection against automated login attempts and more insight into the security status of user accounts.

Sign in with a passkey

Flux now supports passkeys. With a passkey, you sign in through the security of your own device, for example with face recognition, a fingerprint or the passcode of your phone or computer. You do not need to enter a traditional password. The secret key stays on your device and is not shared with Flux.

Passkeys are less vulnerable to phishing because they only work for the website or application they were created for. They cannot easily be guessed, intercepted or reused for another service. At the same time, they make daily sign-in faster because you use the same security you already use to unlock your device.

You can activate a passkey through Settings and then User. Under the security settings, you can now add a passkey alongside two-factor authentication. Depending on your device and password manager, a passkey can be synchronized between devices such as your laptop and phone.

Always enable 2FA

A password alone does not provide enough protection for an account with access to health data. Passwords can be stolen through phishing, malware, a data breach or because the same password is also used for other services. With multifactor authentication, usually called MFA/2FA, a second check is required in addition to the password. A stolen password therefore does not immediately give access to the account.

We therefore recommend enabling MFA/2FA or, where possible, adding a passkey for every user account. Do not use shared accounts either: every employee should have their own account. That keeps it clear who accessed information and makes it possible to adjust permissions when an employee changes role or leaves the organization.

Passkeys make secure sign-in easier and can replace a separate verification code in many situations. Always check which security method is active for the account. Not every device or browser supports passkeys in the same way, which means MFA/2FA remains an important additional security layer.

Better protection for the sign-in screen

The sign-in screen is now better protected with smarter CAPTCHA security and improved rate limiting. CAPTCHA helps distinguish real users from automated traffic. The check is mainly used when a login attempt shows signs that may indicate abuse, so regular users have to take as few extra steps as possible.

Rate limiting restricts how many login attempts can be made within a certain period. This helps protect against attacks where large numbers of passwords are tried automatically. After many failed or suspicious attempts, following login attempts can be temporarily delayed or blocked.

These measures work together with passwords, MFA/2FA and passkeys. By combining multiple security layers, an account remains protected when one measure is bypassed.

More insight into account security

In user management, the MFA/2FA status of user accounts is now clearer. Administrators can therefore check more quickly which accounts are additionally secured and which users still need to take action. This is especially important for accounts with administrator rights, because these often provide access to more data and settings.

We recommend that administrators check this status regularly and actively remind employees when MFA/2FA has not yet been enabled. Also check whether accounts of former employees have been closed and whether users still only have access to the parts they need for their work.

Good account security is not a one-time setting, but a recurring part of information security. Flux provides the technical options for this, but real protection only happens when organizations and users apply them consistently.

  • New (7)
    • Support for signing in with passkeys
    • Passkey autosuggestions on supported devices and browsers
    • Monthly export for Zorgtopics
    • Extra templates in the referral-letter picker
    • Extra gender option for online appointments
    • Insight into MFA/2FA status in administration
    • Activities Meter questionnaire
  • Improvements (8)
    • Smarter CAPTCHA security on the sign-in screen
    • Better rate limiting for login attempts
    • More reliable passkey configuration across different environments
    • Easier bulk rate creation
    • Better cleanup of old invoices from Twinfield synchronization
    • Further improvements to BI, filter and interface building blocks
    • PCM questionnaire expanded with ODDI score
    • Continued development of revenue insights, dashboards and exports
  • Bugs (5)
    • Fixed an issue where automatic logout after inactivity did not work correctly
    • Fixed multiple error messages around patient data and exports
    • Fixes for BI overviews and global date filters
    • Fixes for integrations and synchronizations, including Twinfield and Nivel
    • Fixed several regressions in frontend behavior and forms

Update spring 2026

Over the past months we have shipped a lot of work across Flux. Some of it is immediately visible in daily workflows: better planning, clearer invoicing, more filters, extra questionnaires and more useful overviews. Other improvements sit behind the scenes: more stable integrations, better exports, newer technical foundations and stronger error handling.

This update brings together the largest improvements from the spring.

More insight into your practice

We expanded several overviews so you can find the right information faster. In the data explorer you can now filter more precisely by start date, diagnosis code and patient information. We also added filters for invoices, subscriptions, questionnaires and patients who require postal invoices.

Reporting received a lot of attention, especially the Nivel export. We reviewed and improved the export, including new indicators, more referral coverage and better handling of questionnaire data. The LDF export was improved as well by using precomputed aanspraak codes.

Several overviews are now sorted more logically, including insurer contracts, appointments that still need to be invoiced and lists of letters and documents.

Planning and waiting lists

The planner received several day-to-day improvements. We added hotkeys, better warnings for unavailable locations, a removable side panel and horizontal calendar scrolling. When copying and pasting appointments, Flux can now suggest a better location based on availability.

Waiting lists were improved as well. Existing waiting list descriptions are easier to update, waiting lists can be removed and duplicate appointments on the same day are handled more clearly through worklist items.

Appointments without consults now create worklist items, and those items were refined further. This makes missing consults easier to catch without manually checking lists.

Finance and accounting

Many small and large finance improvements landed in this update. Invoice, payment and declaration statuses are clearer. We added extra filters, made POS payments easier to reach and improved visibility for patients without an email address or without a sent invoice email.

The accounting integrations received a lot of maintenance. We worked on Twinfield, Exact Online, Moneybird, Yuki, Payt, Mollie and GGN. Synchronisation is more stable, errors are stored more clearly and webhook handling has improved.

We also worked on automatic Twinfield syncing, better Exact Online master data, Moneybird webhooks and pruning failed accounting sync attempts. For users, that means less manual recovery work and more predictable accounting flows.

Care content and documents

The medical feed and letters received multiple improvements. Treatment trajectory names or conclusions can now be included more consistently in letters, evaluations and final evaluations. Document names can be edited, and Google Drive documents are easier to attach to a patient.

For ZorgDomein, we improved patient creation, phone number handling, GP information and duplicate prevention. We also updated flows around AGB Raadpleegdienst v3, CZN, Zorgtopics and Qualiview.

We also worked on templates, document rendering and PDF regression testing. This helps catch differences between editor content, templates and generated PDFs earlier.

Questionnaires

We added many questionnaires and improved existing questionnaire flows, so questionnaires now have their own section.

Searching for questionnaires is also easier thanks to aliases. Questionnaires can now be found through short names, common variants and abbreviations, such as SHIM, IIEF-5 and short, mini or quick naming variants.

We also fixed bugs in scoring, exports, completed questionnaire handling, intake questionnaires and medical feed filters. This included work around STarT MSK, ACL-RSI, Constant Score, PSK, NPRS and Nivel exports.

Technical stability and security

A large part of this release happened under the hood. We updated dependencies, improved pipelines, cleaned up tooling and added more regression testing. The frontend foundation was strengthened with new primitives for popovers, menus, listboxes, tooltips, presence and interactive component variants. This makes the interface more consistent and easier to extend.

Error handling and logging also improved. More handled exceptions now create worklist items, webhook failures are easier to inspect and domain messages have better storage and ordering.

  • Questionnaires
    • WRITIC questionnaire.
    • WHO-5 questionnaire.
    • IPSS as a sendable questionnaire.
    • SF-MPQ questionnaire.
    • EFA questionnaire, Elbow Functional Assessment scale.
    • Osteoporosis questionnaires: PROMIS-10, osteoporosis baseline questionnaire, osteoporosis questionnaire and FES-I short version.
    • CBBDQ5-12 and CBBDQ12-18 questionnaires.
    • Rivermead Post Concussion Questionnaire.
    • VISA-P and VISA-A questionnaires.
    • FES-I questionnaire.
    • NESA Clinics questionnaires: FSDSR, DSQ-PEM, FunCap27, DN4, PSS and PDI.
    • DASH questionnaire.
    • RA questionnaires: HAQ-DI, RA-QoL, WPAI, IPAQ-SF, PSG and NRS fatigue.
    • Questionnaire aliases, including SHIM/IIEF-5 and short/mini/quick variants.
    • Nivel export indicators for questionnaires.
    • STarT MSK response mapping.
    • ACL-RSI scoring.
    • Constant Score calculation.
    • Nivel export handling for questionnaire kinderprom.
    • PSK patient questionnaires require all three questions.
    • QuestionnaireIsAlreadyCompletedException.
    • QuestionnaireIsAlreadyCompletedException.
    • Referral ID mismatch with questionnaire response request.
    • Filter for specific questionnaires on the medical feed.
    • User manual improvements for Intake Questionnaires.
    • Gracefully handle questionnaires in schemas the user can no longer access.
    • NPRS questionnaire version 1.1 missing Nivel codelist mapping.
    • Questionnaire response request disappears after selecting it in an appointment.
  • Improvements

    Planning, calendar and waiting lists

    • Worklist item for appointments without consults.
    • Improve AppointmentWithoutConsult worklist item.
    • Change description of existing waitlist entry.
    • Remove waiting lists.
    • User setting for drag-and-drop timestep.
    • Removable side panel and horizontal calendar scrolling.
    • Suggest a new location based on availability when copy-pasting appointments.
    • Show unavailable location warning when manually editing appointment time.
    • Drag and drop appointments across practitioner calendars.
    • Show more relevant therapist results when booking an appointment.
    • Add expiry date for worklist item double appointments on the same day.
    • Start from the last entered time when setting availability.
    • Rename availability page from settings to availability.
    • Use a more neutral color for notes without appointment type.
    • Custom patient label planner warning.
    • Add practitioner to iCal link.

    Finance, invoicing and accounting

    • Undelete referrals from the patient finance tab.
    • Filter separate invoices by practitioner.
    • Filter by "is not" practitioner X.
    • Add appointment type column to the packages overview.
    • Automate Twinfield syncing.
    • Sort insurer contracts more logically.
    • Show partially approved rate for partially approved lines.
    • Fix Payt webhook and add webhook test trigger.
    • Clarify sending invoices to multiple email addresses.
    • Customize recall email subject.
    • Add filters for patients without email and without sent invoice email.
    • Add POS payment option to the invoice page "More" menu.
    • Also change start date when aanspraak start date changes.
    • Subscribe to Moneybird webhooks.
    • Add bank account name to default invoice email.
    • Process more Exact transaction lines.
    • Improve more Exact Online master data.
    • Add WERO to button text.
    • Add missing AGB error details.
    • Add option to always enable VAT on company invoices.
    • Prune failed accounting system sync attempts.
    • Add filter for subscription table on patient page.

    Data, reporting and exports

    • Nivel v12.
    • Export treatment trajectory.
    • Rework Nivel export.
    • Include more relevant referrals in Nivel export.
    • Use precomputed aanspraak codes in LDF export.
    • Add diagnosis code filter in referral data explorer.
    • Filter referrals by start date in data explorer.
    • Add created_at DataView filter for patients.
    • Filter patients requiring postal invoices.
    • Allow listing patients for company.
    • Make patient UUID non-nullable.
    • Create new tenant template with additional base templates.

    Care content, documents and communication

    • Allow editing healthcare type for imported referrals.
    • Investigate whether the email template editor can better reflect example emails.
    • Add table support to PortableText.
    • Add treatment trajectory name or conclusion to medical feed item letter.
    • Add treatment trajectory name or conclusion to evaluation letter.
    • Add treatment trajectory name or conclusion to final evaluation letter.
    • Add GPE to evaluation.
    • Add creation time to letter overview.
    • Make consult creation from feed item consistent with page flow.
    • Make document names editable.
    • Make it easier to add Google Drive documents to a patient.
    • Remove CZN actions if the user does not have CZN.
    • Do not show missing referral warning in calendar for future intake.
    • Upgrade AGB Raadpleegdienst to v3 API.
    • Clarify documentation for when an integration party must be contacted.
    • Include phone number and GP information when creating patients from ZorgDomein messages.
    • Show deleted letters.
    • Redo SOAs.
    • Stop using Fysiotherapeutische nazorg.

    Website, UI and platform

    • New app logos.
    • Usable Devcontainer workflow.
    • Export NEN logs to a shared place.
    • Upgrade Postgres to 18 in pipelines and dev environment.
    • Add locale switch to command menu.
    • Improve modal icon alignment for long text.
    • Add back button when creating a new invoice.
    • Pin Node/npm versions everywhere.
    • Update ADRs.
    • Small FRM scraper fixes.
    • Prestatiecode fuzzy search on tariffs.
    • Setup for Claude Code web.
    • Sanity.io content graph for blog.
    • Improve Claude Code context.
    • Reduce website spam with a honeypot.
    • PDF rendering regression testing.
    • Handling for URLs without #.
    • PHPStan rule for command identifier format.
    • Extend explanation for auto_accept_proposal setting.
    • Improve recurring appointment performance.
    • Harmonize domain message storage.
    • Resolve service worker issues.
    • Add ordered event_id to domainmessage tables.
    • Upgrade Vue Router to v5.
    • Replace wkhtmltopdf.
    • Upgrade to Zod v4.
    • Small oxlint cleanup.
    • Tooltip wrapper around Tooltip primitive.
    • Native Popover-backed Menu primitive.
    • Rename SortedRegistry.refresh() to revalidate().
    • Menu / Dropdown wrapper around Menu primitive.
    • Update backend JS build tools.
    • Enable TypeScript noUncheckedIndexedAccess.
    • Storybook dark-mode toolbar theming.
    • Listbox primitive.
    • Typed variant recipes for styled interactive components.
    • Required flag for date of birth field.
    • Add storybook-static to .gitignore.
    • Tooltip primitive.
    • Platform-gap helpers for interactive primitives.
    • Presence primitive for overlay exit animations.
    • Native Popover / Overlay bridge primitives.
    • Stabilize website CI E2E and Lighthouse gates.
    • Fix MetaLink typing.
    • Sort frontend imports.
    • Storybook interactive playground for UI primitives.
  • Fixed bugs

    Questionnaires, medical data and exports

    • Referral ID mismatch with questionnaire response request.
    • STarT MSK answer score mapping.
    • Constant Score calculation bug.
    • Long PSK text breaks intake.
    • Response is not a valueCoding array.
    • ACL-RSI scoring.
    • PSK should be empty for a new referral.
    • Diagnosis snippet not working in intake.
    • Placeholders [GP name] and [reason for visit] often do not work.
    • Zorgtopics data exchange fix.
    • Zorgvergoeding support for unlimited amount.
    • Referral zorgtopics_code is required.
    • Qualiview mobile number required.
    • PSK patient questionnaires require all three questions.
    • Nivel export could not process questionnaire kinderprom.
    • Bechterew diagnosis code is broken.
    • Questionnaire response request disappears after selecting it in appointment.
    • Questionnaire already completed exception.
    • Questionnaire already completed exception.
    • Nivel export missing data in streaming mode.
    • Nivel export broken.
    • LDF issues.

    Finance, declarations and payments

    • Could not declare invoice.
    • Race condition with GDS collection invoice.
    • Send email for invoice type not implemented / uncollectible.
    • InvoiceUpdatedEvent max attempts exceeded.
    • NoPrestatiecodeServiceForCareType: podiatrist.
    • Company division does not appear correctly on invoice.
    • Mollie no terminal ID specified.
    • Mollie payment token not found.
    • Prestatie codelijst not found.
    • No VAT code found for healthcare provider.
    • Refunds are not implemented.
    • Mollie no terminal ID specified.
    • Driver [mollie] not supported.
    • Previous declaration return message shows first instead of last.
    • Mollie payments do not work for uncollectible invoices.
    • Reminder email should only contain outstanding amount.
    • Invoice entry created for wrong referral not changed after refresh.
    • InvoiceHasIncorrectStatusException.
    • Mollie application fee amount too high.
    • Mollie application fee amount too high.
    • Product description not filled after code selection.
    • InvoicePDFGenerated unreliable finalize/event.
    • Missing invoice_total_unpaid.
    • ReconcileInvoicePaymentsForInvoiceCommand invoiceNumber int/string.
    • SyncInvoiceJob max attempts exceeded.
    • ProductNotFoundException.
    • DSW contract tariff fix.
    • Exact server error 500.
    • Missing healthcare_provider_bank_account_name.
    • ImportJournalEntriesFromAccountingSystemJob max attempts exceeded.
    • Merge collection draft invoices same contract exception.
    • InvoiceNotFoundException.
    • No VAT code found for healthcare provider 148.
    • Collection draft invoices should not merge invoices with different contracts.
    • Exact Online payment syncing is not properly disabled for collection invoices.
    • Moneybird external sales invoice not found.
    • Twinfield date outside period.
    • MoneybirdNotAuthenticatedException.
    • Chargeback received for unknown invoicePayment / Mollie transaction.

    Integrations, messages and external services

    • COV check unknown error / could not connect to host.
    • SoapFault: Could not connect to host.
    • COV check does not show error message.
    • SoapFault: Error Fetching http headers.
    • COV Check does not display error message.
    • Mediquest SOAP error value must be greater than zero.
    • Twinfield undefined array key twf.clusterUrl.
    • Add logging to GGN services.
    • Moneybird contacts 422.
    • Yuki sales taxcode cannot be found.
    • Mollie payment method not available.
    • Exact message expired.
    • Yuki daily limit exceeded.
    • Exact unexpected response exception.
    • Undefined column context of referrals.
    • Qualiview respondent must have insurance.
    • install-webhook too many arguments.
    • ZorgDomein create flow double creation / autofill.
    • FileNotReadyForDownloadException.
    • ALB routing fix.
    • Archived patient causes generatebatch crash.
    • PerformGeneralAppointmentImportJob max attempts exceeded.
    • ExecuteOutgoingWebhookJob max attempts exceeded.
    • AxiosError request failed 403.

    Planning, patients and workflow

    • Deceased filter in patient list broken.
    • Some patients are not deduplicated.
    • Appointment notifications refinement.
    • Tried to remove unpersisted appointment.
    • Deceased icon disappeared.
    • PatientNotFoundException.
    • Deceased icon not yet visible for old cases.
    • Appointment type not filled in appointment tab.
    • Planner role has no permission to check duplicate patients.
    • Worklist permissions incorrect for Flux basic.
    • Zorgmail radio button disabled for invalid address.
    • Cannot remove date of death.
    • Show appointment for planner.
    • Copy/paste availability awkward flow.
    • Edit description waitlist entry broken.
    • Patient create button stays loading.
    • Month sometimes not visible on appointment with invoices filter bar.
    • Many availability slots cause scrollbars / disappearing name.
    • Archived patients appear in duplicate worklist item.
    • Adding twin patients impossible due to duplicate check.
    • NoReferralForTenantAndIdException.
    • Cannot edit recall.
    • Import examples dialog stuck on patients.
    • ZodError.
    • NoReferralForTenantAndIdException.
    • Referral already attached.
    • Form needs idle/view state to start editing appointment.

    Interface, content and technical errors

    • Tab titles visible through snippet list.
    • NotFoundError: The object can not be found here.
    • "Appointment" does not fit in English new invoice flow.
    • Locale switcher bug.
    • Expected coding, got number.
    • Visual bugs in website header.
    • RangeError: position out of range.
    • Object Not Found Matching Id update.
    • UUID validation bug.
    • Range is empty.
    • ZodError.
    • Missing translations.
    • DecryptException: invalid payload.
    • Multi-select incorrect border color.
    • Invalid time zone ETC/UNKNOWN.
    • PDO::ATTR_PREFETCH error for NEN logs in data explorer.
    • Merge simple duplicates incorrect command identifier.
    • Value is not an integer.
    • Failed to serialize SendQueuedNotifications / Closure not allowed.
    • Race condition with tenant migrations.
    • Request failed with status 403.
    • Whitespace in tiptap template differs from PDF.
    • Sent mail icon is clock instead of paper plane.
    • Rare login problem.
    • Missing translation admin.apps.data_exchange.
    • "arts" should be "behandelaar".
    • Email must have To/Cc/Bcc header.
    • Manuele behandelingen shows NaN in Zorgvergoeding modal.
    • ZodError.
    • Autosave interaction with appointment/referral selection for medical update.
    • Replace Laravel Excel as import engine.
    • NULL non-null expected.
    • Cannot cancel form in idle state.
    • GenderEnum backing value bug.
    • PHP incomplete class.
    • Error payload in accounting system failures.
    • Recall email template is empty.
    • Disable batch download button for collection invoice in invoice table.
    • NULL expected string.
    • FileNotFoundException invoices zip.
    • Better status when access rights are missing.
    • Cached plan must not change result type.
    • ARRAY not integer/castable.
    • ZodError.
    • Newlines in letter differ from template/PDF.
    • NULL expected string.
    • Typo in PSK activity.
    • Untranslated placeholder.
    • Appointment export does not correctly display times.
    • Fix synchronous calls that are too slow.
    • Console RuntimeException missing id.
    • Improve logging for Exact error messages.
    • e.showModal is not a function.
    • Zorgvergoedingen shows AV instead of BV for exception-only coverage.
    • Text can be pasted in onlyIntegerInput.
    • NoPrestatiecodeServiceForCareType: acupuncturist.
    • External start date is not edited correctly.
    • ViewException syntax error unexpected identifier "planner".
    • routes.admin.account title fix.
    • ZIS number in route contains #referrals.
    • DatetimeException.
    • TypstCompilationException expected comma.

Multilingual support

Flux now supports both Dutch and English throughout the application. The interface, navigation, and core workflows—such as the calendar, patient records, treatment trajectories, and questionnaires—are available in both languages, allowing users to work in the language that best fits their preference or team setup.

Language can be selected within the app, making it easier for practices with international staff or mixed-language teams to use Flux consistently in day-to-day work. This also improves onboarding and reduces friction when collaborating across different users and roles.

At this stage, emails and other external communication—such as patient-facing messages—remain available only in Dutch.

Occupational therapy

From now on, we also offer strong support for occupational therapy. This means that workflows, documentation, and collaboration are better aligned with the needs of occupational therapists.

This makes it easier to guide clients effectively and organize processes efficiently. We’ve also improved the claims process for occupational therapy: submitting and processing claims is now simpler, faster, and better aligned with daily practice—so you spend less time on administration and more time with your clients.