By the [run]Book: Episode 18

By  
El Copeland
March 31, 2026
20 min read
No items found.
Share this post

In this episode of By the Runbook, the team continues through the HaloPSA 2.212 release notes and spends time unpacking what several of these changes actually mean in practice. The conversation covers workflow design, mail campaigns, ticket views, reporting, and automation behavior, with especially useful commentary for MSPs trying to decide what to enable, what to ignore, and what to be careful with.

Watch Now: By the [run]Book: Episode 18
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Check out MSP Blueprint for info on runbooks: MSPBlueprint

Important Mentions

Ticket details can now auto-refresh when a background automation completes | v2.212 #1003085 | 25:29

This allows the ticket screen to automatically refresh when a background automation completes.

  • Eliminates the need for manual refresh after automations run
  • Keeps available actions, workflow steps, and ticket data in sync
  • Especially useful in environments with heavy automation usage
  • ⚠️ Not enabled by default — go turn this on
Additional rule types have been added to qualification matching criteria for custom fields | v2.212 #1009694 | 19:02

Expands qualification matching to include custom field criteria.

  • Enables highly granular ticket routing and assignment logic
  • Can support advanced use cases like skill-based routing or segmentation
  • ⚠️ Powerful but rarely practical for most MSPs without significant planning
Added the option to use the incoming webhook service for QuickBooks Online webhook processing | v2.212 #1021654 | 8:39

Adds delayed and retry-based webhook processing options.

  • Helps prevent failures during high webhook volume
  • Introduces retry logic for more reliable integrations
  • ⚠️ Can introduce delays (10–15+ minutes in some cases depending on configuration)
  • ⚠️ Default behavior vs delayed processing needs to be reviewed carefully


FullFeature List


You can now restrict the ‘From’ address options on a Ticket Action to mailboxes the assigned team can access | v2.212 #1031882 | 2:50

This change limits the available “From” addresses on a ticket action to mailboxes the assigned team can actually access.

  • Prevents agents selecting mailboxes they don’t have access to
  • Reduces confusion in multi-mailbox environments
  • Helpful for teams split across departments or service lines
Added Email Address as another attribute option for the Followers field on the Self-Service Portal | v2.212 #1031728 | 3:23

Adds Email Address as another attribute option for follower behavior on the portal.

  • Improves flexibility for notifications
  • Useful for including external stakeholders
  • Expands portal configuration options
You can now edit various parts of a Mail Campaign after starting it | v2.212 #1030951 | 3:32

Allows changes to Mail Campaigns after they have started.

  • Removes need to recreate campaigns due to small mistakes
  • Makes campaigns more practical to use
  • Signals continued investment in this feature area
You can now restrict Pipeline Stages at the Opportunity Type level | v2.212 #1027853 | 4:58

Restricts pipeline stages based on opportunity type.

  • Keeps sales workflows cleaner
  • Avoids irrelevant stage options
  • Useful for more structured sales processes
Added the option to use the incoming webhook service for QuickBooks Online webhook processing | v2.212 #1021654 | 8:39

Adds webhook processing options including delayed and retry handling.

  • Helps manage high webhook volume
  • Reduces risk of dropped events
  • ⚠️ May introduce delays depending on configuration
Added in the ability to hide certain tickets from the change calendar | v2.212 #1017196 | 13:21

Adds the ability to hide tickets from the change calendar.

  • Useful for sensitive or internal tickets
  • Helps reduce noise in calendar views
  • Currently tied to the “Sensitive” flag
Service Users are Subscribed to has been added as an option to Distribution Lists and User Lists | v2.212 #1013148 | 13:55

Adds Service Users as a selectable option in distribution and user lists.

  • Expands targeting logic
  • Improves automation flexibility
  • Useful for advanced filtering scenarios
You can now send Mail Campaigns from Sales Mailboxes | v2.212 #1011772 | 14:54

Allows campaigns to be sent from sales mailboxes.

  • Improves branding and ownership
  • Separates sales vs support communications
  • ⚠️ Be cautious of Microsoft send limits
A warning will now be shown on an action and the ticket will be updated if an action email will fail to send | v2.212 #1010891 | 16:49

Adds a warning when an action email will fail.

  • Improves visibility into email failures
  • Helps prevent missed communications
  • Updates ticket automatically with failure state
Added the ability to map relationship types for parent, child, and sibling assets in SQL imports | v2.212 #1010659 | 18:17

Adds asset relationship mapping during SQL imports.

  • Preserves structure during migrations
  • Supports complex asset environments
  • Useful for onboarding/import projects
Added isRunning to Halo Asset Discovery integration | v2.212 #1010606 | 18:54

Adds an isRunning field to asset discovery.

  • Helps track discovery state
  • Useful for monitoring and automation
  • Adds visibility into background processes
Additional rule types have been added to qualification matching criteria for custom fields | v2.212 #1009694 | 19:02

Expands qualification matching with custom field rules.

  • Enables more advanced routing logic
  • Supports complex assignment scenarios
  • ⚠️ Often overkill for most MSPs
Ticket details can now auto-refresh when a background automation completes | v2.212 #1003085 | 25:29

Allows ticket view to auto-refresh after automation runs.

  • Keeps UI in sync with backend updates
  • Eliminates need for manual refresh
  • ⚠️ Not enabled by default — turn this on
Added 'Update Currency' to Quotes | v2.212 #992111 | 29:17

