By
El Copeland
December 9, 2025
•
20 min read
By the [run]Book

Episode 13 of By the [run]Book dives into HaloPSA v2.206, a release packed with scalability improvements, billing accuracy upgrades, automation controls, and long-requested UI flexibility. Mendy and Robbie break down what’s new, what to enable (and what to be cautious with), and how these updates affect real-world MSP operations—from integrations and invoicing to load balancing and data governance. This episode is especially useful for MSPs managing growth, complex billing models, or high-volume integrations.
The following features stand out as the impactful changes in this release:
Incoming Webhook Service (Queueing) #794180 The new incoming webhook service introduces queue-based processing to prevent API rate-limit failures during high-volume events like invoice syncing. This is a major reliability upgrade for accounting integrations and lays the groundwork for safer, more scalable automation across Halo.
Items & Product Groups as Meters #1015992 Items and product groups can now be set as meters by default, simplifying setup for consumption-based services like Azure usage and backup storage. While meter period handling is still evolving, this is an important step toward more flexible usage-based billing.
Social Security Number Redaction #977591 Halo now supports automatic redaction of Social Security numbers and other sensitive data in tickets and actions. This adds an important layer of data protection and compliance, particularly for MSPs handling regulated or confidential information.
Automatic Reapplication of Billing Templates on New Contracts #791985 There is now an option to automatically reapply billing templates when you add a contract for a client, helping ensure billing consistency as agreements change. MSPs should enable this with care—client-level billing overrides should be avoided while templates are in use to prevent unintended resets.
Watch Now: By the [run]Book: Episode 13
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Full Feature List:
Incoming webhook service now available | v2.206 #794180 | 1:48
This introduces a queue-based approach to webhook processing to reduce failures caused by rate limits during high-volume events.
You can now set a default Ticket Status for updates in the Jira Software and Jira Service Management integrations | v2.206 #1016865 | 6:08
Allows control over the ticket status applied when Jira pushes updates into Halo.
Item/Product Groups can now be set as Meters by default and Items/Product records can also be set as Meters | v2.206 #1015992 | 6:54
Enables default usage-based billing behavior on items and product groups.
Added an option to the Dynamics 365 CRM Integration to enable/disable Customer imports matching on Customer Name if not matched on GUID | v2.206 #1015264 | 8:52
Adds control over customer import matching behavior in the Dynamics 365 CRM integration.
Parameters have been added to the Device endpoint to allow a smaller response object to be returned | v2.206 #1013180 | 11:15
Adds parameters to limit the size of API responses.
A setting has been added to Advanced Configuration to include Automation Actions to populate the dollar variables starting with SLAHOLDACTION | v2.206 #1011801 | 16:20
Adds control over how SLA hold automation variables are populated.
$PRODUCTCODE can now be used on the Bill PDF lines | v2.206 #1011633 | 19:00
Allows product codes to be displayed on billing PDFs.
A setting has been added to Timesheet Management Configuration to control whether to include rounding/minimums etc as part of the Charge Hours calculations | v2.206 #1010247 | 19:08
Adds flexibility to how charge hours are calculated and displayed.
You can now exclude agents from being auto-assigned tickets at the team level. This prevents selected agents from receiving tickets via load balancing or round-robin | v2.206 #1006134 | 20:58
Allows specific agents to be excluded from team-level auto assignment.
Added an alternative method to send User information when using JWT User matching for the Embeddable Chat Widget | v2.206 #1003959 | 21:59
Adds another method for passing user identity into embedded chat.
Payment Method and Reference have been added as options when creating Payments | v2.206 #1003949 | 22:26
Adds additional metadata fields when recording payments in Halo.
Tiered Pricing set against Items will now be used for Recurring Invoice lines and will update when adding new lines or when the quantity changes on the line | v2.206 #1003580 | 23:40
Ensures tiered pricing is correctly applied to recurring invoice lines.
Profit will now show in the Totals area of Invoices and Recurring Invoices | v2.206 #1002932 | 24:28
Adds total profit visibility directly to invoices.
Added the option to automatically create a business application instance when creating a business application | v2.206 #1002472 | 25:57
Automatically creates an instance when a business application is added.
A setting has been introduced (Configuration > Tickets > General) so that when using the Ticket Type settings for Scheduled Load Balance, new Tickets will no longer be Load Balanced when there are unassigned open Tickets with the same Ticket Type | v2.206 #1000142 | 26:35
Prevents new tickets from skipping ahead of existing unassigned tickets.
You can now show/hide the User system ‘Title’ field in Screen Layout Profiles for the User entity | v2.206 #999579 | 28:26
Adds control over visibility of the User Title field.
It is now possible to link Quote lines to Customers directly so that when Sales Orders are created they are split by customer | v2.206 #992459 | 30:46
Allows quote lines to be associated directly with customers.
You can now use the ‘Configure a new chart’ option in dashboard widgets to create multi-series charts from a single data source | v2.206 #990930 | 31:51
Enables multi-series reporting in dashboards.
It is now possible to import Overriding Item/Price data during the XLS Item import | v2.206 #989129 | 33:24
Supports importing item price overrides via XLS.
You can now set grouped rows on Column Profiles to be collapsed by default | v2.206 #987019 | 34:59
Adds a default collapsed view for grouped report rows.
When importing Devices using the NinjaOne Integration it is now possible to choose only one Organization or All Organizations | v2.206 #985878 | 35:46
Adds organization-level filtering during NinjaOne device imports.
Descriptions can now be added to FAQ lists and displayed on the tiles in the End-User Portal | v2.206 #982214 | 36:30
Allows descriptions to be shown on FAQ tiles in the portal.
Added Load Balance settings to Team level | v2.206 #979706 | 38:00
Moves load balancing configuration to the team level.
Added option to redact Social Security numbers from Ticket and Action fields | v2.206 #977591 | 41:13
Adds automatic redaction of sensitive data.
You can now set defaults for Custom Tables in Ticket Templates | v2.206 #975276 | 43:04
Allows custom tables to be pre-populated via ticket templates.
Added Access Control to Qualifications | v2.206 #971200 | 43:12
Introduces role-based access control for qualifications.
Added a Chat flow step to update linked Ticket Custom Fields with preset values | v2.206 #968961 | 43:26
Allows chat flows to populate ticket custom fields automatically.
Added the setting ‘Disable automatic loading of all services upon accessing the Service Catalogue on the end user portal’ to Services settings | v2.206 #968377 | 43:39
Improves portal performance for large service catalogs.
Added a time zone field at ticket level | v2.206 #961858 | 43:55
Adds time zone awareness directly on tickets.
You can now grant role-based read and modify access to custom fields on custom tables | v2.206 #957609 | 45:19
Adds granular permissions for custom table fields.
Added a global setting to set a password expiry date for End-Users and Agents | v2.206 #956854 | 48:23
Adds global password expiry controls.
Added a use field for asset types | v2.206 #950383 | 48:42
Adds a “use” classification to asset types.
Added Canned Text Shortcuts | v2.206 #949683 | 49:17
Introduces keyboard shortcuts for canned text.
Introduced new settings to enable user out-of-office | v2.206 #947700 | 49:44
Adds out-of-office controls for users.
Expense are now audited | v2.206 #811502 | 51:38
Expense actions are now tracked for auditing.
Added Line Column Profiles for invoices, quotes, purchase orders and sales orders | v2.206 #831635 | 51:43
Adds column profile control at the line level for financial documents.
There is now an option to automatically reapply billing templates when you add a contract for a client | v2.206 #791985 | 54:10
Adds automatic reapplication of billing templates when contracts change.

