3.29.0 Release Notes

New Features

Accommodation & Homestays

Accommodation Module. A new Accommodation module brings homestay and room management into SELMA. You can manage real-time room availability, block and unblock rooms for specific date ranges, capture and process accommodation requests from students, view a calendar of bookings, swap students between rooms, and group students for placement. Includes accommodation criteria configuration, provider management, and room-level detail pages.

Organisation access control for staff. Users can now be linked to specific Organisations with a validity date range, scoping what students, enrolments, intakes, and form submissions they can see. Configure via the new Staff tab on any Organisation’s show page. Introduces a new /organisation/all RBAC permission, renames the existing Enquiries widget to a generic Form Submissions widget, and adds a new dashboard widget for form submissions.

LNAAT Integration (New Zealand)

TEC LNAAT integration. A new integration with the TEC LNAAT (Literacy and Numeracy Assessment Tool) system for New Zealand providers. Staff can assign LNAAT assessments to students, sync results from TEC, and view literacy and numeracy step levels with gain tracking. Includes the LNAAT integration card on the Integrations page, ESL credentials configuration, library and result sync, and activity logs.

Portal Dashboard Builder

Drag-and-drop portal home page. Administrators can now design the home page that students and contacts land on when they log into the portal. A drag-and-drop builder lets you arrange rows of cards — headings, banners, buttons, free text, links to resource documents, and live data widgets (active enrolments, attendance, completion, items due soon) — separately for the student and contact portals. Merge fields are supported.

Curriculum Component Portal Submissions

Student-facing curriculum components. New portal configuration fields on curriculum components let you control how a component appears in the Student Portal: Allow Portal Submissions, Hide from Portal, Allow Portal Supporting Documents, Portal Display Name, and Portal Display Description. Students can upload supporting documents through a combined tabbed modal in the portal, and admins can view those uploads in SELMA.

Class Transfer

Move enrolments between classes. Admins can now transfer a student enrolment from one class to another directly from the Class Enrolments grid or the Enrolment Classes grid. A new Transfer button opens a modal with a target class selector and new start/end dates. On submit, the current class membership is ended and a new membership is created for the target class. The system warns if attendance falls after the proposed end date and blocks overlapping memberships.

Enhancements

Grading Schemes

Inactive grading schemes and cloning. Grading schemes can now be marked as Inactive. Inactive schemes are hidden from all selection dropdowns across programmes, intakes, and enrolments, preventing accidental use. A dependency guard blocks deactivation while the scheme is still assigned to programme or intake components. The scheme list now has an Active / Inactive / All filter, and a new Clone button lets you duplicate an existing scheme as a starting point.

Propagate grading scheme changes. When a grading scheme is set or changed on an Intake Component, SELMA now prompts to propagate the change to existing Enrolment Components. The existing propagation modal opens automatically after saving, letting you select which enrolments should be updated. Declining the prompt leaves existing Enrolment Components unchanged.

Canvas Integration

Per-section enrolments. Canvas integration now supports per-section enrolments driven by a provider-wide Section Strategy with an optional per-Programme override. The new Section Strategy dropdown offers One per class, One per intake, or None (default). A new Auto Conclude On Exit toggle controls whether Canvas enrolments are concluded when a student exits. Students enrolled in multiple classes get one Canvas enrolment per class-section, with stable SIS IDs preventing duplicate sections. Unlinking, ending, or transferring an enrolment concludes the corresponding Canvas enrolment. The legacy Sections Enabled toggle has been retired.

Student Portal

Opt enrolments out of the Student Portal. A new flag on an Enrolment lets you opt it out from the Student Portal so the enrolment and its related events and timetable sessions are hidden from the student.

Enrolment

Attendance start date on transfers. A new Attendance Start Date field on the enrolment timetable tab controls the date from which attendance registers are generated. During an intake transfer, the system sets this to today’s date if empty, preventing duplicate attendance records from backfilling the new intake. The date can be cleared or changed manually at any time.

NZ enrolment flow — No Return option. Two new checkboxes have been added to the NZ Compliance section of the enrolment flow, allowing an enrolment to be created without inheriting the funding source and/or return type from its Intake.

Workflow Builder

New triggers for enrolment components. Two new triggers are available: Enrolment Component Created (runs when a new component is added to an enrolment) and Enrolment Component Updated (runs when an existing component changes).

Reports & Search

Event Report — filter by creator. A “Created By” filter has been added to the Event Report advanced search, allowing events to be filtered by the user who created them.

Student Index — nine new optional columns. The Student Index now offers nine additional columns grouped into three sets: Interested In Programme Organisation (Name, Trading Name, Legal Name), Interested In Intake Organisation (Name, Trading Name, Legal Name), and Primary Organisation (Name, Trading Name, Legal Name). All are off by default and can be enabled through the column manager.