Adds ability to update currency values on quotes.

  • Supports multi-currency environments
  • Updates cost and price together
  • Improves quote accuracy
Added option to make a Knowledge Base's negative feedback comment mandatory | v2.212 #991702 | 30:41

Requires comments for negative KB feedback.

  • Improves feedback quality
  • Helps refine documentation
  • Useful for KB governance
New default setting for showing grandchildren in child ticket lists | v2.212 #990317 | 30:49

Adds control for showing nested tickets.

  • Improves visibility in projects
  • Useful for multi-level ticket structures
  • Configurable behavior
Improvements to AI report analysis | v2.212 #987946 | 31:27

Enhances AI reporting capabilities.

  • Can now be scheduled
  • Can be embedded in PDFs
  • ⚠️ Still not widely used in practice
Added a setting to restrict knowledge base article amendments to owners only | v2.212 #982079 | 33:06

Restricts KB edits to owners only.

  • Improves control over content
  • Prevents unintended edits
  • Supports structured documentation workflows
Added a global setting to allow users to translate actions on the portal when using Azure AI Translator | v2.212 #978595 | 33:22

Adds translation support in the portal.

  • Useful for multilingual environments
  • Improves accessibility
  • May not be necessary for all MSPs
Added the setting 'Secondary Asset MAC address field' to the Splashtop integration | v2.212 #978176 | 34:08

Adds secondary MAC address support.

  • Helps with multi-adapter devices
  • Improves asset matching
  • Integration-specific enhancement
You can now set character limits on memo and rich text custom fields | v2.212 #976975 | 34:39

Adds character limits to text fields.

  • Prevents overly large inputs
  • Improves data consistency
  • Helpful for structured data entry
Added additional fields to assist with reporting on OLAs and rules | v2.212 #976953 | 34:47

Adds more fields for OLA and rule reporting.

  • Improves internal tracking
  • Supports more detailed reporting
  • Still primarily useful for advanced setups
Added the setting 'Prevent email responses from continuing the approval flow' at approval step level | v2.212 #974172 | 39:10

Prevents approvals from email replies.

  • Avoids accidental approvals
  • Forces structured approval process
  • Improves workflow control
Added a setting to the Custom Field configuration to copy values to grandchild tickets when updated | v2.212 #970536 | 40:25

Extends field copying to deeper ticket levels.

  • Maintains consistency across ticket hierarchy
  • Useful for projects and task trees
  • Reduces manual updates
Added Primary Asset as a criteria for Runbooks | v2.212 #970066 | 40:41

Adds primary asset as a runbook condition.

  • Enables asset-based automation
  • Improves targeting of runbooks
  • Useful for device-specific workflows
Added $-AgentID as an available $ variable for Database Lookups | v2.212 #961283 | 40:48

Adds AgentID variable for lookups.

  • Expands database query capabilities
  • Useful for advanced automation
  • Improves flexibility in integrations
Added reports and dashboards to configuration change tracking | v2.212 #959264 | 40:55

Adds reporting changes to config tracking.

  • Improves audit visibility
  • Helps track admin changes
  • Pairs well with settings search feature
Filter Profiles can now be used on Child Ticket lists | v2.212 #922698 | 42:56

Adds filter profiles to child ticket views.

  • Reduces clutter (especially closed tickets)
  • Improves usability in projects
  • Strong practical improvement
Added multiple settings to the 'Other Open Tickets' views | v2.212 #882375 | 45:18

Adds more configuration options to other open tickets view.

  • Improves visibility of related tickets
  • Can be moved to its own tab
  • Enhances day-to-day ticket context

Share this post
El Copeland

As Partner and Business Consultant at Rising Tide, I help organizations align culture with efficiency, bridging the gap between strategy and the everyday systems that make it work. I’ve spent my career leading diverse, cross-functional teams and building communities where people actually want to learn and collaborate. With roots in technology, education, user experience & design, and project management, I specialize in turning complex ideas into clear, actionable plans that keep both people and projects thriving.

Outside of work, you’ll usually find me weight-training, gardening, or rewatching Doctor Who with a cat in my lap.

See some more of our most recent posts...
March 31, 2026
8 min read

By the [run]Book: Episode 18

This episode of By the Runbook breaks down HaloPSA 2.212 updates with a focus on what actually matters for MSPs. The team covers key changes to automation, ticket views, and integrations, along with practical advice on what to enable, what to watch out for, and how these updates impact real-world workflows
Read post

In this episode of By the Runbook, the team continues through the HaloPSA 2.212 release notes and spends time unpacking what several of these changes actually mean in practice. The conversation covers workflow design, mail campaigns, ticket views, reporting, and automation behavior, with especially useful commentary for MSPs trying to decide what to enable, what to ignore, and what to be careful with.

Watch Now: By the [run]Book: Episode 18
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Check out MSP Blueprint for info on runbooks: MSPBlueprint

Important Mentions

Ticket details can now auto-refresh when a background automation completes | v2.212 #1003085 | 25:29

This allows the ticket screen to automatically refresh when a background automation completes.

  • Eliminates the need for manual refresh after automations run
  • Keeps available actions, workflow steps, and ticket data in sync
  • Especially useful in environments with heavy automation usage
  • ⚠️ Not enabled by default — go turn this on
Additional rule types have been added to qualification matching criteria for custom fields | v2.212 #1009694 | 19:02

