admin – SELMA SIS Resource Centre Fri, 21 Aug 2026 00:36:09 +0000 en-NZ hourly 1 /wp-content/uploads/2022/10/selmalogo.ico admin – SELMA SIS Resource Centre 32 32 Price Books /pricebooks/ /pricebooks/#respond Fri, 21 Aug 2026 00:33:37 +0000 /?p=5751

In this Section:

A price book is a saved set of fees you can apply to a student enrolment or application in one action, instead of adding fees one at a time.


Creating Price Books

  • From the top navigation, go to Finance → Price Book.
  • Click New Price Book.
  • Enter a Name for the price book.
  • Set the book-level Fee Type and Fee Category. These are used only if you choose the aggregated single-line output (see generation modes below).
  • Tick Tax Included if applicable.
  • Set the three fee switches according to how you want fee lines to appear on the enrolment (see Fee Modes for what each combination produces).
  • Add fee items by clicking Add Item. For each item:
    • Enter a Label (this becomes the fee line description).
    • Enter a Value (the unit price).
    • Set the item’s own Fee Type and Fee Category.
    • Choose a Multiplier (e.g. Flat Rate, Weekly, Monthly — see Part 5) or select a numeric Custom Field to drive the quantity. These two options are mutually exclusive. [SCREENSHOT: Add Item row with fields visible]
  • Repeat the step for each fee item needed.
  • Click Save.

Fee Modes – How fee lines are laid out

The switches on the price book control how many lines are setup and created:

Separate Fee LinesSeparate Fee Lines Per ComponentResult
SelectedSelectedOne line per item; component items get one line per component
UnselectedSelectedComponent items get one line per component; all other items collapse into one aggregated line
SelectedUnselectedEvery item gets its own line
UnselectedUnselectedOne single aggregated line for all items combined

If Separate Fee Lines (Per Price Book Item) is unselected: Aggregated lines use the price book’s fee type and fee category for all items:

If Separate Fee Lines (Per Price Book Item) is selected: Item lines use each item’s own label, fee type, and fee category:


Fee Multipliers

The multiplier on each item decides the quantity used to calculate the charge.

NameQuantity used
Flat RateAlways 1 (charges the exact value)
WeeklyNumber of weeks between start and end date (rounded up)
DayNumber of days between start and end date
MonthlyNumber of calendar months between start and end date
ComponentNumber of components on the enrolment or application
Nominal Hours – ComponentSum of nominal hours across components (Australia only)
Nominal Hours – ProgrammeNominal hours from the programme (Australia only)

Final amount = quantity × item value. Fractional quantities are rounded to the nearest whole number and never drop below 1.


Cloning a Price Book

  • Navigate to Finance → Price Book, find the book you want to copy.
  • Click Clone.
  • The copy is saved with the same items. Rename and adjust as needed.

Deleting a Price Book

  • Navigate to Finance → Price Book, find the book.
  • Click Delete.

Applying a Price Book to New Enrolment or Application

When you create a new enrolment or application through the wizard, you can select a price book on the fee settings step.

  • Work through the enrolment/application wizard as normal until you reach the fee settings step.
  • Select a price book from the dropdown. The item grid will load with a live preview of quantities and totals calculated from the enrolment dates and components. [SCREENSHOT: Price book item grid with quantities and totals]
  • Review the items:
    • Untick any items you do not want to apply.
    • Where permitted, edit the quantity or description directly in the grid.
    • To add a one-off fee not in the book, click Add Fee Line and complete the fields.
  • Complete the rest of the wizard and click Save.
  • Note: Fee lines appear a moment after the enrolment is saved — they are applied in the background. Refresh the enrolment’s finance tab if they are not immediately visible. When a price book is selected, the standard intake/component fee auto-add is skipped. All fees come from the price book only.

Applying a Price Book to an Existing Enrolment or Application

  • Open the enrolment or application record.
  • Navigate to the Fees tab on an Enrolment or Application.
  • Click Apply Price Book.

  • Select a price book from the dropdown.
  • The item grid loads — review, untick, or edit items as needed.
  • If there were fees already loaded, choose whether to tick Override Existing Fees:
    • Ticked (default): removes existing uninvoiced fee lines before adding the new ones. Fee lines previously attached to an invoice, or payment lines are not affected.
    • Unticked: adds the new fee lines alongside existing fees already on the enrolment or application.
  • Click Apply Price Book.

]]>
/pricebooks/feed/ 0
3.35.0 Release Notes /3-35-0-release-notes/ /3-35-0-release-notes/#respond Wed, 19 Aug 2026 05:10:51 +0000 /?p=5744 New Features

Bulk invoicing from Not Yet Invoiced
The Not Yet Invoiced tab has a new By Object view that groups all uninvoiced fees by who they belong to, whether that is an enrolment, application, student, contact or organisation, showing one row per object with its fee count and total. You can select several objects and generate one invoice each in a single action rather than building them individually, and each new invoice automatically allocates the payer’s unallocated payments. Filters are available for object type, programme, intake, organisation, enrolment status, application step and start date ranges, with each dropdown showing only the values that actually appear in the list. The original By Fee Line view remains available via the toggle.

Links in the Resource Manager
A resource can now be a link instead of an uploaded file. When adding a resource you choose either File Upload or Link, and a link resource holds a web address, for example a SharePoint or Google Drive location, using none of your storage allowance. Links can only be created in the Resource Manager, so to use one as course material, create the link resource first and then select it on the programme or component. Once attached it behaves like any other course material: students see it in the portal with a link icon and an Open Link button that opens the address in a new tab, and link resources can also be placed on portal dashboard cards. The choice between file and link is fixed once a resource has been created. Existing file resources are unaffected.

Entry requirements confirmation
A new setting in the Object Configurator lets you show a programme’s entry requirements during enrolment. With it switched on, the enrolment screen presents the selected programme’s entry requirements and requires the user to acknowledge them before the enrolment can be submitted. The setting is off by default, and the step is skipped entirely where a programme has no entry requirements recorded.

Contact portal
New portal configuration allows contacts to view intake details and drill through to the enrolments for an intake. NSN now appears on student details in the contact portal, and both NSN and middle name are available when a contact enrols students.

Applications on intakes
A new Applications tab appears on the intake detail page when the feature is enabled, so you can see the applications attached to an intake without leaving it.

Duplicate student detection on form submissions
Form submissions are now flagged where the first name, surname and date of birth all match an existing student. A flagged submission gives you a button that opens the student merge screen with the two records already selected, so possible duplicates can be reviewed and resolved as they arrive. Nothing is merged automatically, and the person filling in the form sees none of this.

Zoho attachment sync and expanded field mapping
A new Attachments column in the Zoho Module Selection table lets you enable or disable attachment pull per module, and attachments now come through for enrolment-bound modules. Custom Zoho modules route their attachments to the correct SELMA record automatically based on the module’s primary entity binding, and Zoho instant notifications now register correctly. The field mapping dropdown has been expanded: students gain Other ID 1 and 2, Contact ID, Previous Name, Phone (Work) and Email (School), plus Status, Gender, Citizenship, Country of Birth and Title lookups; enrolments gain Finished Date and Withdrawal Reason; intakes gain Status; and organisations gain Legal Name, Tax Number, Active, Organisation Type and Country.

Enhancements

Cross credits: when components are cross credited by the Record of Achievement, the completion date is now set from the assessment date on the RoA. Components marked “Exclude from NZQA” are no longer cross credited even where the Record of Achievement shows a past completion.

