3.34.0 Release Notes

New Features

Workflow Builder: grant Moodle access and enrol students automatically
The Moodle access workflow action can now enrol a student into their Moodle course, not just reinstate existing access. “Reinstate Moodle access” is now Grant Moodle access: when scoped to a single course on an enrolment component, it enrols the student into that course — creating their Moodle account if needed — and clears any suspension. Combined with the enrolment component’s start date trigger, students can be enrolled into Moodle automatically on or around their start date.

Moodle: new grading and enrolment options
Three new options are available in your Moodle integration’s instance settings. You can choose to only apply a synced grade to an enrolment component when it resolves to a pass grade in the grading scheme; non-pass grades are skipped and recorded in the Moodle log, so you can still see why a grade was not applied. You can also choose to only apply Moodle grades to enrolment components that are not yet complete, so components already marked as complete — cross-credited components, for example — keep their existing results. And a new “Reactivate users on enrolment” option checks whether a student’s Moodle account is suspended and reactivates it before enrolling them, so returning students regain access to Moodle without manual intervention.

Enhancements

Organisations and contacts: organisation–contact associations can now be marked as primary, from either the contact record or the organisation record. Marking an association as primary automatically unmarks any other, so only one primary is held at a time.

Intake creation: you can now populate the intake name from the name of the selected programme during creation, and add system users as staff directly to the new intake at the creation stage. A new constraint prevents the same user being added twice within the same date range.

Intake scheduler: email-type intake scheduler items can now include a system attachment. This is useful for sending reports to enrolments on a schedule once they meet a certain criterion — sending a training plan to a fresh enrolment, for example.

Marking view filters: the Marking filters on the Intake > Enrolments tab now display their full label rather than being cut off, and opening a filter shows only the selectable items — the label is no longer repeated as an item in the list.

Scheduler options: the scheduler item form now explains its options more clearly. The option to skip records added after an item was scheduled to run has a plainer label, “Skip records created after scheduled date”, with help text and an example, and the “Process if inactive?” option now includes help text explaining that, by default, actions only run for active records.

Attendance marking: a Preferred Name column has been added to the attendance marking page on both intakes and classes. It sits between First Name and Surname and is sortable, making it easier to tell apart students who share the same name when marking attendance.

Programme: the “Title Other” value is now visible on the programme view and editable on the programme form, alongside the existing Title, matching how the Award screen already shows it. The value was already stored on the record and simply was not surfaced before.

The Importer: the student import screen now groups the available spreadsheet columns into clear categories — Basic, Contact, Advanced, Address and Emergency Contact — which you can show or hide to match the data you are importing. Required columns are also marked more accurately: a column is only flagged as required when it genuinely is for your import, so address fields are only marked required once you include address data.

Report Builder: several new fields are available — Component Other Title; Unit Standard code, title, level and credits (New Zealand specific); Student Account Manager name; and Enrolment Teacher name. Intake Staff is now a single column with a toggle between Grouped (comma-separated names in one cell) and Rows (one row per staff member), and curriculum component fields are prefixed Enrolment or Intake depending on their path. Multi-value lookups can now be used as filters, where selecting several options matches any row holding at least one of them; person-name multi-lookups such as Intake Staff remain non-filterable by design. The stray Grouped/Rows and SUM/COUNT toggles that incorrectly appeared on items in the filter panel have been removed, and user contact-name labels now prefix correctly with the relation role, for example Enrolment Teacher Contact First Name.

QE1 report: the report is now filtered to show only active programmes.

EPI funding rates: a funding sub-category has been added, so you can hold a funding rate within the same year, source and category that differs by sub-category — Youth Guarantee divided into Trades and Non-Trades, for example.

Moodle: the grade sync now processes each enrolment component individually rather than as one large job, so syncs for accounts with many enrolments complete reliably instead of timing out partway through; grades and course completions are recorded exactly as before. Grades also now import when Moodle does not report a percentage, such as scale-based grades or Moodle accounts with limited permissions, by calculating the percentage from the raw grade. Ungraded items are no longer recorded as a 0% grade and are simply skipped until a grade exists.

Canvas: you can now limit the Canvas course import to just the courses you need, filtering by published status, course state, completion, or a minimum end date. This speeds up imports for providers with large Canvas catalogues. The new options are on the Canvas integration settings page.

Bug Fixes

Students: students can no longer be given more than one primary organisation of the same type. When you mark an organisation as primary on a student’s stakeholder card, any organisation of the same type that was previously primary is automatically demoted. This applies to all organisation types (Employer, Agency, School and so on), both when creating a new student and when editing an existing stakeholder link; a student can still have one primary of each different type at once. Fixed the “Is English First Language” checkbox not being able to be unselected once selected. When merging students, form submissions are now reassigned to the surviving student, along with the generated PDF form submission document.