Expands qualification matching to include custom field criteria.

  • Enables highly granular ticket routing and assignment logic
  • Can support advanced use cases like skill-based routing or segmentation
  • ⚠️ Powerful but rarely practical for most MSPs without significant planning
Added the option to use the incoming webhook service for QuickBooks Online webhook processing | v2.212 #1021654 | 8:39

Adds delayed and retry-based webhook processing options.

  • Helps prevent failures during high webhook volume
  • Introduces retry logic for more reliable integrations
  • ⚠️ Can introduce delays (10–15+ minutes in some cases depending on configuration)
  • ⚠️ Default behavior vs delayed processing needs to be reviewed carefully


FullFeature List


You can now restrict the ‘From’ address options on a Ticket Action to mailboxes the assigned team can access | v2.212 #1031882 | 2:50

This change limits the available “From” addresses on a ticket action to mailboxes the assigned team can actually access.

  • Prevents agents selecting mailboxes they don’t have access to
  • Reduces confusion in multi-mailbox environments
  • Helpful for teams split across departments or service lines
Added Email Address as another attribute option for the Followers field on the Self-Service Portal | v2.212 #1031728 | 3:23

Adds Email Address as another attribute option for follower behavior on the portal.

  • Improves flexibility for notifications
  • Useful for including external stakeholders
  • Expands portal configuration options
You can now edit various parts of a Mail Campaign after starting it | v2.212 #1030951 | 3:32

Allows changes to Mail Campaigns after they have started.

  • Removes need to recreate campaigns due to small mistakes
  • Makes campaigns more practical to use
  • Signals continued investment in this feature area
You can now restrict Pipeline Stages at the Opportunity Type level | v2.212 #1027853 | 4:58

Restricts pipeline stages based on opportunity type.

  • Keeps sales workflows cleaner
  • Avoids irrelevant stage options
  • Useful for more structured sales processes
Added the option to use the incoming webhook service for QuickBooks Online webhook processing | v2.212 #1021654 | 8:39

Adds webhook processing options including delayed and retry handling.

  • Helps manage high webhook volume
  • Reduces risk of dropped events
  • ⚠️ May introduce delays depending on configuration
Added in the ability to hide certain tickets from the change calendar | v2.212 #1017196 | 13:21

Adds the ability to hide tickets from the change calendar.

  • Useful for sensitive or internal tickets
  • Helps reduce noise in calendar views
  • Currently tied to the “Sensitive” flag
Service Users are Subscribed to has been added as an option to Distribution Lists and User Lists | v2.212 #1013148 | 13:55

Adds Service Users as a selectable option in distribution and user lists.

  • Expands targeting logic
  • Improves automation flexibility
  • Useful for advanced filtering scenarios
You can now send Mail Campaigns from Sales Mailboxes | v2.212 #1011772 | 14:54

Allows campaigns to be sent from sales mailboxes.

  • Improves branding and ownership
  • Separates sales vs support communications
  • ⚠️ Be cautious of Microsoft send limits
A warning will now be shown on an action and the ticket will be updated if an action email will fail to send | v2.212 #1010891 | 16:49

Adds a warning when an action email will fail.

  • Improves visibility into email failures
  • Helps prevent missed communications
  • Updates ticket automatically with failure state
Added the ability to map relationship types for parent, child, and sibling assets in SQL imports | v2.212 #1010659 | 18:17

Adds asset relationship mapping during SQL imports.

  • Preserves structure during migrations
  • Supports complex asset environments
  • Useful for onboarding/import projects
Added isRunning to Halo Asset Discovery integration | v2.212 #1010606 | 18:54

Adds an isRunning field to asset discovery.

  • Helps track discovery state
  • Useful for monitoring and automation
  • Adds visibility into background processes
Additional rule types have been added to qualification matching criteria for custom fields | v2.212 #1009694 | 19:02

Expands qualification matching with custom field rules.

  • Enables more advanced routing logic
  • Supports complex assignment scenarios
  • ⚠️ Often overkill for most MSPs
Ticket details can now auto-refresh when a background automation completes | v2.212 #1003085 | 25:29

Allows ticket view to auto-refresh after automation runs.

  • Keeps UI in sync with backend updates
  • Eliminates need for manual refresh
  • ⚠️ Not enabled by default — turn this on
Added 'Update Currency' to Quotes | v2.212 #992111 | 29:17

Adds ability to update currency values on quotes.

  • Supports multi-currency environments
  • Updates cost and price together
  • Improves quote accuracy
Added option to make a Knowledge Base's negative feedback comment mandatory | v2.212 #991702 | 30:41

Requires comments for negative KB feedback.

  • Improves feedback quality
  • Helps refine documentation
  • Useful for KB governance
New default setting for showing grandchildren in child ticket lists | v2.212 #990317 | 30:49

Adds control for showing nested tickets.

  • Improves visibility in projects
  • Useful for multi-level ticket structures
  • Configurable behavior
Improvements to AI report analysis | v2.212 #987946 | 31:27

Enhances AI reporting capabilities.

  • Can now be scheduled
  • Can be embedded in PDFs
  • ⚠️ Still not widely used in practice
Added a setting to restrict knowledge base article amendments to owners only | v2.212 #982079 | 33:06

Restricts KB edits to owners only.

  • Improves control over content
  • Prevents unintended edits
  • Supports structured documentation workflows