Moodle imports: the Reload courses and Reload gradebook items buttons on a Moodle instance now open a window where you can narrow the import to a single Moodle course, and for gradebook items to a single Moodle user. Large courses that previously timed out can now be imported by supplying the ID of any user enrolled in the course. Leaving the fields blank imports everything exactly as before.

Training agreements: when a training agreement is re-sent, its student and employer sourced details, for example a corrected learner occupation code or updated employer details, are refreshed first. A corrected agreement can now be re-sent without creating a brand new one, and the original signed date is kept.

Programme intakes: the Intakes tab on a programme now has filters for start and end date and for intake status, and the date column sorts in true chronological order.

Marks on enrolment components: the Grade column in the enrolment component view now shows the numeric mark alongside the grade, for example “A (85)”, so the score is visible at a glance.

Programme components: the compliance details shown on a programme component card now match the fields in its edit form, so the information stays consistent whether you are viewing or editing.

SDR classification lists: SDR lookup data has been updated to match the latest classification, so schools and codes that are no longer listed by TEC are deprecated and newly listed ones are available.

Performance: the API documentation page now loads reliably and no longer places heavy memory load on the service, and the amount of data held for each signed-in session has been substantially reduced, which lightens the load across the platform.

Bug Fixes

Invoicing: voided invoices are no longer counted towards Amount Due on the student index application list or in any other balance calculation. A negative fee line no longer displays as positive on the Create Invoice window, so discounts subtract rather than add and the window matches the invoice once it is created. Form submissions carrying a 100% discount are now processed correctly instead of leaving the student unpaid for the full amount.

Work-Based Training: withdrawing a work-based training enrolment now withdraws its linked training agreement correctly rather than leaving it in the wrong status, and sends a single withdrawal to the DXP instead of a duplicate that logged a spurious error. Where an enrolment is missing its New Zealand study type, syncing it or changing its status now shows a clear message saying the study type is required instead of failing with an error.

UIP report: the report no longer shows false duplicate record warnings against learners with a single enrolment. Rows were being repeated wherever a campus, passport or course record existed more than once, and those repeated rows were also written into the file submitted to NZQA and inflated the record count on screen. Each enrolment component now produces a single row, so the validation screen and the generated file both reflect the true number of records.

Grid reports: the on-screen preview now preserves the order the report’s query returns rather than re-sorting by the first column. Column headers can still be clicked to sort manually.

Workflow Builder: email and text steps can now be sent to any recipient shown in the Send To list. Previously only the student and a small number of closely related recipients could be saved, and choosing anything else, such as a student’s account owner or that account owner’s contact record, was rejected on save even though the option was offered. Workflows triggered by an attendance register were affected most, as no email step could be saved at all. These now save normally.

SELMA Forms: the student organisation association type set when building a form is now applied to the student to organisation relation instead of always defaulting to Employer. The paid status on form submission PDFs no longer shows incorrectly where no payment has been recorded, and the Form Submission dashboard widget now shows the date each submission was made.

Enrolments: the Edit button on an enrolment works again, opening the edit form instead of showing an error. Re-adding components to an enrolment that already holds them as finished-incomplete now attaches each child to the active parent rather than the old one, and components that were already linked to the wrong parent are corrected on upgrade. Component mapping on a programme, intake or enrolment now lists only active components, so inactive, retired, expired and deleted components cannot be selected by mistake.

Attendance: on the attendance tab, the Show Active Enrolments and Show All Enrolments button now describes what will happen when you click it rather than what is already shown.

Portal log-in: where the same person exists as a student, a contact and a user, arriving through a portal log-in now opens their portal, their student view where they have one and otherwise their contact view, instead of always landing on the admin dashboard. Impersonating one of these people opens the correct portal too, and leaving impersonation returns staff to the view they were in.

Intake document previews: previewing reports from an intake bulk send email no longer picks up an enrolment that happens to share the intake’s ID. Enrolment reports preview against an enrolment and intake reports preview against the intake.

Campus compliance: the Australia compliance card stays visible and editable on a campus whose status is Inactive, so AVETMISS delivery location data can still be viewed and corrected.

]]>
/3-35-0-release-notes/feed/ 0
3.34.0 Release Notes /3-34-0-release-notes/ /3-34-0-release-notes/#respond Mon, 03 Aug 2026 04:53:20 +0000 /?p=5718 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.

]]>
/3-34-0-release-notes/feed/ 0
3.33.0 Release Notes /3-33-0-release-notes/ /3-33-0-release-notes/#respond Sun, 19 Jul 2026 23:09:41 +0000 /?p=5706 New Features

Workflow Builder
The Workflow Builder gains two new actions. Create Invoice automatically generates an invoice from an enrolment’s not-yet-invoiced fees when the workflow fires. The invoice payer can be the student or an organisation (the enrolment’s organisation, the intake’s organisation, or the student’s primary organisation), with a configurable invoice status and due date offset. Enrolments with no outstanding fees are skipped, so the same enrolment is never invoiced twice. Submit to Public Trust automatically calculates Public Trust fees from the record’s invoice lines and submits them through the existing Public Trust integration. Records already submitted to Public Trust are never resubmitted, and a dedicated contact email for submissions can be configured on the Public Trust integration. Applications can now also trigger workflows (on creation and on update), alongside the existing student, enrolment and invoice triggers. Together these enable automations such as invoicing a student (or their employer) when their enrolment becomes active and lodging the Public Trust submission automatically.

Run workflows on demand
Workflows can now be run on demand, instead of only firing automatically or on a schedule. When building a workflow you can choose a new Manual trigger and tie it to a record type: Enrolment, Enrolment Component or Student. Manual workflows appear as a Run Workflow option in the record’s actions menu, where you pick one of the available workflows and run it against that record immediately. On the enrolment component grid you can also run a workflow against several selected components at once. An optional Run Once Per Entity setting stops a workflow running again for a record it has already completed for. A new permission, Run Workflow, controls who can run workflows on demand and must be granted to any custom roles that need it.

Moodle: sync grades for a single enrolment
You can now sync grades and completions from Moodle for an individual enrolment using the new Sync Grades action on the enrolment record’s components. This provides a much faster alternative to the account-wide grade sync when you only need to update one student’s enrolment.

SELMA Forms: choose a Provider on application forms
You can now let applicants choose a Provider before picking a programme on the Interested In Programme field. When editing the field in the form builder, tick “Filter by internal organisation (Provider)”. You can then choose which Organisation Type is offered as a Provider, choose the Association Type used when the Provider is recorded against the student, and optionally make selecting a Provider mandatory. On the public form, the applicant selects a Provider first, which narrows the list of programmes to only those delivered by that Provider. A new form setting, “Add programme Provider as a student stakeholder on submission”, automatically adds the programme’s internal Provider organisation as a stakeholder on the student record, giving the relevant Provider visibility of the student without any manual step.

Training Agreement forms
Three improvements to the Training Agreement signing process. When publishing a Training Agreement form, SELMA now accepts any contact association type. Contact blocks can now be configured, per block, to let applicants choose an existing contact from a dropdown rather than re-typing one each time, avoiding the duplicate contacts and mistyped email addresses that previously prevented the multi-signature process from completing (for privacy, the public form only ever displays contact names). And when a contact is unavailable, staff can now reassign a pending signature to another existing contact from the submission page; the proxy receives a fresh signing link by email and completes the step, so the process is no longer blocked.