Applications

Application PDF reports. Applications can now have custom PDF reports built for them.

API

Audit timestamps on every API resource. All API GET endpoints now include the created_at and updated_at audit timestamps. The OpenAPI schema (Swagger docs) has been updated to advertise these fields on every resource.

Performance — New Zealand

Faster class enrolment grid for NZ accounts. The class enrolment grid no longer issues a database query per enrolment when calculating EFTS totals. A class with 30 enrolments and 5 components previously fired around 180 extra queries on every grid load — these are now replaced with a single pre-fetch query. No visible UI change; non-NZ accounts are unaffected.

Bug Fixes

Workflow Builder

Database lock-wait errors during high activity. Workflow Builder triggers no longer cause database lock-wait timeouts during periods of high activity. Customers using high volumes of automated workflows (CRM integrations, scheduled triggers, automated marking) will see fewer transient 500 errors and missed workflow runs.

“Equals” condition could match the wrong values. Fixed a bug where the Workflow Builder’s “equals” condition could match values it shouldn’t — for example, comparing a numeric field against “1” or “0” now compares strictly. Behaviour will be correct from this release; no action required on existing workflows.

Scheduled workflows backfilling past ticks. Fixed a bug where scheduled workflows could fire a single missed run the moment they were switched from draft to active. Newly activated scheduled workflows now run only from the moment of activation onwards.

Paused workflows continuing to process queued messages. Setting a workflow back to draft (or pausing it) now reliably stops in-flight work. Any messages already queued for that workflow are skipped when processed, instead of continuing to produce executions and emails.

Quartz # cron syntax pausing workflows. Workflow schedules can now use the full set of Quartz cron extensions, including the “Nth weekday of the month” form (e.g. the second Monday) and the L / W markers. Previously, saving a workflow with one of these schedules would silently pause it on the next scheduler run.

Authentication

iPad Safari SSO “Invalid state parameter”. Resolved an issue where users logging in to SELMA via Microsoft or Google on an iPad were seeing “Invalid state parameter” errors after authenticating. SSO login on iPad now completes reliably without needing to clear the Safari cache.

Enrol Students

Permissions now respected on the student picker. The Enrol Students wizard’s student picker now respects existing student visibility rules. Users without the view-all-students permission will only see students they are linked to (students they own, students in intakes or classes they staff, students at organisations they belong to). Users with view-all-students continue to see every student.

Report Builder

Reports can now be deleted. Fixed a bug preventing reports from being deleted in the Report Builder.

Custom Fields as filters. Custom Fields can now be used in the Report Builder to filter queries.

Component Marking

Marking page timeout on large datasets. The marking page now loads intakes, programmes, classes, and components via AJAX on click rather than into the dropdown selectors on page load, preventing timeouts on large datasets.

Contact Portal

Event attachments now download correctly. Attachments on Events are now downloading correctly via the Contact Portal — previously the download link incorrectly pointed to the Student Portal URL.

SELMA Forms

Student avatar no longer blocks submission. Fixed a bug where the student avatar field was preventing successful form submissions.

Timetable

Popovers no longer disappear after changing view. Fixed a bug where changing the view on the timetable would cause popovers to stop appearing when hovering over timetable sessions.

Training Agreements

Save button no longer disappears. Fixed a bug where the Save button would disappear when editing a Training Agreement.

Scheduler

Duplicate scheduled triggers cleaned up. Data clean-up to remove duplicate scheduler triggers for enrolment withdrawal date, enrolment graduated date, and class start date.

Related Articles

3.04.0 Release Notes

Features/Improvements Alert Feature Expanded to Other Objects You can now add an alert to a programme, intake, contact, class, and a system user. The alert pops up on page load (if there is an alert) and you also have a button to open the alerts. There can be multiple alerts tied to a single object …

3.25.0 Release Notes

New Features Clone Programmes & Components You can now quickly duplicate existing programmes and components while preserving their structure, fees, custom fields, and regional compliance data. Campus Enhancements Campus records can now be linked to an internal organisation (Campus School) and multiple staff members (Managers). Each campus can have an associated address with full address …

3.14.0 Release Notes 🥧

Features/Improvements Multi-Select Campus Filter in Grid Reports Added new multi-select filter option for grid reports, allowing users to filter report data to display information for multiple selected campuses, intakes, or other entities simultaneously. This enhancement improves reporting flexibility when analysing data across specific subsets of locations or programmes. Enhanced Class Linking Logic for Enrolment Components …

3.03.0 Release Notes

Features/Improvements User Timetable View If your system makes use of timetable, a user can now view their timetable on their profile. Admins can also view teachers’/users’ timetables in the site settings menu. Event Log Report On the SELMA Settings cog wheel, you now have another link ‘Event Log Index’ (if you have the permission granted) …