Added a global setting to allow users to translate actions on the portal when using Azure AI Translator | v2.212 #978595 | 33:22

Adds translation support in the portal.

  • Useful for multilingual environments
  • Improves accessibility
  • May not be necessary for all MSPs
Added the setting 'Secondary Asset MAC address field' to the Splashtop integration | v2.212 #978176 | 34:08

Adds secondary MAC address support.

  • Helps with multi-adapter devices
  • Improves asset matching
  • Integration-specific enhancement
You can now set character limits on memo and rich text custom fields | v2.212 #976975 | 34:39

Adds character limits to text fields.

  • Prevents overly large inputs
  • Improves data consistency
  • Helpful for structured data entry
Added additional fields to assist with reporting on OLAs and rules | v2.212 #976953 | 34:47

Adds more fields for OLA and rule reporting.

  • Improves internal tracking
  • Supports more detailed reporting
  • Still primarily useful for advanced setups
Added the setting 'Prevent email responses from continuing the approval flow' at approval step level | v2.212 #974172 | 39:10

Prevents approvals from email replies.

  • Avoids accidental approvals
  • Forces structured approval process
  • Improves workflow control
Added a setting to the Custom Field configuration to copy values to grandchild tickets when updated | v2.212 #970536 | 40:25

Extends field copying to deeper ticket levels.

  • Maintains consistency across ticket hierarchy
  • Useful for projects and task trees
  • Reduces manual updates
Added Primary Asset as a criteria for Runbooks | v2.212 #970066 | 40:41

Adds primary asset as a runbook condition.

  • Enables asset-based automation
  • Improves targeting of runbooks
  • Useful for device-specific workflows
Added $-AgentID as an available $ variable for Database Lookups | v2.212 #961283 | 40:48

Adds AgentID variable for lookups.

  • Expands database query capabilities
  • Useful for advanced automation
  • Improves flexibility in integrations
Added reports and dashboards to configuration change tracking | v2.212 #959264 | 40:55

Adds reporting changes to config tracking.

  • Improves audit visibility
  • Helps track admin changes
  • Pairs well with settings search feature
Filter Profiles can now be used on Child Ticket lists | v2.212 #922698 | 42:56

Adds filter profiles to child ticket views.

  • Reduces clutter (especially closed tickets)
  • Improves usability in projects
  • Strong practical improvement
Added multiple settings to the 'Other Open Tickets' views | v2.212 #882375 | 45:18

Adds more configuration options to other open tickets view.

  • Improves visibility of related tickets
  • Can be moved to its own tab
  • Enhances day-to-day ticket context

March 17, 2026
8 min read

By the [run]Book: Episode 17

Episode 17 wraps up 2.21 and begins 2.212 covering key HaloPSA updates across billing, SLAs, and ticket workflows. Highlights include dynamic ticket filters, default billing templates, and improved billing visibility—making this a must-watch for MSPs optimizing operations and reporting.
Read post

Episode 17 warps up the breakdown of version 2.21 and begins 2.212, highlighting impactful updates across billing, SLA visibility, and ticket management. The team dives into major improvements like dynamic ticket filters, default billing templates, and better billing tab access controls. This episode is especially useful for MSPs looking to tighten billing accuracy, improve reporting visibility, and streamline ticket workflows.

Watch Now: By the [run]Book: Episode 17
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.

Important Mentions

Billing Tab Visibility Changes | v2.212 #1062249 | 30:16

The Billing tab is now visible to agents without requiring full billing permissions, with actions locked based on access.

  • Improves visibility without over-permissioning agents
  • Reduces need to grant risky billing permissions
  • ⚠️ Be cautious: exposing billing data still requires process control and training (as discussed in the episode)
SLA Breach Visibility for On-Hold Tickets | v2.21 #795425 | 12:33

Tickets on hold can now be included in SLA breached filters.

  • Previously, putting a ticket on hold could hide SLA breaches
  • This setting ensures accurate reporting and accountability
  • ✅ Recommended: turn this on immediately
Default Billing Template for New Customers | v2.21 #792419 | 13:01

You can now define a default billing template applied automatically when creating a new customer.

  • Removes need for custom automation to apply templates
  • Ensures consistent billing rules across all customers
  • ✅ Recommended: enable this and retire older automation-based approaches
Dynamic Ticket Filters | v2.21 #772177 | 16:52

Dynamic filters can now be used on ticket lists for more flexible querying.

  • Enables complex AND/OR filtering logic
  • Reduces reliance on multiple saved views
  • Opens the door for more advanced automation without SQL
  • 🚀 One of the most impactful usability improvements in this release

FullFeature List

Changing the Product/Item 3rd Party ID reference will now be copied to recurring invoices when configured in Item Settings | v2.21 #956174 | 5:23

This helps keep recurring invoices aligned when item third-party IDs change.

  • Useful during accounting platform migrations
  • Reduces manual cleanup on recurring invoice records
  • Helps preserve item mapping consistency across systems
Invoice Due Date option "Equal to Invoice Date" has been added to the Recurring Invoice options to match the options at Customer setup | v2.21 #933961 | 6:09

Recurring invoices now get the same due date option already available at customer setup.

  • Brings recurring invoice behavior into line with customer billing settings
  • Helpful for teams that want cleaner due date standardization
You can now hide the ‘Approve/Reject All’ buttons on the Portal My Approvals page and require approval notes to always show ticket details | v2.21 #898703 | 6:22