Complex enrolments
You can now create complex enrolments and enrol a student into a complex programme, with the enrolment structure created for you.

Enhancements

Browser tab naming: browser tabs now show what the page is opened to where applicable. For example, student pages now show the name of the student (Student – John Doe).

Enrolment Expiry Date: you can now edit an enrolment’s Expiry Date directly on the Results card. You can also set the Expiry Date in bulk across an intake, both for enrolments (Bulk Update Enrolments) and enrolment components (Bulk Update Enrolment Components).

Public Trust: the Public Trust integration now reports students who hold a New Zealand residency status (New Zealand Resident or New Zealand Permanent Resident) as domestic students with New Zealand citizenship, in line with Public Trust’s upload requirements. Previously these students were sent with their actual citizenship, which caused Public Trust to classify them as international. A new validation message also prevents submission when a student is not marked as international but has a citizenship outside Australia, the Cook Islands, New Zealand or Niue and no New Zealand residency status recorded.

Workflow permissions: the Workflow permission has been split. Running a workflow no longer also grants access to build and edit workflows. A new permission, “Permission to create, edit and delete workflows in the Workflow Builder”, now controls building, while the existing run permission controls running. Administrators keep both automatically. If any custom role was set up to build workflows, that role must have the new build permission ticked after this release.

Student Index: the status cards at the top of the Student Index now match the order of the statuses on the student kanban board, and the student filter counts now show in the same order as the kanban view.

Award page: the NZ Compliance card on the Award page no longer appears for accounts that have no NZ configuration enabled. It now shows only when NZ SDR or NZ NZQA is enabled.

Student creation: when an employer is added during student creation, it is now automatically marked as the student’s primary stakeholder.

Classes: you can now add ad hoc components in bulk to selected enrolments in a class.

Scheduler items: now have an optional “Earliest trigger date”. If a scheduler item’s calculated trigger date falls before this date, the item will not fire, which prevents communications and events being sent for historical enrolments, for example – after a data migration.

Enrolment API: new filtering options are available on the Enrolment API.

Bug Fixes

Attendance: the attendance timetable import no longer fails silently when a row references a room that does not exist; the import now completes and flags the affected row with a “room not found” error so you can correct it. Marking attendance in bulk now runs as a background task, so large registers no longer time out. Attendance registers now handle public holidays correctly.

Enrolments: fixed an issue where creating an enrolment through the API under heavy load could save an enrolment with no components, and the retry was then blocked as a duplicate. Enrolment creation through the API is also significantly faster: creating an enrolment into a large intake previously took around twenty seconds and could time out; it now completes in a few seconds. Also fixed an error when using the enrolment full-edit pencil while the student portal is enabled.

Classes: fixed an issue where classes with a large number of enrolments could fail to open. These classes now load reliably, and the class page opens faster overall; the grading table and the statistics bar now load when you open them rather than during the initial page load.

Reports: QE1 and F23 now allow intakes with a Full status to be shown and selected within the reports tab. The QE1 (Qualification Report) grid now displays the same version number as the generated QE1 text file. The UIP report tuition fee total now multiplies the invoice line amount by quantity, so per-unit fees recorded with a multiplier show the correct total. And AVETMISS report validation now completes reliably for providers with large amounts of data, instead of leaving the validation screen loading indefinitely.

Moodle: resolved an issue where a failed Moodle user update or course group enrolment could be reported as completed even though Moodle never received the change; failures are now correctly reported, and the Moodle integration log records which step failed. Email addresses containing a plus sign now sync correctly; please enable the extendedusernamechars setting in Moodle, as this is required for usernames to sync properly.

Xero: fixed an issue where the Xero integration was unable to sync contacts.

Communications: bulk emails sent from an intake are now recorded reliably. Previously an email could be delivered without a selected attachment such as a certificate, leaving no record and no entry on the student’s event log. Now, if a selected report or template cannot be generated, the email is not sent and is marked as failed so it is visible and can be resent; successful sends are always recorded with an event log entry. Also fixed CSV exports from the Events and Communications index pages silently failing when a value was typed into the quick-search box.

Organisations and searchable dropdowns: fixed organisations being slow or impossible to edit for large tenants. The parent organisation dropdown on the organisation edit form, the organisation field on the intake information form, and the organisation picker when linking an organisation to a contact now search as you type instead of loading every organisation at once. Searchable dropdowns used to pick records such as a contact, intake or organisation also now show a first set of options as soon as you click into them, rather than staying empty until you start typing.

SELMA Forms: fixed an issue where resubmitting or resuming a public application form for a student who already had a saved contact or organisation on their record could fail to save, leaving the submission unrecorded. These forms now save reliably for returning and existing students.

Work-Based Training: component numbers sent to DXP no longer include leading zeros, and components that have already been achieved are now filtered out of the enrolment payload, resolving submission errors. Also fixed the WBT enrolment mapper incorrectly filtering out already completed enrolment components.

Dashboard: fixed the System Status widget showing an inaccurate number for active enrolments.

Users: on the User Index, the advanced filter for status “All” now correctly shows all users, and the pending counter no longer displays 0 when pending users exist.

Accommodation: fixed the Accommodation Booking page failing to load.

]]>
/3-33-0-release-notes/feed/ 0
Advanced Finance Module /finance-module-2/ /finance-module-2/#respond Thu, 09 Jul 2026 06:18:49 +0000 /?p=5701 In this Section:

Overview

The Finance module has been extended with a full payment-allocation, credit-note and refund lifecycle, alongside a dedicated debtor-management view and a brand-new T-Account display. Where previous releases recorded a payment as a single line against a single invoice, payments are now first-class objects that can be split across many invoices for the same payer, partially refunded, or written off.

The changes cover every screen where money moves in SELMA — the Invoices index, the Payments index, the Credit Notes index, the Debtor Accounts index, and the per-student / per-contact / per-organisation Fees tab.

NOTE: The features described below are available to all users with the relevant finance permissions. The Write Off action and the Remove Bad Debtor action are gated by additional permissions and are not visible to every role by default.


What Has Changed from the Previous Finance Module

If you are moving from the previous Finance module, here is what is different and why it matters:

Payments are now independent records. Previously, recording a payment immediately settled a single invoice. Now, a payment sits in an unallocated pool first — you decide how much to apply to each invoice. This makes part-payments, advance payments, and payments covering multiple invoices straightforward to manage without creating duplicate or adjusted records.

Credit notes are a first-class object. Previously, credits required adjusting invoice lines or handling outside SELMA. There is now a dedicated Credit Notes index, with full create-apply-refund workflows that mirror the invoice and payment flows.

Refunds are recorded inside SELMA. You can now issue a refund directly against a payment or credit note from within SELMA, rather than recording it externally and trying to reconcile it later.

The Fees tab replaces cross-referencing multiple indexes. Every invoice, payment, and credit note for a student, contact, or organisation is visible in one consolidated place — with a summary of their full financial position at the top.

Debtor management is automated. A Debtor Account is created and kept up to date automatically the first time an invoice is sent to a payer. There is no manual debtor tracking required.

Write-offs are a formal, auditable action. Bad debt can now be written off directly inside SELMA — it flags the payer, records a clear audit line on the invoice, and is reversible. This replaces the previous approach of handling bad debt as a workaround outside the system.