Enrolments and components: fixed an issue where, on an enrolment with two failed enrolment components in a parent–child relationship, ad hoc adding those same two components caused the child to point at the failed parent instead of the new one. Linking a class to an enrolment no longer fails with “Class Enrolment dates cannot be outside Enrolment dates” when the class dates match the enrolment’s own dates, as dates are now compared in your own timezone rather than as raw timestamps. The enrolment component grid also renders at full length again and scrolls the page, rather than scrolling within a fixed-height list.

Attendance: when deleting a session that is part of a recurring series, choosing to delete the series now removes the selected session together with all sessions from the start of today onwards, as the confirmation suggested. The confirmation prompts have been reworded to make it clearer exactly which sessions and attendance records will be removed, and deleting a single session from a series no longer asks you to confirm twice. Attendance exports now include the student identifier correctly.

Finance: fixed the intake filter on the “Not Yet Invoiced” index not applying. Application fees can now be deleted, both individually and in bulk. Refunding a payment now reduces the unallocated balance by the refunded amount, so refunding $200 of a $1,000 payment leaves $800 unallocated rather than the full $1,000. Also fixed missing Stripe payments in the new payment object.

Reports and compliance: fixed an SDR extraction issue that excluded learners reaching 10% on the extraction end date.

Work-Based Training: off-job deliveries are no longer rejected by the DXP with “Course Classification is not a valid classification code”. Whole-number classification codes are now sent in the decimal form the DXP expects (3 becomes 3.0), with single-decimal codes unchanged, and the funding category error that followed on from it is resolved as a result. The Pending Training Agreement scheduled task also now runs — it referenced a task that does not exist, so it had never executed and its scheduler log was left permanently showing as started.

SELMA Forms: fixed an error that appeared when using the basic search on the Form Submissions list. Searching now returns the matching submissions correctly instead of failing, so submissions can be found quickly by student, contact, organisation, form, programme or intake. Also fixed the Provider field, which is conditionally attached to the Interested In Programme field, causing an error when it was not present on the form, alongside improvements to that field’s rule handling.

Student portal: when a component is not open for submissions, the uploader is now replaced with a short warning explaining why — the component has not started yet, the due date has passed, it is complete, or it has been withdrawn — instead of showing an upload box that fails. Students can still view their previous submissions and supporting documents in all cases.

Dates: the visa, insurance and passport date fields have been updated so they are no longer affected by the known 2038 Unix timestamp limit.

Integrations: the Microsoft 365 and Google integration pages no longer fail to load when very large diagnostic log entries have accumulated. Log entries are now kept to a sensible size.

Importing: a failing student import no longer leaves a lock on the student table, which had been preventing other background tasks such as bulk updates and report generation from completing.

API: resolved an issue where API requests for records that carry a large amount of related data, such as an organisation or intake with many enrolments, events and related records, could run very slowly, time out, or fail. These requests now complete reliably and quickly, and the information returned is unchanged.

Performance and stability: the enrolment components grid and the student profile page load faster, having previously been very slow for large enrolments or students with many enrolments, and the Clone Intake screen now loads promptly for larger accounts instead of taking minutes or timing out. Slowdowns and intermittent failures when creating records have also been resolved, most visible when several background jobs ran at once, such as sending a bulk intake email to several recipients: custom field records were being rewritten every time they were read, even when nothing had changed, and each rewrite locked the row. Because those rows are shared across the whole account, any other work needing them had to wait — on some sites long enough for the write to fail and roll back. A side effect of the same problem was change history entries recording a value changing to itself, for example a sort order going from six to six; these will no longer be created, and existing entries are unaffected. Finally, each service now runs a worker pool sized to the memory a task actually has, so a busy service can no longer exhaust its own memory and have requests hang or fail under load. No configuration changes are required and no new permissions are introduced.

Related Articles

3.21.0 Release Notes

Features/Improvements Orders and Quotes New financial workflow capabilities have been added to SELMA: Class Achievement Matrix A new Class Achievement Matrix provides streamlined achievement tracking at the class level. The matrix displays Class Components by default, automatically falling back to Enrolment Components when no Class Components exist. NZ Compliance Enhancements Communication Improvements Scheduler Grid Enhancements …

3.31.0 Release Notes

New Features Text Messaging (SMS). Sending text messages from SELMA has been reworked and rebuilt from the ground up. You can now send texts to students, receive replies and delivery status updates in a threaded conversation view, and validate phone numbers directly from the contact card. Recipients who reply with STOP or UNSUBSCRIBE are automatically …

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 …

3.08.0 Release Notes

Features/Improvements Event Management Student and Enrolment Management Communication Enhancements Intake and Class Improvements User Interface Improvements Reporting and Compliance Integration Improvements Performance Improvements Bug Fixes Search and Filter Fixes Email and Communication Fixes Student Management Fixes Enrolment and Component Fixes Class and Attendance Fixes Date and Time Fixes Reporting Fixes