This adds more control to portal-based approval workflows.

  • Helps avoid overly broad one-click approval behavior
  • Encourages better review discipline
  • Improves auditability around approval notes and detail visibility
Added 2 new Site-level settings to create invoices against a different Customer | v2.21 #859082 | 6:40

This extends alternate invoicing behavior down to the site level.

  • Adds more flexibility for multi-site or multi-entity billing setups
  • Useful where billing responsibility differs by site rather than customer
Added a setting "Re-assign tickets to unassigned when the assigned agent is made inactive" to the Microsoft Entra integration to allow agent tickets to be re-assigned if they are deactivated via an import | v2.21 #833690 | 7:04

This helps prevent tickets from disappearing into inactive-agent limbo.

  • Particularly useful when Entra sync deactivates agents automatically
  • Helps surface tickets that might otherwise get lost
  • Worth reviewing carefully because reassignment can also affect downstream reporting
You can now add Primary Agent, Secondary Agent & Account Manager as criteria for ticket filter profiles and lists | v2.21 #827931 | 9:50

More ticket list criteria means more practical operational views.

  • Lets you filter based on responsibility relationships, not just ticket ownership
  • Useful for dashboards, routing views, and account oversight lists
Improvements to ManageEngine Endpoint Central Integration | v2.21 #815251 | 10:11

This update improves the ManageEngine Endpoint Central integration.

  • Better integration maturity is always welcome for teams relying on external RMM/endpoint tooling
  • Useful for shops standardizing around that stack
Added the ability to use generic Open ID Connect single sign-on | v2.21 #814980 | 10:36

Halo now supports generic OpenID Connect SSO.

  • Expands identity provider compatibility beyond more limited built-in options
  • A solid improvement for organizations with more advanced authentication requirements
Added the ability to clone Item Bundles | v2.21 #801764 | 11:31

You can now duplicate item bundles instead of rebuilding them manually.

  • Saves setup time
  • Helpful when creating variations of similar commercial offerings
Added settings in asset management and services configuration for the name shown for the assets and services areas | v2.21 #798807 | 11:36

This adds more naming flexibility to the UI.

  • Lets teams align terminology with internal language
  • Helpful for organizations that want the platform to better match how they talk about assets and services
Added a setting to the SLA configuration to allow tickets that are on hold to be included in the SLA Breached filter for ticket lists | v2.21 #795425 | 12:33

This makes SLA breach reporting more honest and more useful.

  • On-hold tickets can still be breached, and now your filters can reflect that
  • Recommended setting to enable for better service visibility
You can now set a default billing template, picked up when creating a new customer. | v2.21 #792419 | 13:01

A major improvement for standard billing configuration.

  • Great for MSPs using a common template across all new customers
  • Replaces the need for custom customer-created automation in many environments
Added support for asset-based meters on recurring invoice lines, enabling managed print functionality | v2.21 #787149 | 15:28

This adds more flexibility to meter-driven recurring billing.

  • Especially relevant for managed print and other metered service models
  • Supports scenarios where an asset carries multiple billable meter values
Added the ability to use dynamic filters on ticket lists | v2.21 #772177 | 16:52

Dynamic ticket filters add a much stronger filtering experience.

  • Supports grouped filter logic beyond basic visible-column filtering
  • Helps reduce list sprawl and improves usability for operations teams
Added the ability to clone custom fields | v2.21 #722363 | 21:17

Cloning custom fields speeds up admin work.

  • Useful when building multiple similar fields
  • Cuts down repetitive configuration effort
Improvements to Pie and Doughnut Chart data labels | v2.21 #638315 | 21:49

This update improves chart label readability.

  • Helpful for dashboard clarity
  • A small but welcome quality-of-life improvement
Improvements to the Update Encryption option found in Security/Advanced Settings | v2.21 #510731 | 22:24

This update refines the encryption update workflow.

  • Relevant for teams actively managing advanced security settings
  • Another admin-side quality improvement
A setting has been added to Call Management configuration to show the user's preferred number on the call screen | v2.21 #510517 | 22:56

This improves call handling context.

  • Puts the preferred number front and center
  • Helpful for service desks handling inbound and outbound calls
Properties have been added to Item and Item Group for "Number of decimal places to use for quantity" that will affect the default decimal behaviour | v2.21 #228735 | 23:17

This gives more control over quantity precision.

  • Useful for products or services sold in partial units
  • Helps tailor quantity behavior to the actual commercial model
When using the configuration option to allow all Project and Tasks to be chosen when creating a Project from a Sales Order line, this will now include Tickets if they are linked to a Sales Order line | v2.212 #1062502 | 25:12

This improves flexibility when linking work records from sales orders.

  • Helpful for teams using tickets instead of projects in some fulfillment scenarios
  • Better supports mixed service delivery workflows
The Billing tab of a Ticket will now show for agents without requiring the Billing Details permission. Actions and properties within the Billing tab will be locked depending on permissions | v2.212 #1062249 | 30:16

This adds better billing visibility without fully exposing billing controls.

  • Good balance between awareness and security
  • Still requires caution around how teams use the billing area
ID can now be specified in a Ticket spreadsheet (XLS/CSV) import to update existing Tickets | v2.212 #1062155 | 32:34

Spreadsheet imports can now target existing tickets by ID.

  • Makes bulk updates easier
  • Useful for admin cleanup or migration workflows
