New: the Halo × Pennylane integration by Halentra is live. Take a look
Halentra
Home/Solutions/Halo/Release notes
Halo

Release notes

Current stable release
2.236.122
Latest beta
2.250.22

2.236.1

Unreleased

Released on Apr 15, 2026 · 109 updates

Added MCP and Virtual Agent functions for retrieving Users and Assets

#1322592

4 new functions are available to select in the MCP server configuration and on Virtual / Operations Agents:

  • Search Assets
  • Get One Asset
  • Search Users
  • Get One User

The user functions are only available for Agents (i.e. via Operations Agents or agent-authorised MCP calls) whereas the asset functions are available for both Agents and Users.

Added a new CMDB setting to control which field is displayed as the CI Name in the CMDB area

#1284307

This setting is found under Configuration → Asset Management → General Settings


It controls which field is displayed as the Asset Name in the CMDB

Improved Full-Text searching for Knowledgebase Articles

#1269513

Search results which contain the whole, unbroken search phrase will have their search result boosted above articles which otherwise also match the search phrase. This applies to both "Search for each word of the search string" and "Search for every word of the search string" Knowledgebase search modes.

Improved the performance of loading config changes and instances

#1250240

You can now configure which interactions to consider for Automatic User Anonymisation

#1211071

This is configured in Users > General settings:


There is an new interaction type of the Last Mail Campaign email sent to the User.


If you previously had this setting enabled, after upgrading, you will automatically have all new interaction types enabled, except for the Last Mail Campaign email option as this is new.


The interaction types are inclusive, meaning a User must not have had an interaction of all of the enabled types in order to be anonymised. Therefore enabling more interaction types will mean more criteria must be met for a User to be anonymised, and less interaction types enabled means less criteria must be matched for a User to be anonymised.


At least one interaction type must be selected for this feature to function.


For on premise HALO customers: You can set a maximum amount of Users that can be anonymised in one day by setting "AnonymiseBatchSize" in your AppSettings.json. The default is 200.


Added outbound integration request logging to the ServiceNow integration

#1210957

You can now customise the help menu

#1206856

In advanced settings, you can now enable the custom help menu




This will then bring up a table where you can configure the help menu


You can modify/deactivate the system help menu options by editing the links/labels 

As well as adding your own options, for example, a direct link to config tracking 


Added the ability to set security questions for users

#1185490

There is a new optional module in users configuration called security questions:


This module will allow you to configure questions that users can respond to in order to prove their identity when calling in. These questions can have their answers be validated against a minimum length, maximum length, and regex. You can set the number of questions that users have to answer when confirming their identity, up to 5, and can set limits on how many must be correct and how many are allowed to be incorrect.



When enabled, users who have not filled in answers to their questions will be prompted to do so on the portal, and can edit their answers from the preferences page. These answers can be shown as plain text or as passwords.


On the call screen, once a user has been selected the agent can choose to check the user's security questions. The user can tell the agent their answers so that they can be validated:


If validation succeeds, the user will be saved against the call.

Added a Widget to show Supplier contact information when you hover over a Supplier field on an action

#1185476

For example, when doing a Log to Supplier Action:


This can be disabled in Suppliers > General Settings.

Added $-variables for use in runbook failure notification email templates

#1169825

The currently supported variables are as below:

  • $-RUNBOOKID, the unique identifier for the runbook
  • $-RUNBOOKNAME, the name of he runbook
  • $-RUNBOOKNOTES, the notes from the runbook
  • $-RUNBOOKLOGRETENTIONDAYS, the number of days that logs for the runbook are retained
  • $-RUNBOOKGROUPNAME, the name of the runbook's group

You can now select which Report Group to clone a Report into when using the Save as New button

#1157176

Added an "AI created" flag to Tickets, Actions and KB Articles

#1157155

When the system creates a ticket, action or KB article via AI, a flag is now set in the database for reporting purposes. The field names are faicreated, aaicreated and kbaicreated respectively. These can be set via the API using the "ai_created" property.


The ID of the Virtual Agent, AI Agent, or MCP Tool Collection that was used to create the entity is also tracked using the following fields: fvirtualagentid, avirtualagentid and kbvirtualagentid. This will correlate to the ID in the VirtualAgent table.

Added "inactive" field to GET /tickets ticketidonly=true API payloads

#1130837

You can now configure workflow/sequence style campaigns

#1125786

There is a new "style" field when creating a new campaign:



The scheduled style is existing functionality; you can configure emails and choose dates/times to send out the emails.


The new workflow style allows you to use the workflow editor and create sequences/journeys for contacts/accounts as well as leads/opportunities.


All types of campaigns are available for workflow style campaigns; blast, nurture triggered and nurture scheduled:



Multiple inclusion and exlusion segments are supported.


After filling out intial details and saving, a new tab will appear called "Flow Chart":



This shows the workflow editor that is very similar to creating lead/opportunity workflows as well as custom integrations.


The main point of difference is the step logic. There are four step types: Action, Communication, Split and End.


Each step also shows the count of contacts/leads that are currently on that step.


Action step:

This allows you to choose from a dropdown of actions to perform.


This is currently limited to the "Delay" action. The available actions will grow over time, including being able to update contact/lead data from within the worflow and intiate custom integrations, runbooks and trigger webhooks.


Communication step:

This allows you to choose from a dropdown of communication methods. This is currently limited to emails but will quickly be expanded upon.


Selecting "Email", will then allow you to choose a campaign email from the "Email Setup" tab or design new emails within the step itself by enabling the below setting in Configuration > Campaigns, under the Campaign workflow settings group:



Each email communication step will show the current status of the email as well as metrics assoicated with that email. This includes the total sends, open rate, click rate and unsubscribe rate.


Emails do not need to be "Ready" to start the campaign. If a user/leads hits a step that the email is in a draft status, they will simply move past this onto the next step.


Hovering over each metric will show a popup to further describe the metric, for example hovering over the paper plane:


Split step:

The split step type allows you to branch off your segments within the campaign based on the same available filters when configuring distribution lists. The filters are built using groups to allow for "or" conditions. For example, condition A is true or condition B is false follow down the "Condition met" path.


The available split conditions will also be exapanded upon in the near future.


End step:

This step is used to easily indicate the end of the campaign. They are not mandatory, oncee a user hits a step with no next step they will stay on that step. There is also no limit to the number of "End" steps.


Example:

Basic example of a campaign workflow:


  • Send an email to the entire segment
  • Wait 7 days
  • Check criteria against all the users and split the segment based on the whether they match the conditions or not
  • Send email A to everyone that matched, send email B to everyone that did not match.
  • Wait 10 days
  • Send email C to everyone
  • End of campaign


The workflow editor is a drag-and-drop interface and can be designed in any orientation, allowing you to arrange your processes in whatever layout makes the most sense. Here is an example of the same workflow, top-down:



Steps can be linked to any other step within the flow and you can create cyclical sequences, for example, to handle dead leads on a recurring basis.


When contacts/leads are added to the linked segment(s), on an already started campaign, they join the flow at the start step.


You can also edit the workflow after the campaign has started. This allows for you to configure long lasting workflows that you can continue to add to. The only restriction is you can not delete a step that has users currently on it.


Completing / Cancelling / Ending the campaign:

The campaign is "complete" when all users/leads have reached the final step.


If the campaign is "cancelled", all users/leads will stop on their current step and no new entries are accepted. All queued emails that have not yet been processed will also be cancelled.


If there isn't a last step, users/leads will continue on the campaign until it has been cancelled.


Nurture - Triggered and Scheduled:

When ending the campaign, existing users/leads will continue through the workflow until they reach the final step. New users/leads will not be added to the start of the campaign.


General information:

All, for example, configuration options, metrics data, logging is also available to the workflow style campaign.

Added the ability to restrict Agent Custom Fields

#1118901

Added ticket type groups as criteria options to AI Suggestions.

#1114680

This requires ticket type groups to be enabled in tickets general settings.

Added access control to the Active Directory integration

#1104137

Added a Ticket Type setting to automatically set the agent logging the ticket as the default user on new tickets

#1101801

Added Unassigned for X Hours - Assigned to Recipients team notification event

#1079344

Added Access Control to Event Management Rules

#1079318

Added new $-CONVERSIONRATE variable to Quotes, Purchase Orders, Sales Orders and Invoices

#1075010

Added a Global Ticket setting to automatically default the team to the origin ticket's team when using the 'Add Action to New Ticket' function

#1069408

Added a new Ticket > General Setting to allow agents to preview canned text content before inserting it into an action

#1029401

Added the ability to run approval steps in parallel

#976920

Approval steps can now be configured to not be grouped, be the main step in a group, or be part of a group. When part of a group, some configuration options against the step cannot be set as they are inherited from the main group step. Examples of these fields include those pertaining to outcome notifications and status changes during/after approval. Steps in the same group must be sequential, with the main group step being the first in the sequence.




In the below example, three steps are configured to be in the same group and therefore run in parallel on tickets. This means that when the approval process reaches the main group step, all steps in that group are started. The process is rejected if one step in the group rejects and is approved when all steps approve (in respect to their approval/rejection thresholds).


On the ticket, you will see all steps in the group as active:


Added new Exchange Calendars setting to use built-in recurring appointment creation instead of Exchange Calendar creation method

#830713