Deletion is now guarded. Records with active allocations, credit notes, or refunds against them cannot be deleted until those links are cleared first. SELMA will tell you exactly what needs to be resolved — nothing is silently removed.


Allocating Payments

A payment is now an object in its own right. When a payment is recorded, the amount sits in an unallocated pool against the payer; the user then decides how much of that pool to apply to each outstanding invoice. The same payment can be applied to several invoices, and an invoice can receive several payments — both are shown clearly on the invoice and on the payment.

Where you can allocate

There are three entry points, all of which open the same allocation panel:

  • Payment Detail — open the payment and click Allocate beside the allocations table. This is the most common path when a payer pays in advance or sends a lump sum covering multiple invoices.
  • Invoice Detail — Add Payment & Apply — fom the invoice actions menu, create a new payment that is automatically allocated to the invoice in front of you. Use this when taking a payment against a specific invoice in a single step.
  • Fees tab on a Student, Contact or Organisation — the Add Payment button records a payment and lets you allocate it across that payer’s invoices in one step.
Allocate Payment panel

The Allocate panel lists every outstanding invoice for the payer with its current balance and a single editable Allocate column. The running totals at the top of the panel show the payment’s unallocated balance and the live Allocating total as you type, so you can never allocate more than is available.

How allocations appear on the invoice

Each allocation is shown as its own “Less:” line on the invoice, with the date and the payment method or credit note number. Multiple payments and credit notes can sit on the same invoice and are all visible at a glance.

Invoice showing applied credit note and applied payment

In the example above, INV-175 has been settled by a $200 credit note and an $1,800 cash payment, leaving a $0 balance.

Payment statuses

The Payments index has three status counters at the top — UnallocatedPart Allocated and Fully Allocated — matching the three states a payment can be in. The grid also gains a Refunded column, so any payment with a direct refund is immediately visible.

Payments index with status counters and Refunded column

Credit Notes

Credit notes are managed alongside invoices and share the same record structure. They can be created in two ways:

  • From an existing invoice — the Create and Apply Credit or Create Credit Note actions on the invoice raise a credit note linked back to that invoice as the Originating Invoice. Use this when you need to reduce or cancel a charge that has already been invoiced.
  • Standalone — the + button on the Credit Notes index, or Create Credit Note on the Fees tab, raises an unattached credit note for a payer. This is useful for goodwill credits and discounts that should sit on the payer’s account until they are applied to an invoice later.
Standalone credit note detail page

The credit note detail page mirrors the invoice layout. The header shows the Credit To payer, the Credit Note Number, Status, Total Credit, and a running Remaining figure. The Credit Allocations panel underneath lists every invoice the credit has been applied to, plus any refunds taken against it.

Applying a credit note to an invoice

Click Apply Credit Note on the credit note detail page to open the allocation panel. It lists the payer’s outstanding invoices with their balances and an Allocate column, exactly like the payment allocation panel.

Apply Credit Note panel

Finding credit notes

The Credit Notes index lives on its own toggle on the invoice index page. The grid shows the credit note number, originating invoice (blank for standalone), Total, Applied, Refunded and Remaining columns, so the state of every credit note is visible at a glance.

Credit Notes index showing applied and standalone credit notes

Refunds

Refunds can now be issued directly against a payment or against a credit note from inside SELMA. Both flows reach the same modal and produce the same record — the only difference is which object the refund is drawn from.

Refunding a payment

On the Payment Detail page, an Add Refund button is shown whenever the payment has an unallocated balance remaining. The modal pre-fills the refundable amount and the payment method, leaving only the reference and the description for the user to complete.

Add Refund modal

Once saved, the refund appears as a Less: Refunded line on the payment, the Refunded total on the payment header updates, and the Refunded column on the Payments index reflects the new figure.

Payment detail page with refund applied

Refunding a credit note

The Add Refund button on a credit note works the same way — it refunds value out of the credit note’s remaining balance and records a refund line in the Credit Allocations panel.

NOTE: Refunds are capped at the available balance. SELMA will not allow a refund that would take a payment or credit note below zero, and partial refunds are fully supported.


Student & Contact Fee Tabs

Every StudentContact and Organisation now has a Fees tab that consolidates every financial record for that payer in one place. Previously, staff had to cross-reference the Invoices index, the Payments index, and individual enrolment fee tabs to build a picture of a payer’s financial position — the Fees tab replaces that workflow.

Student Fees tab

The header summarises the payer’s position with six metric cards: Total Invoiced, Total Paid, Total Credited, Total Outstanding, Unallocated Payments, and Available Credit. Below the metrics, action buttons sit alongside the data:

  • Add Fee — add a stand-alone fee line that is not yet on an invoice.
  • Add Payment — record a payment for this payer and optionally allocate it.
  • Create Invoice — raise a new invoice from the “Not Yet Invoiced” fee lines or from scratch.
  • Create Credit Note — raise a standalone credit note for this payer.
  • T-Account — toggle the running ledger view, described below.

Three sub-tabs — Invoices, Credit Notes and Payments — let you drill into any of the payer’s records. A Not Yet Invoiced section at the bottom shows fee lines that have been added but not yet placed on an invoice.


Debtor Management

The new Debtor Accounts index (under Finance > Debtor Accounts) consolidates outstanding balances across every payer in your account. Debtor records are created and maintained automatically — there is no manual setup required.

Debtor Accounts index

The header counters show how many debtors are currently Current, how many are Overdue, how many carry the Bad Debtor flag, and the total outstanding figure across the account. The grid shows each debtor’s name, type (Student, Contact, Organisation), Total Outstanding, Oldest Unpaid date, Ageing bucket (0–30, 31–60, 61–90, 90+), Status and a Bad Debtor badge where applicable.

A debtor record is created automatically the first time a payer is sent an invoice, and is kept up to date by the overdue scheduler that runs in the background. Clicking a debtor name takes you to the payer’s Fees tab, where the full transaction history is available.


Write-Offs & Bad Debt

An overdue or uncollectible invoice can now be written off in full or in part directly inside SELMA, creating a formal audit record rather than requiring an external workaround. The Write Off action lives in the invoice actions menu and is gated by a dedicated permission. Once a write-off is recorded:

  • The remaining balance on the invoice is settled by a special write-off line, shown on the invoice as Less: Write Off with the date.
  • The invoice status moves to Void and its amount due becomes zero.
  • The debtor account for the payer is automatically flagged as a Bad Debtor.
Invoice written off, showing Less: Write Off line and Void status

On the Payments grid, a write-off shows with a distinct orange Written Off badge so it is never mistaken for a real cash receipt. Write-offs are not editable like normal payments — they must be reversed using the Reverse Write-Off action if circumstances change. Reversing a write-off also re-evaluates and clears the bad debtor flag automatically, provided no other active write-offs remain against that payer.

Bad debtor warnings

When a payer carries the Bad Debtor flag, SELMA surfaces a yellow inline warning when you select them as the payer on a new invoice. The warning shows the outstanding amount and any written-off amount, but does not block the action — staff with the relevant permission can proceed when appropriate.

NOTE: The Bad Debtor flag can only be removed by a user with the Remove Bad Debtor permission. This protects against the flag being lifted accidentally in the course of normal data entry.


T-Account View

The T-Account toggle on the Fees tab switches the standard grid for a traditional ledger view. Charges (debits) sit on the left, credits sit on the right, and a single balance figure sits underneath.

T-Account view on the student Fees tab