The heading for the timer on the Ticket details pane has been removed | v2.212 #1061107 | 32:50

A small UI cleanup on the ticket details pane.

  • Frees up a bit more space
  • Minor but sensible interface polish
A configuration option has been added to allow Co-managed agents to log time | v2.212 #1060620 | 33:09

This adds flexibility for co-managed support models.

  • Lets co-managed agents participate more directly in time tracking
  • Helpful for shared-service or hybrid support arrangements
An option has been added to the CSP Integration so that you can map Users to "Do not import" so that mappings will not be automatically created for them in cases when the Users are not within the scope of a specific tenant permissions. | v2.212 #1060619 | 36:23

This improves control over CSP user mapping behavior.

  • Helps avoid unwanted user mappings
  • Useful where tenant scope or permissions are intentionally limited
Added a hint has been added to the Customer Tax rate selection when using Xero to better explain when this rate is used | v2.212 #1060166 | 38:25

This adds clarification around tax rate usage in Xero-linked setups.

  • A small but useful usability improvement
  • Helps reduce confusion in finance configuration
A button has been added to the Client Billing tab to clear the current Avalara Tenant. | v2.212 #1059696 | 38:34

This makes Avalara tenant cleanup easier from the client billing tab.

  • Handy for correcting configuration mistakes
  • Saves time compared with more awkward reset workflows
Runbooks can now be triggered from Custom Buttons on the following entities: Client, Site, User, Device, Quotation, Purchase Order, Invoice | v2.212 #1059597 | 38:56

This is a strong automation improvement.

  • Lets you trigger runbooks directly from more parts of the UI
  • Opens up practical workflows for service, sales, procurement, and account management
It is now possible to delete specific rows from a custom table using the property "delete_these_rows" | v2.212 #1059297 | 40:35

Custom table row deletion gets more precise.

  • Useful for automation and structured data maintenance
  • Reduces the need for full-table replacement logic
When using the configuration option to not create invoice lines with 0 value, recurring invoices lines shown in recurring invoice lists will be hidden if they have 0 value | v2.212 #1058650 | 40:54

This cleans up recurring invoice visibility.

  • Keeps invoice lists tidier
  • Makes review screens easier to scan
Minor changes to configuration to better explain how the function to automatically add Asset to Contracts can be configured | v2.212 #1058609 | 41:04

This is a documentation/config clarity improvement.

  • Helpful for admins configuring asset-to-contract automation
  • Less ambiguity is always welcome in contract automation settings
Additional options have been added to Ticket Rule assignment for Regional Manager, Logistics Manager, Sales Representative, Account Owner and CXM Lead | v2.212 #1057719 | 41:13

Ticket rule assignment now supports more role-based options.

  • Improves routing flexibility
  • Better reflects broader operational ownership models
Added approval rule criteria "Already approved by agent" | v2.212 #1057491 | 41:21

Approval rule logic gets another useful condition.

  • Adds more nuance to approval workflows
  • Helpful for reducing redundant approval steps
Added Supplier as a criteria field for dynamic field visibility, and added Supplier as notification criteria | v2.212 #1057372 | 41:56

Supplier-related configuration gets more flexible.

  • Helps tailor field visibility based on supplier context
  • Adds supplier-aware notification scenarios
Variables have been added that can be used on Project Templates when created from a Sales Order line | v2.212 #1057339 | 42:34

Project templates now get more dynamic input from sales-order-driven creation.

  • Improves template flexibility
  • Helpful for standardized fulfillment workflows
Additional columns have been added to the Quote and Sales Order line column profiles | v2.212 #1057260 | 42:47

This expands visibility in quote and sales order line views.

  • Helpful for finance and sales review workflows
  • More columns means less need to jump into detail views
An option has been added to the setting "Allow a Tickets Customer and Site to be different from the Users Customer and Site" to allow only the Site to be changed for a given User | v2.212 #1057242 | 42:59

This makes customer/site control more precise.

  • Adds a middle ground between fully matching and fully independent customer/site behavior
  • Useful for environments with stricter user association rules
Added additional response schemas to the API swagger documentation | v2.212 #1053435 | 43:56

The API docs continue to improve.

  • Better documentation supports better integrations
  • Especially useful for teams building custom API workflows
You can now specify the amount of columns you'd like like to show when logging a ticket through the agent app | v2.212 #1053014 | 44:35

This improves ticket logging layout flexibility in the agent app.

  • Lets teams control form density
  • Helpful when designing cleaner ticket intake experiences
Auto payments processed via Stripe on the integrator now use idempotency keys | v2.212 #1052572 | 45:31

This is an important reliability improvement for payment processing.

  • Helps prevent accidental duplicate processing
  • Good back-end hardening for Stripe-integrated billing
Added the ability to be able to change a service's category when the service is created from an asset | v2.212 #1050926 | 45:52

This adds more flexibility when services are generated from assets.

  • Useful where the default category is not the right long-term fit
  • Gives admins more post-creation control
Added the setting 'Copy values to parent Tickets on new Ticket screen' at custom field and ticket type field level | v2.212 #1042761 | 45:59

This improves parent/child ticket data behavior.

  • Lets values flow upward earlier in the ticket creation process
  • Helpful for service desks using child-ticket-driven workflows