After enabling the new setting, recurring appointments will be created and managed in Halo, rather than sending the recurring master to Exchange to create the series. 
The individual appointments in the series will then sync to Exchange separately.

The new setting can be found in Configuration > Integrations > Exchange Calendars, under the Syncing Appointments to Exchange tab.

Extended daily ephemeral record clean up to include deletion of Attachments linked to relevant Email Store records

#764945

You can now display the agents availability summary on the calendar

#615439

Configuration -> Calendars and Appointments -> General Settings -> Display the Agents availability overview on the calendar


With the new setting enabled, you now get an overview header showing the actual hours, target hours and availability percentage. Availability is calculated off of appointments and the agents timesheet and mirrors what is displayed on the planning view of the timesheet screen.


This is available for day and week view within the calendar module.



Resolved an issue with using the threading function for outbound emails failing to exclude Dutch undeliverable emails

Also in 2.236.1 · 2.220.111

#1323731

Fixed an issue with OLA notification triggers

#1323640

Resolved an issue with Ticket Level rounding causing time to appear in ready for invoice when multiple actions on a ticket are rounded down to 0 in total

#1322847

Fixed the get_one_article function for MCP and Virtual Agents not returning the resolution field

Also in 2.236.1 · 2.220.111

#1322472

Resolved an issue with recognising downpayments from the ready for invoice area failing to correctly mark the sales order as fully invoiced

#1311987

Fixed a rare issue where Items wouldn't load

#1311956

Resolved an issue with the Invoice quantity calculation showing as zero when using another Client software/subscription quantity

Also in 2.236.1 · 2.220.111

#1311932

Fixed a bug affecting access to other scheduled entities

#1311624

Fixed an issue with cost resetting to zero in the UI when updating distance on distance type expenses

#1311617

Fixed an issue with some delimiters not working correctly for SFTP CSV Imports

#1311609

Fixed an issue where child tickets on project templates wouldn't automatically link to Milestones

Also in 2.236.1 · 2.220.121

#1311582

Fixed an issue where <<halo_url>> would not work in custom integration url fields

#1311061

Resolved an timezone issue with the stored procedures/functions GetTimeBetweenDatesWithSLAID and GetTimeBetweenDatesWithWorkdayID

#1310800

Resolved an issue with Ticket Areas using "All" domain showing every Ticket/Project/CRM List

#1310631

Fixed an issue where duplicate invoice runs could be processed on the Accounts Integrator

#1310382

Fixed a bug where agent default team would not be validated on an agent update/creation via the API

#1310202

Fixed issues with new Intacct additions

#1310183
  1. Fixed an issue with Intacct Revenue Recognition schedule showing in error in some cases
  2. Fixed an issue with Intacct Project Task syncing behaving incorrectly
  3. Added CustomerPoNumber to the list of available intacct fields 

Fixed an issue with replacing money dollar variables for PDFs

Also in 2.236.1 · 2.220.111

#1310137

Fixed issues with using lookups to populate custom tables

Also in 2.236.1 · 2.220.111

#1309824

Resolved an issue with Ticket level charge rates showing in the global/main charge rate list

Also in 2.236.1 · 2.220.111

#1299511

Resolved an error with the "Email not sent" error showing on an action when an SMS action is saved with no phone number

#1299427

Fixed an issue where the Agent Cost table could cause errors

Also in 2.236.1 · 2.220.111

#1299409

Fixed a minor issue with new HaloCRM trials

#1299257

Minor change to the Datto RMM Integration page to update the remote control hint

#1299194

Resolved an issue with ticket type agent reminder email template showing incorrectly

#1299039

Fixed issues with inbound ServiceNow webhooks

#1298928

Fixed an issue with using access control for FAQ lists

#1298316

Fixed a minor issue with $ distributionlistid on custom dashbaord tabs

#1297058

Fixed an issue where Tax wouldn't sync to QuickBooks Online correctly when using override tax amount option

#1286426

Fixed a bug where dates wouldn't be converted to local time on service status updates

Also in 2.236.33 · 2.236.1 · 2.220.122

#1286392

Fixed an issue when trying to access integration runbooks

Also in 2.236.1 · 2.220.111

#1285826

Fixed an issue with the purchase order attachments not showing to users

#1284860

Minor improvement to OpenAI integration logs

#1284812

Fixed a bug where attachment urls could become malformed when attempting to download

#1284523

Fixed an issue where tickets sometimes failed to load when custom fields were included in the Kanban Card layout

#1284047

Fixed an issue where N-Able N-central asset import could sometimes fail when processing custom fields

#1283880

Fixed issues with the Deferred Revenue Item dropdown

#1273799

Fixed issue with being able to select system field visibility values within Asset Types

#1273607