The left column (Debits) lists every invoice fee line as a charge, plus any refunds issued — money returned to a payer is a debit against the account balance. The right column (Credits) lists every payment allocation, credit note application, and write-off, each tagged with a PaymentCredit Note, or Write-Off type badge so the source is always obvious. Write-offs are shown in a distinct colour and are excluded from real-money totals, so they are never conflated with genuine cash receipts.

The T-Account is available on the Student, Contact and Organisation fees tabs. It is not shown on the narrower enrolment and application fee tabs, where the standard grid view continues to be used.


Quick Actions on the Indexes

+ button now sits beside the title on both the Payments index and the Credit Notes index, opening a quick-create modal without leaving the page.

Add Payment modal opened from the Payments index

The standalone Add Payment modal asks for the payer type, amount, payment method, payment date, reference and description. On save, SELMA opens the new payment’s detail page with the Allocate panel ready for use, so the user can record a payment and allocate it in one continuous flow.

The Credit Notes index + button works the same way for standalone credit note creation.

Invoice actions menu showing Add Payment & Apply, Create and Apply Credit, Create Credit Note

The same actions are reachable from the Actions menu on every invoice detail page — the cog icon at the top right of the fee lines panel exposes Add Payment & ApplyCreate and Apply CreditCreate Credit NoteWrite Off (where permitted) and Send To Xero.


Deletion & Voiding Rules

To keep financial records consistent, SELMA now enforces a set of deletion rules. The same rules apply whether the action is initiated from the index, the detail page, or the Fees tab. These rules replace the previous behaviour where records could sometimes be removed without clearing associated transactions first.

  • Payments — cannot be deleted while any allocation remains active. An unallocated payment can be deleted; any direct refunds against it are removed at the same time.
  • Invoices — cannot be deleted while they have active payment allocations or credit notes applied. Draft and Void invoices can be deleted freely; when a draft has fee lines, the user is prompted to release the lines back to “Not Yet Invoiced” or delete them with the invoice.
  • Credit Notes — cannot be deleted while they have active allocations or refunds. Credit note lines are always removed together with the credit note itself.
  • Refunds — can be deleted; the parent payment or credit note’s remaining balance is recalculated automatically.
  • Payment Allocations — are not deleted directly. Use the Reverse action on the allocation, which marks it as voided and frees up the balance on both sides.
  • Write-Offs — cannot be deleted; they must be reversed via the Reverse Write-Off action, which also re-evaluates the bad debtor flag.
  • Voiding an invoice — uses the same guard rails as deletion. An invoice with active allocations cannot be voided until the allocations are reversed.

NOTE: Where an action is blocked, SELMA shows an inline explanation pointing at the active allocation, refund, or credit note that needs to be cleared first. Nothing is ever silently cascaded.


Notes

  • Permissions: the new actions are gated by existing finance permissions where possible. The Write OffReverse Write-Off and Remove Bad Debtor actions sit behind their own permissions and need to be granted to custom roles via the role editor.
  • Xero: the existing Xero sync continues to work. Invoices, credit notes, payments and refunds are mirrored across to Xero through the Send To Xero action, and Xero state is shown on each record where applicable. Syncing is a manual step — staff choose when to push each record.
  • Currency & timezone: all amounts are recorded in the payer’s account currency. Dates on every screen are displayed in the user’s timezone, while records are stored in UTC.
  • Data integrity: behind the scenes the allocation, refund and credit-note services now hold a write lock and re-check the balance under the lock, so two staff members allocating against the same payment or invoice at the same time can no longer overspend an amount.
]]>
/finance-module-2/feed/ 0
Application Module /application-module/ /application-module/#respond Tue, 30 Jun 2026 05:30:06 +0000 /?p=5674 An application is a pathway that a student undertakes before an enrolment record can be created for them in the system.

It involves multiple steps, each with prerequisites that the student should meet.


In this article:


Create an Application Template

Figure 1. Navigate to Settings > Application Template Manager

Figure 2. Click the “+” Icon to Add a New Template

From the Application Template Manager you can create a new template or edit and duplicate existing templates.

Figure 3. Add Template Name and Description

Enter a name and description (orange), and activate the template if you need to use it straight away (red).


Application Template Editor

The three categories Submitted, In Review, and Outcome each have two tabs: fields and steps.

The “Steps” tab is where you add steps of the Application pathway, and the “fields” tab is where you add fields which determine the pre-requisites of each step in the pathway.

To populate a custom list of steps and fields please click “Manage Steps” and “Manage Fields” under the corresponding tab. This will take you to Lookup Data.

  • Note: To create fields under Lookup Data, please add custom values under the header “Application”. To create steps under Lookup Data, please add custom values under the header “Application Step”.

Figure 1. Submitted

Steps (purple) and fields (lilac) added on the Submitted category (brown). Click and drag available fields and steps to this area.
Note: If you need to add new fields to a step open the “Fields” tab (red) and click “Manage Fields” (green). If you need to add new steps to a category open the “Steps” tab and click “Manage Steps”. Please also remember to click the top right save button before editing the next category.

Figure 2. In Review

Steps (purple) and fields (lilac) added on the In Review category (brown). Click and drag available fields and steps to this area.
Note: If you need to add new fields to a step open the “Fields” tab (red) and click “Manage Fields” (green). If you need to add new steps to a category open the “Steps” tab and click “Manage Steps”. Please also remember to click the top right save button before editing the next category.

Figure 3. Outcome

Steps (purple) and fields (lilac) added on the Outcome category (brown). Click and drag available fields and steps to this area.
Note: If you need to add new fields to a step open the “Fields” tab (red) and click “Manage Fields” (green). If you need to add new steps to a category open the “Steps” tab and click “Manage Steps”. Please also remember to click the top right save button before editing the next category.

Figure 4. Save and Enable Enrolment Creation

To create an enrolment on a particular step, click the toggle (blue) and click save as before.


Create an Application

If you are creating a student for the first time, you can create an application directly on the student creation form.
Otherwise, you can navigate to the application index and create an application from there.


Figure 1. Click the “+” Icon to Add a New Template

To create a new application, click the “+” icon (orange). You can also switch between the Kanban view (red) or list view (green) on the index grid to sort and view existing application records.

Figure 2. Select Intake and Application Template

Fill out all required details as marked by red asterisks and select the Application Template you just created. Once you select an available intake (orange) the date range and components will be automatically inherited from that intake (green).

Figure 3. Select Student/s

Search for and select available student/s (black text).

Figure 4. Add Fees and Link Relationships

Add additional details and relationships to the Student Application.


Manage and Review Applications

Figure 1. Progress Bar

You can see the steps in the Application pathway as a progress bar at the top of the screen (green). The corresponding fields for each step is found below the progress bar, and can be edited by clicking the pencil icon next to the field (purple). Click on each step title to move to the next step.
Note: If mandatory fields haven’t been filled, you will see a warning message at the of the screen and will be prevented from moving on to the next step.

Figure 2. Update the Application Status

Once you have filled out all prerequisites under each step, click the “Mark as Current” button to update the Application Status (red). This will update the progress bar to show you which steps have been completed on first view.


Figure 3i. Application Components

These Components are inherited from the Intake if it has been set-up there, previously. If you don’t see the Component/s you need, you can add them ad-hoc using the “Map Components” button.

Figure 3ii. Select Components

Search for your Component in the search field (orange), and click and drag the card tile from the left column to the right column.

Figure 4. Change the Intake and Application Template