Added the ability to link a 3rd party ID against agents, teams, agent roles, user roles, and CABs | v2.212 #1041704 | 47:57

Third-party ID linking is now available across more entities.

  • Supports cleaner integrations
  • Helps external systems map records without relying on internal IDs alone
Added flastactiondate as a field within the Query Builder | v2.212 #1041176 | 50:52

Query Builder gets another field for reporting logic.

  • Gives admins more data points to build useful views and reports
  • Helpful for operational tracking
Account and Prospects can now be viewed in Top Levels | v2.212 #1034016 | 50:56

This expands visibility of account/prospect records in top-level views.

  • Useful for sales and account-management workflows
  • Continues the gradual maturity of account/prospect handling
Added access control for custom buttons | v2.212 #1033683 | 51:35

Custom buttons now get access control.

  • Lets admins expose UI actions more safely
  • Important for governance as button-triggered automation becomes more powerful
UI Improvements to the New Opportunity Screen launched from Accounts/Prospects records | v2.212 #1032933 | 51:42

This adds polish to the opportunity creation experience.

  • Makes sales workflows smoother from account/prospect records
  • A welcome UX improvement for CRM-oriented teams
API Key Authentication method added to the Halo API | v2.212 #1032829 | 51:47

This is one of the biggest integration-facing updates in the episode.

  • Makes API authentication easier in many practical scenarios
  • Especially useful for agent-based integrations and tooling
  • Important reminder from the episode: permissions are tied to the identity behind the key, so scope and access design still matter

March 3, 2026
8 min read

By the [run]Book: Episode 16

Episode 16 of By the [run]Book continues the walkthrough of HaloPSA v2.210, covering updates to billing behavior, ticket automation, AI features, and asset management improvements. Mendy and Robbie highlight several settings MSPs should review carefully—especially a billing change that can lock recalculation—and share practical insights on how these updates may impact real-world workflows.
Read post

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.

Interesting Features

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.

  • This setting can cause technicians to unintentionally override billing rules.
  • When enabled, Halo will lock the time entry and prevent recalculation of billing.
  • If your billing rules rely on rounding, billing plans, or multipliers, this can break those calculations.
  • Recommendation: Check your system and make sure this setting is turned off unless you intentionally want technicians to override billing behavior.

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.

  • Helps keep financial reporting aligned with the actual credit date.
  • Prevents credits from affecting historical invoice periods.
  • Recommended to enable for most accounting workflows.

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.

  • Great for service desks using load-balanced queues.
  • Reduces technician idle time between tickets.
  • Keeps agents moving directly to the next available task.

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".

  • Especially useful for project-level tickets.
  • Automatically keeps parent ticket timelines aligned with underlying tasks.
  • Reduces manual date management in complex projects.

FullFeature List

A setting has been added to allow the Ticket entities to be added to a separate group when creating invoices in the "Ready for Invoicing" area | v2.21 #1044974 | 2:35

This setting adds a new option for grouping ticket entities during invoice creation in the Ready for Invoicing area.

  • Provides an additional way to organize invoice entities
  • May help improve visibility when reviewing invoice lines before creation

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 | v2.21 #1044274 | 5:24

This setting locks a ticket from billing recalculation when billing time allocation is edited on an action.

  • Prevents automated billing recalculation rules from applying
  • Technicians may unintentionally override billing rules
  • Locked entries must be manually unlocked before recalculating

The variable $_OPPVALUEADJUSTED has been added for the Opportunity Value | v2.21 #1043479 | 9:44

A new variable has been added for adjusted opportunity value.

  • Useful for workflows and automation referencing opportunity value
  • Allows adjusted opportunity calculations to be referenced more easily

Setting a workflow step outcome is now mandatory so that invalid step cannot be set | v2.21 #1043033 | 10:16

Workflow steps now require an outcome to be selected.

  • Helps prevent broken workflows
  • Ensures invalid workflow steps cannot be set

A setting has been added so that during Invoice creation the Invoice Address of the Customer's main Site will be used by default | v2.21 #1042925 | 11:09

Invoices can now default to the customer’s main site address.

  • Helps standardize billing addresses
  • Reduces manual selection during invoice creation

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 | v2.21 #1042924 | 12:52

Credit notes can now default to today’s date instead of the original invoice date.

  • Helps maintain accurate financial periods
  • Prevents backdating credits to historical invoices

A setting has been added to Email configuration that will cause prefixes such as FW: and RE: to be stripped from the beginning of emails when creating new Tickets | v2.21 #1041025 | 13:11

Halo can now remove FW: and RE: prefixes when creating tickets from email subjects.

  • Keeps ticket subjects cleaner
  • May improve consistency in ticket titles

Added AI Generated Summary as an available column in ticket column profiles | v2.21 #1037790 | 14:26

AI generated summaries can now be displayed in ticket column profiles.

  • Helps technicians quickly understand ticket context
  • Useful for triage and queue management

Added the setting 'Enable config change tracking for Services' to advanced settings | v2.21 #1032549 | 14:57

A new advanced setting enables configuration change tracking for Services.

  • Improves auditing of configuration changes
  • Useful for environments that track service configuration history

Added global setting in Asset Management to add a read-only field that displays an asset's DID | v2.21 #1027632 | 22:59

A global setting can now display the asset DID as a read-only field.

  • Makes it easier to reference internal asset IDs
  • Helpful for integrations and troubleshooting