In Episode 16 of By the [run]Book, Mendy and Robbie continue reviewing HaloPSA v2.210, covering a wide range of updates across billing, workflows, integrations, AI, and asset management. The episode highlights several settings MSPs should review immediately—especially a billing change that can lock recalculation—as well as improvements to ticket automation, AI categorization, and service desk efficiency.
Watch Now: By the [run]Book: Episode 16
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Editing billing time allocation will lock billing recalculation | v2.21 #1044274
A setting has been added to Billing configuration so that editing the billing time allocation on an action will lock the ticket from billing recalculation.
Credit notes can default to today’s date | v2.21 #1042924
A setting has been added to Credit Note configuration so that the Credit Date is set to today's date instead of the Invoice Date.
Auto-assign the next unassigned ticket when closing a ticket | v2.21 #1003964
Added a new setting that automatically assigns an Agent the next available Unassigned Ticket when they close a Ticket.
Parent tickets can inherit dates from child tickets | v2.21 #975755
Added a new Ticket Type setting: "Automatically set Start Date and Target Date based on Child Tickets".
This setting adds a new option for grouping ticket entities during invoice creation in the Ready for Invoicing area.
This setting locks a ticket from billing recalculation when billing time allocation is edited on an action.
A new variable has been added for adjusted opportunity value.
Workflow steps now require an outcome to be selected.
Invoices can now default to the customer’s main site address.
Credit notes can now default to today’s date instead of the original invoice date.
Halo can now remove FW: and RE: prefixes when creating tickets from email subjects.
AI generated summaries can now be displayed in ticket column profiles.
A new advanced setting enables configuration change tracking for Services.
A global setting can now display the asset DID as a read-only field.
Custom integrations can now use separate credentials per instance.
The Main Site Address field can now be used in client and site column profiles.
The instances area has been updated with a new loading method to improve performance.
Tickets generated from Contract Schedules can now be created a specified number of days before the appointment date.
Additional ownership-related fields are now available in asset column profiles.
Asset dependency diagrams can now display customizable fields.
The client API endpoint can now return website data when requested.
The Twilio WhatsApp integration has received multiple improvements.
Assignment rules can now be disabled during Salesforce sync.
Runbooks triggered via webhook can now use a secret URI parameter for authentication.
HubSpot quote imports now include a default user field.
Agents can automatically receive the next unassigned ticket when they close one.
Chat Bot input steps can now access browser local storage.
Additional configuration options are now available for asset system fields.
Asset custom buttons now support dynamic visibility.
Asset fields can now perform SQL lookups.
Stock bins can now be selected for non-serialized assets.
Date custom fields now support validation rules relative to the current date.
Workflow Stage can now be used in the report query builder.
The New Relic integration has received improvements.
The phone number requirement for anonymous portal tickets can now be configured per ticket type.
Parent tickets can automatically derive start and target dates from their child tickets.
AI can now suggest ticket categories from a configurable list.
A new setting expands how Agent Site Restrictions apply to users and organizations.
Halo now allows configuration of how appointment unique IDs are generated.