If you need to change the Application Template edit the field (red). If you need to transfer the Application to a different Intake, click the double-arrow icon (purple).
Note: This will revert the application progress back to Step 1 of the new template.


]]>
/application-module/feed/ 0
3.32.0 Release Notes /3-32-0-release-notes/ /3-32-0-release-notes/#respond Tue, 23 Jun 2026 03:10:55 +0000 /?p=5637 New Features

TCSI Compliance (Australia): SELMA now supports TCSI (Tertiary Collection of Student Information) compliance for Australian higher-education and VET Student Loan providers. This release delivers the full capture-to-export flow: compliance fields across student, programme, enrolment, unit-enrolment, component, campus and organisation records on the Australia Compliance tab; OS-HELP loan management with the federal scheme rules enforced at save time; Commonwealth Scholarship management with type, status, amount, reporting period and termination reason; and TCSI report generation, where you pick a half-year reporting period and download a zip of CSV files with a preview step that flags records missing required fields. All TCSI features are only visible on accounts where the TCSI HEP or TCSI VSL configuration flag is enabled. This first version produces CSV files for lodging via the TCSI portal; direct PRODA-authenticated submission to the federal B2G API is a planned follow-up.

Multiple Moodle Instances: You can now connect more than one Moodle site to SELMA and choose which one each programme syncs with. Manage instances under Integrations → Moodle, where each instance has its own connection settings, default roles, group basis, and per-instance actions like Test connection, Reload courses and Reload gradebook items. When editing a programme, pick the target Moodle instance from the new dropdown. Existing single-Moodle setups are migrated automatically — your current connection becomes your first instance and all programmes are pointed at it on upgrade.

Moodle Learner Access Control: Moodle access can now be suspended and reinstated for a learner without changing their enrolment. From the student and teacher pages you can switch a person’s whole Moodle login off and on, and from an enrolment’s components you can revoke or restore access to a single course while keeping the learner enrolled and their grades and progress intact. The same action is available in the Workflow Builder, so access can be granted or revoked automatically — for example on an enrolment status change, an overdue invoice, or a set period after the course end date.

Moodle Groups by Intake: You can now create Moodle groups based on Intakes, Classes, both, or none — selectable from a new dropdown on the Moodle integration settings page. Previously groups could only be created from Classes, which forced Intake-led flows to set up Classes purely for the integration.

Sync Intake Staff to Moodle: You can now sync staff to Moodle directly from an intake’s Staff tab, just like on classes. Active staff are enrolled as teachers on the Moodle courses mapped to the intake’s components and its active enrolments’ components, and added to the intake group where your Moodle instance uses intake-based grouping.

Text Messaging in the Workflow Builder: You can now send text messages as part of an automation, and trigger automations when a student replies to a text. Choose an existing text template or compose a custom message (up to 300 characters) with merge fields, target a recipient’s mobile, home or work number, and optionally route replies through to manager escalation. Opted-out recipients are skipped automatically.

Restore Deleted Student Records: Users with the new Restore Student permission can now restore deleted student records and all related data from the Student listing. Restorations and deletions now appear in the system audit. The new /student/restore permission will need to be assigned to any custom roles that require it.

Enhancements

Completion Workflow: The Completion Workflow has been overhauled to run reliably. Completion rules now record a completion date alongside the completion code, so completions appear correctly in NZQA, SDR and UIP reporting (an existing completion date is never overwritten). Rules on parent components and on the enrolment itself now fire when their children or components are completed, including within the same run. Each run is recorded with its status and duration, and a failed run is retried from the last successful point so no changes are missed.

Enrolment Components: The component slide-out on enrolments, intakes and programmes now shows the component’s parent and order of delivery, and lets you open the underlying component in a new tab. New Zealand providers can now mark a unit standard as reported to NZQA by another organisation (for example a Gateway or managing provider); flagged unit standards are kept out of your NZQA results and are not cross-credited, so credits and funding aren’t duplicated.

Intake Components Grid: Editing cells in the Components grid on the intake page no longer requires a double-click — a single click opens the editor, and clicking outside the grid commits the change. When the grading scheme on an intake component is changed inline, you are now prompted to propagate the new scheme down to existing enrolment components, the same prompt that already appears when editing via the Configuration card.

Bulk Report Exports: You can now export Student reports from the Organisation Students tab and Enrolment reports from the Class Enrolments tab. The Class Enrolments tab is now grouped by Programme, with the default view remaining all grouped together.

Bulk Email Performance: Bulk emails to intakes and classes now send faster, especially when the body uses few or no mail-merge fields, and large recipient lists with attachments no longer time out — each recipient still receives their own personalised email with its own copy of the attachments, processed in the background.

Student Creation: A new Student Email Template field on the Object Configuration page lets you set up a template for auto-generating primary emails on the new student form, and the form now lazy-loads contacts and organisations for better performance. The student creation form itself can now be configured via Object Configuration, and an employer added during student creation is now automatically marked as the primary stakeholder.

Intake Potential Worth (Australia): When a contract is set and linked to an Intake, the potential worth is now drawn from it; where a contract schedule exists, this value is calculated and shown as the potential worth.

Intake Visibility: The intake dropdown on the new enrolment screen now hides intakes the user is not linked to, matching the visibility rules used elsewhere in the product. Users with the view-all intake permission continue to see every open intake.

Accommodation Advanced Search: Advanced Search is now available on the Accommodation listing grids.

New Zealand WBT Fields: Student WBT fields are now displayed across all New Zealand instances.

Application Step Changes: The confirmation dialogue shown when changing an application’s step has been removed to streamline the workflow.

Complex Programmes: Improvements to creating programmes with more complex structures.

Bug Fixes

Enrolment Staff Assignment: When creating an enrolment, the assigned staff member is now selected from the first Intake staff member whose Valid From / Valid To range covers today, rather than always the first staff member on the Intake regardless of their validity dates.

Programme Permissions: Users with a view-only role on Programmes can no longer save changes. Previously, opening an edit card and clicking Save still went through on the server, leaving the audit trail showing the view-only user as the last editor. Save buttons and pencil icons on the avatar, Fees and Components tabs are now hidden for users without the Programme edit permission.

Same-Day Intake & Class Linking: Intakes and enrolments ending today now appear when linking enrolments to a class on the same day. Previously the intake had to end on a future date.

Duplicate Moodle Welcome Emails: Students and teachers no longer receive repeated course welcome emails when synced to Moodle. SELMA now checks whether the person is already enrolled in the Moodle course before enrolling them, and students added to a course directly in Moodle are now recognised and marked as enrolled in SELMA on their next sync.

Workflow Builder Dates: Workflow Builder emails and scheduled triggers now use the account’s timezone. Merge fields render the date the user sees (with an optional |datetime modifier), and time-offset triggers fire on the correct local calendar day instead of the server’s UTC day.

Intake Report Export List: Fixed Intake-specific reports incorrectly appearing in the Bulk Enrolment Export list.

Form Submission Count: Fixed the unassigned form submission count icon not displaying for role-based users.

Student Import: Resolved an issue with the student import.

]]>
/3-32-0-release-notes/feed/ 0
3.31.0 Release Notes /3-31-0-release-notes/ /3-31-0-release-notes/#respond Tue, 09 Jun 2026 04:12:06 +0000 /?p=5613 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 added to an opt-out list and excluded from future sends, with a transactional override for messages that must still go out. Bulk sends let you choose whether to text the Mobile, Home, or Work number, and a new text icon on the student and enrolment pages gives quick access to the compose panel. Sending texts and validating numbers are controlled by dedicated permissions, granted to registrar and admin roles by default. Requires setup — get in touch if you’d like to use this in your instance.