Added the ability to specify different client credentials per instance for custom integrations | v2.21 #1027506 | 23:15

Custom integrations can now use separate credentials per instance.

  • Useful for environments running test and production instances
  • Improves credential separation and security

"Main Site Address" can now be used as a field on Client and Site column profiles | v2.21 #1024856 | 23:37

The Main Site Address field can now be used in client and site column profiles.

  • Provides more flexibility when building list views
  • Helps surface key address information quickly

Added a new way to load the instances area to improve performance | v2.21 #1024619 | 24:06

The instances area has been updated with a new loading method to improve performance.

  • Helps reduce delays in environments managing multiple instances

A setting has been added to Contract configuration that allows Tickets to be created from Contract Schedules to be created a specified number of days before the Appointment date | v2.21 #1024527 | 24:29

Tickets generated from Contract Schedules can now be created a specified number of days before the appointment date.

  • Helps teams prepare for upcoming scheduled work
  • Useful for recurring service or maintenance visits

Added Owning Portfolio/Service/Business Application/CI as fields that are available to use in asset column profiles | v2.21 #1023421 | 25:39

Additional ownership-related fields are now available in asset column profiles.

  • Improves visibility across assets tied to services and business applications

Added the ability to customise which fields show on the asset dependency diagram | v2.21 #1023353 | 25:48

Asset dependency diagrams can now display customizable fields.

  • Makes dependency diagrams more flexible
  • Allows teams to tailor diagrams to relevant asset data

You can now use the query param 'include_website=true' on the get all endpoint of client to include the website in the response | v2.21 #1018061 | 25:57

The client API endpoint can now return website data when requested.

  • Useful for API integrations and reporting tools

Multiple Improvements have been made to the Twilio for WhatsApp Business Integration | v2.21 #1016946 | 26:11

The Twilio WhatsApp integration has received multiple improvements.

  • Enhances messaging support workflows
  • Improves integration functionality

Added a setting to disable assignment rules when syncing to Salesforce | v2.21 #1016418 | 27:58

Assignment rules can now be disabled during Salesforce sync.

  • Provides more control over record ownership during integration

Added 'Secret in URI Parameter' as an authentication type for triggering a runbook by a webhook | v2.21 #1011441 | 28:05

Runbooks triggered via webhook can now use a secret URI parameter for authentication.

  • Improves security when using webhook triggers

Added default user field for HubSpot quote import | v2.21 #1011046 | 28:44

HubSpot quote imports now include a default user field.

  • Helps assign imported quotes to a default user

Added a new setting that automatically assigns an Agent the next available Unassigned Ticket when they close a Ticket | v2.21 #1003964 | 28:47

Agents can automatically receive the next unassigned ticket when they close one.

  • Ideal for load-balanced service desks
  • Keeps technicians working through the queue continuously

The Chat Bot can now pull data from browser local storage on Input steps | v2.21 #999644 | 29:45

Chat Bot input steps can now access browser local storage.

  • Allows chatbot workflows to use browser-stored data

Added more configuration options for asset system fields | v2.21 #997653 | 30:52

Additional configuration options are now available for asset system fields.

  • Provides more flexibility when customizing asset fields

Added Dynamic Button Visibility to asset custom buttons | v2.21 #997641 | 31:11

Asset custom buttons now support dynamic visibility.

  • Allows buttons to appear only when relevant

Added SQL Lookups to Asset Fields | v2.21 #995633 | 37:06

Asset fields can now perform SQL lookups.

  • Enables dynamic population of asset field data
  • Useful for integrations and advanced automation

Allowed selection of a stock bin for non-serialised assets | v2.21 #989995 | 38:11

Stock bins can now be selected for non-serialized assets.

  • Improves stock and inventory management workflows

Added Days Before and After Now date validation options for date custom fields | v2.21 #984104 | 38:24

Date custom fields now support validation rules relative to the current date.

  • Enables rules like “must be X days before or after today”

"Workflow Stage" field is now available on the report query builder | v2.21 #980651 | 39:43

Workflow Stage can now be used in the report query builder.

  • Expands reporting options for workflow-based processes

Improvements to the New Relic integration | v2.21 #978676 | 40:26

The New Relic integration has received improvements.

  • Enhances monitoring integration capabilities

You can now configure whether the phone number field is mandatory at the Ticket Type level when End-Users raise tickets anonymously via the Portal | v2.21 #976768 | 40:33

The phone number requirement for anonymous portal tickets can now be configured per ticket type.

  • Gives more flexibility in portal form requirements

Added a new Ticket Type setting: "Automatically set Start Date and Target Date based on Child Tickets" | v2.21 #975755 | 40:41

Parent tickets can automatically derive start and target dates from their child tickets.

  • Very useful for project and multi-ticket workflows

Added new option to allow AI to suggest a category value from a configurable list of category values | v2.21 #972984 | 41:55

AI can now suggest ticket categories from a configurable list.

  • Helps standardize ticket categorization

Added the setting 'Allow Agent Site Restrictions to restrict against the Site's User's and the Site's Organisation' in users settings | v2.21 #965724 | 46:23

A new setting expands how Agent Site Restrictions apply to users and organizations.

  • Useful for environments with strict site access controls

Added an option to determine how the unique ID of appointments is calculated | v2.21 #961168 | 48:39

Halo now allows configuration of how appointment unique IDs are generated.

  • Relevant for calendar and scheduling integrations