Fixed a typo with the field hint for $-SEARCH input

#1273557

Fixed a visual bug where the value of the criterion wouldn't display against a custom button visibility condition for a single select field

#1273373

Added clarity to the UI, the Reports & Attachments field for On-Premises customers will now only display when not sending attachments from the database.

#1273260

Fixed an error when deleting custom fields due to integration field mappings

Also in 2.236.1 · 2.220.111

#1272471

Fixed an issue where Invoice Reminder emails could send incorrectly

Also in 2.236.1 · 2.220.111

#1272260

Fixed an issue where totals could display incorrectly on Purchase Orders

#1272204

Fixed issue with Mailbox restrictions not refreshing on the New Ticket screen

Also in 2.236.1 · 2.220.111

#1272034

Fixed Attachment Custom Fields mandatory functionality

#1271913

Fixed a bug where change freeze periods would not show on the calendar if the freeze period spanned a greater range than the calendar view period

#1270829

Fixed an issue where areplytoaddress is not populated when an action is created from an email

Also in 2.236.1 · 2.220.111

#1270786

Fixed a bug where the global default column profile would block edits when it was previously owned by a specific agent

#1270737

Fixed an issue where Virtual Agents would call functions multiple times when using the Responses API, e.g. causing duplicate tickets to be logged

#1270700

Fixed an issue where action visibility couldn't be set on an email rule for auto replies

#1270455

Fixed an issue with the ServiceNow integration when trying to sync a ticket to ServiceNow

Also in 2.236.1 · 2.220.111

#1270360

Fixed an issue where a ticket's client would not change when using the "Change client and site to the end-users default client and site" checkbox

Also in 2.236.1 · 2.220.111

#1270271

Fixed an issue importing assets with the Endpoint Central Integration

Also in 2.236.1 · 2.220.111

#1269719

Fixed not being able to disable the colour option on Custom Field values

Also in 2.236.1 · 2.220.111

#1269599

Fixed an issue with syncing agent role changes between instances

Also in 2.236.1 · 2.220.111

#1268694

Fixed an issue with allowing users to translate messages in embedded chats

Also in 2.236.1 · 2.220.111

#1268532

Fixed an issue with returning MYOB default item settings

Also in 2.236.1 · 2.220.111

#1267947

Fixed an issue when receiving stock via actions with the 'Receive stock on Purchase Orders' use

Also in 2.236.1 · 2.220.111

#1267679

Fixed a bug where date fields in the query builder could be returned with an accidental '1' or '2' added to the end of the string

#1265985

Fixed a display issue with the AI query builder on reports

Also in 2.236.1 · 2.220.111

#1264448

Fixed an issue with a setting for item accounts being set to SKU not being visible in some cases

#1264278

Improved the function to migrate custom fields to now include text fields

Also in 2.236.1 · 2.220.111

#1264216

Fixed an issue where column profiles could error on Quotes

Also in 2.236.1 · 2.220.111

#1248924

Added a warning to prevent merging the default email client

Also in 2.236.1 · 2.220.111

#1240793

Fixed an issue where surcharges would apply to Tickets more than once when option was enabled

#1240307

Fixed an issue where tax codes could display incorrectly when adding Item Bundles

#1239969

Added asset tags to the Virima integration

#1239722

Fixed an issue where the Sophos customer mapping dropdown would be limited 100 records

#1234509

Added memorySize as a mappable property in the Halo Asset Discovery integration

#1222899

Improved invoicing performance on large databases

#1194324

Fixed an issue where Google Cloud Platform-only customers wouldn't import in Google Workspace

Also in 2.236.1 · 2.220.111

#1190482

Improved performance of the query builder when querying asset fields

#1186289

Added User-Agent header to Sophos integration

#1145752

Fixed an issue with generating a unique document id on invoices created by ticket actions

Also in 2.236.1 · 2.220.111

#1126898

Fixed an issue where KB article link toggles were not shown on config detail pages

#1098018

Fixed an issue with forwarded emails displaying duplicate 'FW:' in the subject line

Also in 2.236.1 · 2.220.111

#1083232

Added the ability to Invoice to another client at the Recurring Invoice level

#1057967

Added the ability to lock tax on Invoice Lines

#1046513

To lock tax on Invoice lines, add the"&showfields=true" parameter to the URL, edit the Invoice, click "Update Table Values", and enable the "Lock Tax" checkbox. Tax for this line will no longer be updated.

Fixed an issue where amounts could sync incorrectly to QuickBooks Online when using multi-currency

#1041773

Added Top Level event triggers for Notifications/Webhooks

#1004756

Added the option to mark Invoices as sent when syncing to Xero

#1001773

This option can be found in Xero Details > Syncing to Xero, 'Mark as sent type on Invoices'