SELMA Forms — Multi-Signature Collection. Forms can now collect signatures from multiple contacts in a single submission. Each contact is assigned their own block so they only edit the fields meant for them, and verifies their identity with a one-time password sent to their email. A countersign email can be sent automatically on submission or manually from the submission page. For New Zealand, Training Agreement generation now runs automatically on valid submissions, with follow-up tasks raised when submitted data doesn’t meet requirements.

Enrolment Expiry. Programmes and Components can now be given an expiry duration. SELMA automatically sets an expiry date when a component is completed with a passing code, or when an enrolment is fully graduated. Expiry dates are exposed to the Workflow Builder so you can build “approaching expiry” automations, and any manual override you set is always preserved.

Multi-Provider Compliance Reporting (Multiple EDUMIS). New Zealand only. Organisations flagged as Internal can now hold a Provider Code (EDUMIS), and programmes can be linked to an internal organisation. The SDR extraction, UIP extraction, and EPI report screens now offer an Internal Organisation filter, so providers managing more than one EDUMIS can extract and report on each provider’s data separately. Single-EDUMIS providers are unaffected — the filter is optional and only needs to be used by organisations operating multiple provider codes.

Funding Revenue on the EPI Report. New Zealand only. A new Funding Rates management page lets you map a per-EFTS dollar rate to a funding source, category and year. The EPI report gains a Revenue tab that converts EFTS into dollar values, split three ways into Actual, Committed and Forecasted, with a cumulative revenue chart, full filtering, and a multi-tab Excel export. A new Forecasted Enrolments field on each intake drives the forecast figures.

Enhancements

Email Signatures. You can now save a personal email signature on your profile using a rich-text editor that supports pasted and uploaded images. It’s appended automatically to every new email you compose (and can still be edited or removed per email), and is available as a Sending User mail merge field for communication templates and PDF letters.

Dashboard Performance. The dashboard now loads its widgets in the background instead of waiting for all of them, so the page appears noticeably faster. Each widget also has a new refresh button to re-run its data on demand.

Report Builder. The Interested in Intake and Interested in Programme fields are now available in the custom report builder, each in their own group.

Form Submission Index. Added Interested in Intake and Interested in Programme columns to the form submission grid, and made student and contact names clickable through to their profiles.

Marking View. The marking list now supports the Column Manager, so administrators can show, hide and reorder columns per role. A new optional Component Code column is also available, hidden by default.

SELMA Form Fields (Australia). Added “Reason for study” and “Fee exemption/concession type” fields under the Aus Compliance group.

Enrolment Completion Codes. New Zealand only. Enrolment components at course level 9 or higher now default to the correct NZQCF Levels 9 & 10 completion code, including when auto-extending via SDR.

Bug Fixes

Custom Reports. Date sorting now takes the full date into account rather than ordering only by the day value.

Workflow Builder. The Selected Template preview shown beneath the template dropdown on the Send Email action now stays in sync with the template actually selected after saving and refreshing.

SELMA Forms. Email attachments now send correctly from the form submission index. Save and Continue now retains previously entered address and contact details instead of showing blank fields, and no longer creates duplicate records when a form is resumed and resubmitted. A publishing error that occurred when an existing user was set as the submission notification recipient has also been resolved.

Moodle Integration. Changes to a student or teacher’s profile fields in SELMA now correctly update the matching Moodle user (previously ignored when the account already existed). Field mappings can also now be cleared by saving them with an empty value.

]]>
/3-31-0-release-notes/feed/ 0
3.30.0 Release Notes /3-30-0-release-notes/ /3-30-0-release-notes/#respond Thu, 28 May 2026 21:59:15 +0000 /?p=5604 New Features

Organisation Merge. Organisations can now be merged into one another, with fine-grained control over which areas to carry across — invoices, academic relations, contacts, custom fields, and more.

Visa Subtype and Valid To. Visa records now support an optional Visa Subtype (e.g. AEWV, Subclass 500, NZeTA) that sits under the existing Visa Type, plus a separate Valid To date for cases where a visa’s study window is shorter than its overall expiry. Visa Subtype is hidden by default and can be turned on under Account Configuration; the system ships with around fifty common NZ and AU visas pre-seeded. Default Visa Type labels have also been tidied up. New mail merge tokens are available — {{studentlatestvisasubtype}}, {{studentlatestvalidto}}, and :visasubtype: / :validto: inside the {{studentvisatable}} loop — and the new fields are available in the Report Builder under Student → Visas.

Texting (TXT) UI/UX Rewrite. The text messaging interface has been redesigned as a modern chat-style conversation view. On Student and Enrolment pages you now see the full message history with chat bubbles, delivery status indicators (sent, delivered, failed — supplier-dependent), date separators, and a “Load older messages” button to scroll back through history. The compose bar sits at the bottom with a character counter and template selector. Bulk texting from Intake and Class pages keeps a streamlined compose-only view. Dark mode is supported throughout.

Dual Role Access and Portal Switcher. A single login can now hold any combination of Student, Contact, and Staff/Admin access — for example, a parent who’s also a former student no longer needs separate logins for each record. When a login holds more than one role, a switcher in the profile dropdown lets the user move between portals without logging out. When creating a user with an email that’s already linked to another portal account, admins see a clear confirmation prompt explaining who that account belongs to and offering to link the new record onto it. Profile pages show a linked accounts badge, and admins can unlink a single role from a multi-role login. Email sync between linked records behaves intelligently based on whether the student portal is enabled. Lock warnings on shared logins are clearer, and SELMA Admins / Primary Users can no longer be locked from a Student or Contact record.

Enhancements

Public Trust on Applications. Public Trust submissions can now be set up during the Application stage, not just on the Enrolment. The Public Trust card appears on a new NZ Compliance tab on the Application page and behaves the same as on the Enrolment — submit, view the reference, record received and refunded amounts, and reverse the submission. When an Application is converted to an Enrolment, the existing Public Trust submission carries through automatically, so edits made from either page stay in sync. Existing enrolment-level submissions continue to display on the Enrolment unchanged.

Class Enrolments grid. Six new opt-in columns are available via the Column Manager: First Name, Surname, Start Date, End Date, Time Elapsed (percentage of the enrolment window that has passed), and Progress (percentage of enrolment components marked complete). All six default to off, so existing layouts are unchanged.

Column Manager. The Column Manager admin screen has been refreshed. Grid types are now grouped by domain (Students, Enrolments, Classes, Curriculum, Finance, Accommodation, etc.) rather than presented as one flat list, role columns stay in view as you scroll, and grids belonging to a feature your account has switched off (Accommodation, Placements, Applications, Orders, Quotes) no longer appear. Individual columns are also feature-gated — the Total EFTS column on the class enrolments grid now only appears for accounts using the NZ SDR module.

Grading Schemes — Past Days Warning. A new Past Days Warning field has been added to Grading Schemes (System → Grading Schemes). When a value is set, a yellow warning banner appears in the Grade Selected modal if the attempt date is at least that many days in the past. Leaving the field blank disables the warning.