Episode 15 of By the [run]Book covers Halo v2.208 and starts into v2.210, with Mendy and Robbie walking through SLA refinements, shifts/time tracking updates, billing cadence improvements, and tighter access controls across portals and reporting. Key moments include new SLA response targeting options, a clock-in/clock-out widget for shifts, a bi-monthly schedule period, and expanded team leader controls. This is a useful episode for MSPs looking to tighten operational workflow, reporting governance, and self-service experience improvements.
Watch Now: By the [run]Book: Episode 15
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Adds an SLA option so your first response target can differ from subsequent response targets.
Adds the FAQ List Ticket field as a workflow criteria option.
Allows ticket end-user updates when an anonymous chat is successfully upgraded.
Adds a clock in/clock out widget for Shifts.
Adds a 2-month schedule period option.
Improves Knowledge Base latest article links.
Adds “Visible - Read Only” for Agent Asset details visibility.
Adds load-balance on reopen if assigned agent doesn’t meet qualification rules.
Introduces a module for an Opinyin integration.
Adds test email sending for individual mail campaign messages.
Adds new Halo API actions in runbooks.
Splits KB view counts so end users see only user views (when enabled).
Adds item group restrictions + running cost total on portal ticket item selection.
Adds a Ticket Reference field that’s searchable and usable in column profiles.
Groups service subscribers.
Adds $ variables for CONTRACTSLA, CONTRACTSUBTYPE, CONTRACTSTATUS.
Adds improvements to Agent Resource Booking.
Adds encryption options for variables/responses in integrations/runbooks.
Adds software expiry date tracking on assets.
Adds ticket-type control for end-user approval action visibility.
Allows team leaders to modify agents’ preferences.
Adds bulk add assets via the asset search modal.
Adds chat profile overrides at the user role level.
Allows KB links to include FAQ lists and auto-expand on open.
Allows HTML formatting in popup notes triggered by ticket rules.
Shows credit notes alongside invoices in the portal.
Adds a setting to limit users/agents to one active session.
Adds TD Synnex Quote Line Imports.
Adds dark mode counter widget color options.
Adds downpayment invoice creation from sales orders (fixed price + T&M).
Adds settings to limit portal options to Web Access Level list values.
Adds access control for reports.
Adds a deep link button on imported Addigy devices.
Multiple changes made to the Expenses list.
Allows embedding Halo portal/agent UI (including dashboards) in SharePoint via iframe.
Changes how recurring invoices appear/create based on month selection.
Ensures billing template application creates a billing plan record per matching contract/agreement.
Adds Last Contacted + Created Date fields to NinjaOne device import.
Removes quote “Send” button so sending happens only via ticket/opportunity.
Disables change history tracking for selected asset fields.
Adds invoice access restriction levels (No Access/Site/Client).
Shows the overriding contract field even if it isn’t on the field list (admin-editable only).
Enables database lookup while entering an action in the self-service portal.
Updates the Account Integrator for Sage UK v32 (2026).
Adds a setting to group ticket entities separately during invoice creation.

