By
El Copeland
July 22, 2025
•
20 min read
News
Solutions
Tutorials

This release didn’t come with any headline grabbers—but for those deep in Halo, it delivered a handful of quality-of-life improvements and some thoughtful backend fixes. Below are the features worth your attention, especially if you're in billing, approvals, or building project automation.
Watch here now: https://youtube.com/live/WGnJXYeSxN4
Delegate Approvals for Tickets | v2.190 #830512 | 2:28
Ticket approvers can now assign delegates directly from the agent app ticket detail screen. Great for ITSM or structured orgs, but less relevant for fast-moving MSPs unless you're running approvals regularly.
Manual Proration Made Invoice-Ready | v2.190 #823611 | 4:18
A new checkbox on manual proration entries lets them show up in the invoicing screen immediately. Particularly useful for mid-cycle adjustments to annual billing, like licensing or domains.
Zero Draft Invoice Handling | v2.190 #819999 | 6:41
Halo will now ignore draft invoices created in Xero, preventing clutter and accidental syncing. You'll need to enable this in the Xero integration webhook settings.
Receive Stock Before PO Approval | v2.190 #829771 | 9:04
You can now receive items before a purchase order is approved. Risky for strict workflows but may fit fast-paced environments where hardware urgency overrides red tape.
Auto-Issue Items from Actions | v2.190 #837101 | 10:21
Set up actions to issue specific inventory items without user selection. Makes fixed-fee tickets more maintainable. Bug alert: doesn't yet work with quick actions—still requires a workaround.
Ticket ID in PDF Template Item Tables | v2.190 #837112 | 12:39
PDF templates can now pull the associated ticket ID into item tables—helpful for clarity in documentation, reporting, or client-facing PDFs.
Read-Only Appointment Subjects | v2.190 #829744 | 17:43
Admins can lock appointment subjects to match the ticket/project. It’s a small control that helps standardize records across large teams.
Editable Invoice Line Contract Links | v2.190 #823492 | 20:41
You can now edit the contract tied to a specific invoice line—especially valuable if you're tracking profitability across services with multiple contracts.
Prevent RMM from Changing Device Types | v2.190 #821917 | 24:58
ConnectWise RMM imports won't overwrite an existing device type anymore, assuming you check the new box.
QuickBooks Name Collision Workaround | v2.190 #829321 | 26:05
Halo now checks for matching item names before syncing, and links them rather than creating duplicates. A clever patch for a QuickBooks API issue.
Ticket Type as Rule Outcome | v2.190 #831422 | 27:28
You can now set ticket type via rule outcomes. Great for automating triage flows or conversions between types during lifecycle changes.
Team Custom Fields in Details Tab | v2.190 #831994 | 31:13
You can finally surface custom fields tied to teams directly in ticket details. Limited use cases for now, but it’s a step toward richer internal data visibility.
Granular Attachment Permissions | v2.190 #829812 | 32:36
Admins can now control who can view, edit, upload, and download attachments—down to the ticket type and role level.
Track Completion of Sales Lines | v2.190 #832113 | 33:58
Sales order lines can be manually or automatically marked as “Complete.” Adds helpful clarity, especially when you're tracking partial progress across installs or shipments.
Runbook Execution Modes (Parallel/Sequential) | v2.190 #830301 | 35:27
Control how runbooks trigger: run steps in parallel for speed or in series to avoid conflicts and ensure data accuracy.
Column Profiles for Invoices & Quotes | v2.190 #834755 | 44:01
Column profiles now work on sales orders, quotes, and invoices. You can personalize the data you see—and what you hide—for cleaner views.
Runbook Stats Tab | v2.190 #830996 | 35:27
Basic run metrics are now visible in a tab. Not yet robust for reporting, but a decent glance for usage and debugging.
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword. And join us on August 5th for a show with Robbie and Mendy: https://youtube.com/live/ApiYEmWJsPU!

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
This allows the ticket screen to automatically refresh when a background automation completes.
Expands qualification matching to include custom field criteria.
Adds delayed and retry-based webhook processing options.
This change limits the available “From” addresses on a ticket action to mailboxes the assigned team can actually access.
Adds Email Address as another attribute option for follower behavior on the portal.
Allows changes to Mail Campaigns after they have started.
Restricts pipeline stages based on opportunity type.
Adds webhook processing options including delayed and retry handling.
Adds the ability to hide tickets from the change calendar.
Adds Service Users as a selectable option in distribution and user lists.
Allows campaigns to be sent from sales mailboxes.
Adds a warning when an action email will fail.
Adds asset relationship mapping during SQL imports.
Adds an isRunning field to asset discovery.
Expands qualification matching with custom field rules.
Allows ticket view to auto-refresh after automation runs.
Adds ability to update currency values on quotes.
Requires comments for negative KB feedback.
Adds control for showing nested tickets.
Enhances AI reporting capabilities.
Restricts KB edits to owners only.
Adds translation support in the portal.
Adds secondary MAC address support.
Adds character limits to text fields.
Adds more fields for OLA and rule reporting.
Prevents approvals from email replies.
Extends field copying to deeper ticket levels.
Adds primary asset as a runbook condition.
Adds AgentID variable for lookups.
Adds reporting changes to config tracking.
Adds filter profiles to child ticket views.
Adds more configuration options to other open tickets view.

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.
The Billing tab is now visible to agents without requiring full billing permissions, with actions locked based on access.
Tickets on hold can now be included in SLA breached filters.
You can now define a default billing template applied automatically when creating a new customer.
Dynamic filters can now be used on ticket lists for more flexible querying.
This helps keep recurring invoices aligned when item third-party IDs change.
Recurring invoices now get the same due date option already available at customer setup.
This adds more control to portal-based approval workflows.
This extends alternate invoicing behavior down to the site level.
This helps prevent tickets from disappearing into inactive-agent limbo.
More ticket list criteria means more practical operational views.
This update improves the ManageEngine Endpoint Central integration.
Halo now supports generic OpenID Connect SSO.
You can now duplicate item bundles instead of rebuilding them manually.
This adds more naming flexibility to the UI.
This makes SLA breach reporting more honest and more useful.
A major improvement for standard billing configuration.
This adds more flexibility to meter-driven recurring billing.
Dynamic ticket filters add a much stronger filtering experience.
Cloning custom fields speeds up admin work.
This update improves chart label readability.
This update refines the encryption update workflow.
This improves call handling context.
This gives more control over quantity precision.
This improves flexibility when linking work records from sales orders.
This adds better billing visibility without fully exposing billing controls.
Spreadsheet imports can now target existing tickets by ID.
A small UI cleanup on the ticket details pane.
This adds flexibility for co-managed support models.
This improves control over CSP user mapping behavior.
This adds clarification around tax rate usage in Xero-linked setups.
This makes Avalara tenant cleanup easier from the client billing tab.
This is a strong automation improvement.
Custom table row deletion gets more precise.
This cleans up recurring invoice visibility.
This is a documentation/config clarity improvement.
Ticket rule assignment now supports more role-based options.
Approval rule logic gets another useful condition.
Supplier-related configuration gets more flexible.
Project templates now get more dynamic input from sales-order-driven creation.
This expands visibility in quote and sales order line views.
This makes customer/site control more precise.
The API docs continue to improve.
This improves ticket logging layout flexibility in the agent app.
This is an important reliability improvement for payment processing.
This adds more flexibility when services are generated from assets.
This improves parent/child ticket data behavior.
Third-party ID linking is now available across more entities.
Query Builder gets another field for reporting logic.
This expands visibility of account/prospect records in top-level views.
Custom buttons now get access control.
This adds polish to the opportunity creation experience.
This is one of the biggest integration-facing updates in the episode.

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.