Custom Fields in the API. Custom field values are now available through the API on Components, Enrolment Components, Intake Components, Students, Enrolments, Intakes, Campuses, Classes, Placements and Users. Each parent resource lists its custom field values as a collection of references; following a reference returns the value alongside the field’s label, API name, and type. Values can also be created, updated, and soft-deleted via the API. Writes are validated against the field’s configured constraints (mandatory, max length, regex, type, options) and account-scoped, so consumers cannot reference or modify another tenant’s data. Field definitions themselves remain admin-only and are not writable through the API.

Exclude from SDR via the API. The Exclude from SDR flag on a New Zealand enrolment component is now available through the public API on the /api/new_zealand_enrolment_component_extensions endpoint, so external integrations can read and update it without using the web interface.

NZ enrolment fields in Workflow Builder. New Zealand enrolment component fields — Exclude from SDR, Funding Source, Funding Category, Attendance Mode, International Fee Category, Course EFTS, Course Credits, tuition and foreign/compulsory cost fees, SDR Committed Date, Apprenticeships, Secondary School Programme Indicator, Unit Standard, Off Job Delivery, Off Job Delivery Provider, and related off-job delivery fields — are now available in the field picker for the Enrolment Component Updated trigger.

Report Builder — Student Identifier. A Student Identifier field has been added to the Report Builder for tracking students who have custom IDs different to the SELMA Student ID.

Event Report Export. The Event Report CSV export now correctly shows the Assigned To user for each event, and the column heading has been updated from “Assigned By” to “Assigned To” so the label matches the data.

Bug Fixes

UIP Report — validation, delivery site, offshore visa and timezones. UIP Report validation no longer blocks providers with NZ citizens or domestic fee-paying learners — missing Passport Number and Immigration Status are now warnings rather than errors unless the learner is International Fee-Paying (fee paying status 02), and Immigration Status code 99 (“Other, e.g. offshore”) is accepted as valid. The UIP delivery site code now assembles from the provider’s MoE number and the campus’s delivery site suffix (e.g. 7375/6 for online delivery) rather than the generic campus code — set the “Course Delivery Site” field on each campus before regenerating the file. International fee-paying students with no visa record on a campus marked as offshore (delivery site 6) are automatically reported as immigration status 99; students with no visa on other campuses still surface as validation errors. Dates in the submission file are now formatted in New Zealand time, fixing a one-day shift that could move a Friday end date to Thursday. The “Course Delivery Site” field on the campus compliance card is now visible to accounts with UIP enabled (previously only visible with SDR).

Background task notifications. Background task notifications now reliably progress from Pending to Processing to Completed (or Failed). Previously some notifications stayed on Pending after the underlying job had finished.

Bulk Enrolment Status Change. Fixed an issue where bulk enrolment status changes were failing to update to withdrawn.

Grading schemes API timeout. The /api/grading_schemes endpoint no longer times out on tenants with large amounts of curriculum data. The response now returns each scheme with its identifying fields (code, name, label, numerical_grading, active, system_default) and its grade definitions inline. The programme components and intake components collections have been removed from the response payload — consumers who need to know which programme or intake components are linked to a grading scheme should query those endpoints directly with the grading_scheme filter, e.g. /api/programme_components?grading_scheme=/api/grading_schemes/{id}.

]]>
/3-30-0-release-notes/feed/ 0
Custom Fields API /custom-fields-api/ /custom-fields-api/#respond Wed, 20 May 2026 05:21:54 +0000 /?p=5596 In this Section:

Custom fields let an organisation attach extra structured data to records such as students, enrolments, intakes, contacts and organisations. Each field has a type (text, number, date, time, check, drop, multi, link or textarea) and is scoped to a particular record type — for example a Student field cannot be written against an Enrolment.

This article covers the API surface for reading custom field definitions and writing custom field values. Field definitions themselves are created and edited in the SELMA admin UI — there is no POST on /api/custom_fields.


Discovering fields

GET /api/custom_fields returns every field defined for your account. Each item exposes the field id, label, api_name, the type (with a code such as drop or text), the object it belongs to (e.g. S for Student), and — for drop and multi fields — a customFieldOptions array of option IRIs.

GET /api/custom_fields/19142

{
  "@id": "/api/custom_fields/19142",
  "id": 19142,
  "label": "Favourite Colour",
  "api_name": "favourite_colour",
  "custom_field_type": { "code": "drop", … },
  "customFieldOptions": [
    "/api/custom_field_options/60792",
    "/api/custom_field_options/60793",
    "/api/custom_field_options/60794"
  ]
}

Filter the collection by api_name, label, custom_field_object, or custom_field_type:

GET /api/custom_fields?api_name=favourite_colour

Discovering options

For drop and multi fields, dereference any IRI from the field’s customFieldOptions array, or query the collection directly:

GET /api/custom_field_options?custom_field=19142

{
  "totalItems": 3,
  "member": [
    {
      "@id": "/api/custom_field_options/60792",
      "id": 60792,
      "custom_field": "/api/custom_fields/19142",
      "code": "red",
      "name": "Red",
      "value": "red",
      "sort_order": 1,
      "active": true
    },
    …
  ]
}

Also filterable by code and active.


Writing values

A custom field value binds a field to a single parent record (such as a student or enrolment) and carries the user’s input in selected_value.

Three things to send on every POST:

  • custom_field — IRI of the field definition.
  • One parent IRI — exactly one of student, enrolment, enrolment_component, intake, intake_component, programme, component, campus, contact, organisation, class, sysuser, application, or placement. It must match the field’s custom_field_object.
  • selected_value — a flat value whose shape depends on the field type.

Shapes for selected_value:

  • text / textarea / link / number — a scalar string.
  • date"YYYY-MM-DD".
  • time"HH:MM" or "HH:MM:SS".
  • check"0", "1", "true" or "false".
  • drop — a single CustomFieldOption IRI.
  • multi — an array of CustomFieldOption IRIs.

Examples

Text field on a Student

POST /api/custom_field_values
Content-Type: application/ld+json

{
  "custom_field":   "/api/custom_fields/19140",
  "student":        "/api/students/800990683",
  "selected_value": "Jane Doe"
}

Drop field on a Student

POST /api/custom_field_values

{
  "custom_field":   "/api/custom_fields/19142",
  "student":        "/api/students/800990683",
  "selected_value": "/api/custom_field_options/60793"
}

Multi field on an Enrolment

POST /api/custom_field_values

{
  "custom_field":   "/api/custom_fields/19150",
  "enrolment":      "/api/enrolments/12345",
  "selected_value": [
    "/api/custom_field_options/60792",
    "/api/custom_field_options/60794"
  ]
}

Updating and clearing

Use PATCH with application/merge-patch+json to change just the value:

PATCH /api/custom_field_values/132719
Content-Type: application/merge-patch+json

{ "selected_value": "/api/custom_field_options/60792" }

To clear a value, send null:

PATCH /api/custom_field_values/132719

{ "selected_value": null }

Rules and validation

  • Exactly one parent IRI per value — zero or two is a 422.
  • The parent’s record type must match the field’s custom_field_object.
  • For drop and multi, the supplied option IRI(s) must belong to that field. A 422 with “…” is not a valid option for this custom field. is returned otherwise.
  • Mandatory fields reject empty selected_value.
  • max_length and validation_regex from the field definition are enforced on text-shaped values.

NOTE: Field definitions and their options are managed in the SELMA admin UI. The API exposes them as read-only resources so integrations can discover what’s available and write values against them.

]]>
/custom-fields-api/feed/ 0