In Episode 14 of By the [run]Book, Mendy and Robbie wrap up v2.206 and dive into v2.208. Join us while they unpack a dense set of workflow, billing, automation, and self-service portal enhancements. Highlights include conditional workflow steps, improved qualification matching, project–contract alignment, and powerful new portal customization options. This episode is ideal for MSPs who want tighter operational control, cleaner billing, and more flexible automation inside HaloPSA.
The following features stand out as a few of the impactful changes:
On-call Notification Enhancements #422926
Halo introduced various enhancements to notifications to better support on-call workflows, and Mendy called out that this release note quietly included a massive underlying change. The key takeaway was that important platform-impacting updates can be buried in “notification” notes, so MSPs running on-call should review notification behavior closely after updating.
Assign Contract to Projects & Tasks Created from Sales Orders #1027598
Projects and tasks created from sales orders can now automatically inherit the contract created from that sales order, tightening the link between quoting, delivery, and billing. The hosts emphasized this as a practical fix for MSPs who see project time accidentally hitting the wrong agreement (and wrecking profitability reporting), especially when doing fixed-fee or prepaid project work.
Workflow Automations Using Client/Site/User Custom Fields #1022399
Workflow automations can now use client, site, or user custom fields directly as criteria, reducing the need for workaround runbooks that copy those values onto tickets. The hosts positioned this as a meaningful automation upgrade because it makes routing and logic cleaner, easier to maintain, and more scalable for MSPs with account-specific processes.
Watch Now: By the [run]Book: Episode 14
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Full Feature List:
Added the ability to add Azure/Entra distribution groups as followers | v2.206 #770320 | 1:52
Added an option in AI settings to generate an AI summary of the article based on the title, description and resolution Added an option in AI settings to use the AI-generated summary of an article to identify and flag potential duplicate articles before submission | v2.206 #767579 | 2:58
When tickets have a Teams chat open, if the ticket is closed, a closure message will be sent to all chats | v2.206 #635732 | 3:29
Various enhancements to notifications to support on-call notifications | v2.206 #422926 | 4:02
A setting has been added to Sales Order Configuration so that a specific Status can be set once all Items on the Sales Order are consigned | v2.208 #1034330 | 10:24
The setting "Tickets with the default Organisation/Site must be moved before working on the Ticket" can now be overridden at Ticket Type level | v2.208 #1033540 | 12:51
"Do not disturb" mode for Halo notifications | v2.208 #1028655 | 16:04
A setting "When creating Projects and Tasks assign the Contract created from the Sales Order" has been added to Configuration > Sales Orders > Processing Sales Order Lines that allocates Projects and Tasks created from Sales Orders to the Contract created from the Sales Order | v2.208 #1027598 | 17:27
An Item property had been added to the Milestone so that the Invoice Item can be edited/set after creation of the Milestone. This Item will be used when creating an Invoice directly for the Milestone only | v2.208 #1027578 | 20:33
Added Canned Text Shortcuts for Chat | v2.208 #1024945 | 23:07
Additional data has been added to the Invoice Line object to store the Origin Sales Order Line that the associated Recurring Invoice was created from and to store the Occurrence Count for Recurring Invoices | v2.208 #1024614 | 28:23
Report display improvement when using customised table html | v2.208 #1024326 | 28:55
Added Managed Identity via Azure Arc as an authentication option to the Microsoft Entra integration and Office 365 mailboxes | v2.208 #1024317 | 29:36
It is now possible to set a Tax Exemption reason for a Halo Customer on creation that will be pushed to Quickbooks when the Customer is not taxable | v2.208 #1024297 | 29:44
A setting has been added to allow recurring invoice lines to be hidden by default when viewing the recurring invoice | v2.208 #1024067 | 29:57
Multiple changes to available $ variables | v2.208 #1023687 | 32:18
Added the setting 'Automatically create Change Advise Boards from Teams' to Approval Process settings | v2.208 #1023311 | 32:55
A setting has been added to the QuickBooks Integrations setup so that a Closed Date can be entered. | v2.208 #1022558 | 33:16
You can now use Client, Site or User Custom Fields for criteria on Workflow Automations | v2.208 #1022399 | 33:41
The variable $ SERVICEID can be used in database lookups to obtain the ID of the Service linked to the Ticket | v2.208 #1021534 | 34:21
Custom Statistics Tables added | v2.208 #1019726 | 34:32
Decimals are now allowed within the field "Tickets Opened/Closed within the last X days" in AI suggestions | v2.208 #1018082 | 37:42
Added a new Knowledge Base setting that allows you to hide FAQ tiles that have no results matching the current search in the Portal | v2.208 #1012783 | 37:50
Added a manufacturer field to the suppliers tab of assets | v2.208 #1009501 | 37:57
Improvements to Qualification matching | v2.208 #1008143 | 38:01
Various improvements to the self-service portal | v2.208 #1007918 | 40:49
You can now use Client, Site, User and Organisation level $ variables in the Self Service Portal custom HTML Headers and Footer | v2.208 #1007759 | 43:43
Enhancement to Client-Ticket Type restrictions | v2.208 #1006158 | 47:49
Added a Chat Audit Area Added a new Chat Transcript style | v2.208 #1004851 | 48:34
You can now set feedback and survey links to be single use | v2.208 #1002898 | 48:41
Added an Advanced Setting to alter the Tree menu width | v2.208 #999276 | 51:57
You can now make your custom hompage HTML in the End-User portal appear as a sticky banner across all portal pages | v2.208 #996323 | 52:48
Added option to exclude non-invoiceable time from budget calculations | v2.208 #994004 | 56:01