8 Guidelines for better HaloPSA Reporting

By  
Mendy Green
July 15, 2025
20 min read
Share this post

HaloPSA reporting is a common stumbling block for MSP teams and it’s no wonder why. With decades-old naming conventions, SQL complexity, and inconsistent column naming, most folks give up before they get started.

But if you’ve worked the helpdesk, you already have the most important skill: troubleshooting.

At Rising Tide, we lean into that mindset. These 8 guidelines—developed by Mendy Green—are how we train team members to creatively and confidently troubleshoot their way through the HaloPSA database. This isn’t a ruleset: it’s a survival guide built from lived experience, experimentation, and a lot of Ctrl+F. The following is also available to view on a video from Mendy linked here: https://youtu.be/1h3lMqIQbXY.

Guideline 1: FAULT Is a Ticket

Halo uses the term “fault” instead of “ticket.” That’s a legacy holdover from NetHelpDesk, Halo’s predecessor. If you see “fault,” translate it in your head to “ticket.”
🛠 Real Example: When writing a report, select from the faults table to get ticket data—even if you're working with projects, opportunities, or tasks. They're all stored as faults.

Guideline 2: ACTION Is a Note or Entry on a Ticket

Every email, time entry, and status change lives in the actions table. If something happened to a ticket, it’s here.
🛠 Real Example: Time entries, incoming/outgoing emails, status changes, and internal notes all show up in actions, joined to tickets via fault ID.

Guideline 3: Understand Table Prefixes

Most tables prefix their column names based on the table itself. That prefix tells you where the data originated.
🛠 Real Example: In the site table, SArea refers to the client (Area). In the user table, USite points to the site ID. If you see a column like QHID, that’s the primary key from quotation header.

Guideline 4: Primary Keys Get Reused Across Tables

Once you know a table’s primary key, look for it in other tables to understand relationships.
🛠 Real Example: area, site number, UID, and fault ID show up across multiple tables. If you know a device’s DID, you can filter by it and join against other asset-related tables.

Guideline 5: Use the Reporting Module to Search and Learn Faster

Skip loading massive reports. Use the Fields tab to explore column names and understand structure before you ever hit preview.
🛠 Real Example: Mendy uses Fields to inspect columns like OutcomeID, ActionByUNum, or SDeliveredBy to identify their function—without ever loading a full dataset.

Guideline 6: Utilize “Open Report Data Source” to Reverse Engineer

Halo’s online report repository is a goldmine. You don’t even need to install a report—just open the data source and see how it’s built.
🛠 Real Example: When Mendy didn’t know how a report generated “Month Created,” he opened the data source and saw how CONVERT was used to format the date. Instant clarity.

Guideline 7: Use the "Database Tables & Columns" Report—But Always Filter First

This built-in schema reference report lets you search by table or column name—but don’t run it raw. Filter by table or field name first or it’ll crash your browser.
🛠 Real Example: Mendy uses this to find terms like “Azure Tenant” and locate where clients are mapped. It’s a last-resort treasure map—useful but slow.

Guideline 8: Use Real Values to Discover Field Names

If you know a real-world value (like an asset tag), pull that entity with SELECT * and search for it. That’ll reveal the column name you’re after.
🛠 Real Example: Mendy didn’t know which field stored an asset’s tag—until he filtered device by ID, Ctrl+F’d the tag, and found it was stored in INVNO (inventory number).

Conclusion
You don’t need to master SQL overnight to get value out of HaloPSA. You just need to lean into what helpdesk techs do best: problem-solve with what’s in front of you.

These 8 guidelines aren’t about perfection. They’re about being clever, resourceful, and creative with the tools you’ve got—and turning reporting from a weakness into a strength.

Share this post
Mendy Green

I'm passionate about IT, driven by a dual love for solving complex problems and a commitment to transforming the stereotype of technical support into a positive and enjoyable user experience. For over 13 years, I've been deeply involved in the MSPGeek community, lending my expertise to various Managed Service Providers (MSPs), while also serving as the CTO at IntelliComp Technologies.

My journey in the tech world is fueled by a passion for teaching others. I find great satisfaction in imparting problem-solving and critical thinking skills, and offering practical guidance during the troubleshooting process. It's this enthusiasm for mentorship and improvement that led me to my current venture.

Today, as the founder of Rising Tide, I'm focusing on the MSP industry, dedicating my time to coaching and assisting both individuals and businesses. At Rising Tide, we're not just about providing solutions; we're about nurturing growth, fostering innovation, and building a community where everyone can rise together. Whether it's through hands-on problem solving or strategic planning, my goal is to make the IT experience not just efficient, but also empowering and enjoyable

See some more of our most recent posts...
September 30, 2025
8 min read

By the [run]Book: Episode 8

Episode 8 of By the [run]Book explores HaloPSA v2.200 beta, featuring ArrowSphere and Raynet integrations, Pax8 automation, AI and reporting controls, and forecasting improvements.
Read post

Episode 8 of By the [run]Book jumps into HaloPSA v2.200 beta features. From distributor integrations (ArrowSphere, Raynet), AI controls, forecasting improvements, Pax8 automation, and new ticket workflow controls, there’s a lot for MSPs to explore. This episode is packed with updates for finance, automation, security, and reporting that can streamline operations and open new possibilities.

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

ArrowSphere integration is now available | v2.200 #289098 | 1:10

ArrowSphere integration is now available

  • Expands distributor catalog options
  • Useful for license and product procurement

Raynet One integration is now available | v2.200 #835673 | 2:38

Raynet One integration is now available

  • Stronger asset discovery and management
  • Complements Halo’s native CMDB

Added Mobile App release versions and release information | v2.200 #988453 | 3:10

Added Mobile App release versions and release information

  • Track mobile release cycles
  • Gives admins visibility into app adoption

When using Save As on Configuration Areas the Access Control List is now copied | v2.200 #988092 | 4:54

When using Save As on Configuration Areas the Access Control List is now copied

  • Speeds up cloning of configs
  • Preserves security/access settings

Actions that send Webhooks can now be triggered on Create, Edit, Delete | v2.200 #986466 | 10:12

Actions that send Webhooks can now be triggered on Create, Edit, Delete

  • Expands automation flexibility
  • Supports more real-time integrations

Added Mark Billed/Not Billed to the CSP Invoice List | v2.200 #986195 | 12:40

Added Mark Billed/Not Billed to the CSP Invoice List

  • Simplifies CSP billing workflows
  • Improves financial reporting

Added ability to override price per currency | v2.200 #984653 | 14:41

Added ability to override price per currency

  • Greater multi-currency support
  • Helpful for global MSPs

ITIL Ticket Type and Ticket Type Group added as criteria for Ticket Rules | v2.200 #984404 | 15:49

ITIL Ticket Type and Ticket Type Group added as criteria for Ticket Rules

  • Easier to apply ITIL processes
  • Supports better ticket automation

Added option for Workflow Step to show a message rather than being added to the Ticket History | v2.200 #983903 | 16:14

Added option for Workflow Step to show a message rather than being added to the Ticket History

  • Cleaner workflows
  • Reduces ticket history clutter

Added ability to self approve Invoice Approvals | v2.200 #982224 | 20:03

Added ability to self approve Invoice Approvals

  • Faster internal billing approvals
  • Reduces bottlenecks for finance teams

Added Opportunity Value and Opportunity Profit as criteria for Opportunity Approval Rules | v2.200 #981567 | 22:35

Added Opportunity Value and Opportunity Profit as criteria for Opportunity Approval Rules

  • Enforces financial thresholds
  • Ensures oversight on large deals

JWT PS256 Assertion is now supported for Custom Integrations | v2.200 #980596 | 23:03

JWT PS256 Assertion is now supported for Custom Integrations

  • Increases integration security
  • Expands compatibility with APIs

Improved logging has been added to Freshdesk Migrations | v2.200 #980351 | 23:34

Improved logging has been added to Freshdesk Migrations

  • Easier to troubleshoot
  • Helps ensure smoother migrations

Added mandatory fields when manually creating a Customer | v2.200 #979956 | 23:47

Added mandatory fields when manually creating a Customer

  • Improves CRM data quality
  • Prevents incomplete records

Fixed issue where $_userid variable would not use Ticket User when using a non logged in session | v2.200 #979921 | 24:23

Fixed issue where $_userid variable would not use Ticket User when using a non logged in session

  • Fixes automation reliability
  • Ensures correct user context

Added ability to link CSP Licenses to Customers by Tenant ID | v2.200 #979388 | 24:48

Added ability to link CSP Licenses to Customers by Tenant ID

  • Streamlines CSP license management
  • Supports multi-tenant scenarios

Added new rule criteria "Is draft amendment" | v2.200 #978652 | 26:54

Added new rule criteria "Is draft amendment"

  • Enhances rule precision
  • Supports contract change workflows

Removed Change Sequence field from Device and Site endpoints | v2.200 #978553 | 27:05

Removed Change Sequence field from Device and Site endpoints

  • Cleans up unused fields
  • Simplifies API outputs

Added Item Supplier SKU to Quotes, Sales Orders, Purchase Orders and Invoices | v2.200 #977928 | 27:11

Added Item Supplier SKU to Quotes, Sales Orders, Purchase Orders and Invoices

  • Improves procurement detail
  • Complements manufacturer SKU

Added $_CONFIRMFEEDBACK variable to allow inclusion of feedback links in emails without risk of submission by web scanners | v2.200 #977157 | 27:25

Added $_CONFIRMFEEDBACK variable to allow inclusion of feedback links in emails without risk of submission by web scanners

  • Prevents false feedback submissions
  • Adds safeguard for automated systems

Added ability to paste images into plain text notes | v2.200 #976145 | 29:41

Added ability to paste images into plain text notes

  • Converts pasted images into attachments
  • Improves technician documentation

Added "None" option to Opportunity Pipeline Stage | v2.200 #975939 | 30:02

Added "None" option to Opportunity Pipeline Stage

  • Useful for non-standard deals
  • Prevents forced categorization

Added paragraph formatter to Knowledge Base Articles | v2.200 #975816 | 30:15

Added paragraph formatter to Knowledge Base Articles

  • Improves formatting options
  • Creates cleaner KB layouts

Added Recurring Invoice IDs to Project Deliverables | v2.200 #975764 | 30:23

Added Recurring Invoice IDs to Project Deliverables

  • Links financials with project work
  • Easier auditing of deliverables

Added new Virtual Agent function 'Web Search' | v2.200 #974256 | 32:04

Added new Virtual Agent function 'Web Search'

  • Virtual agent can now query the web
  • Potential for enhanced self-service

Added a setting to disable anonymous access to Reports | v2.200 #972033 | 33:16

Added a setting to disable anonymous access to Reports

  • Secures sensitive reporting data
  • Better control for compliance

Added a setting to mark Actions created from forwarded emails as Private | v2.200 #971373 | 34:48

Added a setting to mark Actions created from forwarded emails as Private

  • Protects sensitive replies
  • Prevents unintended client exposure

Reduced the refresh interval on Ticket Details | v2.200 #970219 | 37:25

Reduced the refresh interval on Ticket Details

  • Faster live updates
  • Improves agent responsiveness

Added ability to push Purchase Orders to Xero using converted currency | v2.200 #968522 | 37:43

Added ability to push Purchase Orders to Xero using converted currency

  • Supports multi-currency accounting
  • Streamlines Xero integrations

Fixed issue where Subscriptions imported without End Dates would default to 1st Jan 1970, they now default to the Contract End Date | v2.200 #967742 | 38:56

Fixed issue where Subscriptions imported without End Dates would default to 1st Jan 1970, they now default to the Contract End Date

  • Improves data accuracy
  • Reduces cleanup work

Added ability to map Employee Type field from Entra ID | v2.200 #967409 | 39:15

Added ability to map Employee Type field from Entra ID

  • Brings more HR data into Halo
  • Useful for filtering and reporting

Added ability to hide Ticket Type selection at Action level on new Ticket screen | v2.200 #965667 | 39:38

Added ability to hide Ticket Type selection at Action level on new Ticket screen

  • Simplifies ticket forms
  • Prevents incorrect type selections

Added Collision Detection for Billing Entities | v2.200 #964893 | 40:13

Added Collision Detection for Billing Entities

  • Prevents conflicting edits
  • Protects financial data integrity

Added Ticket Tags as criteria for Ticket Rules | v2.200 #964799 | 42:37

Added Ticket Tags as criteria for Ticket Rules

  • Expands automation options
  • Supports more granular rules

Added ability for Ticket Rule Outcomes to set User Custom Fields | v2.200 #963641 | 43:21

Added ability for Ticket Rule Outcomes to set User Custom Fields

  • Enriches automation possibilities
  • Reduces manual user updates

Added Configuration Tracking for Lookup Profiles | v2.200 #963628 | 43:34

Added Configuration Tracking for Lookup Profiles

  • Tracks changes for auditing
  • Improves config accountability

Updated interactive login flows for Custom Integrations | v2.200 #962496 | 43:55

Updated interactive login flows for Custom Integrations

  • Standardizes across integrations
  • Improves user experience

Added ability for Feedback endpoint to filter by Start and End Dates | v2.200 #961400 | 44:11

Added ability for Feedback endpoint to filter by Start and End Dates

  • Enables historical reporting
  • Adds precision to feedback queries

Added ability to auto create Items and Invoices from Pax8 Subscriptions | v2.200 #960452 | 44:41

Added ability to auto create Items and Invoices from Pax8 Subscriptions

  • Automates Pax8 billing flows
  • Reduces manual entry

Added Client, Mailbox and End User fields to Qualification Matching | v2.200 #960337 | 47:09

Added Client, Mailbox and End User fields to Qualification Matching

  • Enhances routing logic
  • Supports more accurate matching

Added Customer Type field to Ticket Details screen | v2.200 #954727 | 50:12

Added Customer Type field to Ticket Details screen

  • Provides better visibility
  • Useful for reporting and filtering

Added option to clear Supplier on Recall Actions | v2.200 #947898 | 51:36

Added option to clear Supplier on Recall Actions

  • Helps clean up procurement data
  • Supports better vendor management

Improvements to Forecasting Module | v2.200 #937556 | 52:01

Improvements to Forecasting Module

  • New forecasting options added
  • Improves financial projections

Added Holiday Rules to Schedules | v2.200 #937554 | 54:13

Added Holiday Rules to Schedules

  • Supports skipping holidays
  • Reduces scheduling conflicts

Added ability to auto group Quotation Lines by Item Group | v2.200 #922789 | 54:40

Added ability to auto group Quotation Lines by Item Group

  • Creates cleaner quotes
  • Improves readability for clients

September 16, 2025
8 min read

By the [run]Book: Episode 7

Episode 7 of By the [run]Book covers HaloPSA v2.196 and v2.198, featuring updates to ticket layouts, SQL-driven automation, reporting, AI controls, and multi-page ticket logging.
Read post

In Episode 7 of By the [run]Book, the team finishes off highlights from v2.196 before diving into the first v2.198 beta features. From multi-column ticket layouts and SQL-driven scheduled tickets to dynamic field visibility groups, AI exclusions, and multi-page ticket logging, this release is stacked with quality-of-life improvements and automation power-ups. A must-watch for MSPs looking to fine-tune service delivery and streamline configuration.

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

Added the setting 'Number of columns on the End-User Portal new Ticket screen' at Ticket type level | v2.196 #688629 | 1:29

Lets you define how many columns appear in end-user ticket forms.

  • Condense long forms into multiple columns
  • Easier to design cleaner layouts for portal users

Added the ability to filter Microsoft CSP site value mappings by Azure Group | v2.196 #753423 | 5:47

Filter CSP mappings to assign values by Azure group membership.

  • Useful for billing types or licensing models
  • Simplifies recurring invoice criteria

Added option to add Assets to Scheduled Tickets using custom SQL query | v2.196 #739358 | 9:55

Schedule tickets dynamically based on SQL queries for assets.

  • Automatically pull asset lists
  • Enables complex filtering by type, warranty, or other attributes

A setting has been added to Appointment Types to hide/remove Attendees from Appointments | v2.196 #414277 | 14:45

Prevent certain appointment types from including client attendees.

  • Good for internal reminders
  • Avoids accidental client notifications

Added option at Ticket Area level to add an image to the page header | v2.198 #967928 | 18:58

Ticket areas can now display custom images in the header.

  • Supports branding or co-managed IT scenarios
  • Add a logo or visual context per area

Report Bar charts which include a sum or count of records can now be split by a field in a Report | v2.198 #967725 | 20:59

Improved reporting with stacked bar splits.

  • Group by multiple fields (e.g., client + status)
  • More flexible dashboards

A setting has been added to Project Management Configuration to enable ordering of Project Tasks by a Sequence Number by default | v2.198 #962014 | 22:46

Projects tasks can now follow sequence numbers.

  • Improves ordering in templates and live projects
  • Sets consistent workflows

Quote Settings and Quote Approvals have been split out onto separate Configuration lists | v2.198 #961971 | 24:38

Quote settings and approvals are now managed separately.

  • Cleaner configuration pages
  • Easier to find the right settings

A setting has been added to Quote Configuration "Show the Product list prices using converted rate" | v2.198 #960576 | 25:24

Show product list prices in the target quote currency.

  • Better transparency for multi-currency quotes

Improved Billing module configuration layout | v2.198 #959686 | 25:52

Billing configuration split into clearer sections.

  • Easier to navigate invoice, labor, and travel settings

Remote support functionality is now available with the ConnectWise Control integration | v2.198 #952417 | 26:53

HaloPSA integration now supports remote session invites.

  • Directly link sessions from assets or tickets

Added new method for line total calculations for Invoices, Quotes, Sales Orders and Purchase Orders | v2.198 #949475 | 27:36

Introduces improved line total calculations.

  • Better rounding in multi-currency scenarios
  • More consistent invoice/quote math

CRM note custom fields can now be re-ordered using sequence values | v2.198 #947824 | 29:42

Control the order of CRM note custom fields.

  • Easier to present critical info at the top
  • Cleaner user experience

Dynamic field visibility conditions are now grouped | v2.198 #935136 | 29:49

New grouping logic for dynamic field conditions.

  • Combine multiple AND/OR groups
  • More flexibility when designing forms

Added a customer level setting to exclude the customer from AI functionality | v2.198 #921333 | 33:31

Exclude sensitive customers from Halo’s built-in AI.

  • Useful for legal/privacy requirements
  • Can be referenced by custom AI logic too

You can now choose an asset column profile for the assets field on the new ticket screen on the self service portal | v2.198 #855247 | 34:18

Control which asset columns users see when logging tickets.

  • Improves clarity for end users
  • Customize per ticket type

You can now search the Ingram Micro hardware catalogue directly | v2.198 #839722 | 36:31

Pull products straight from Ingram Micro.

  • Faster quoting process
  • Avoids manual catalog lookups

Added the ability to enforce that a service should always appear in the 'Favourite Services' on the portal when accessible to the user or prevent a service from appearing in the 'Favourite Services' | v2.198 #838454 | 36:53

More control over “Favourite Services” in the portal.

  • Force visibility for key services
  • Prevent clutter from irrelevant ones

Add various improvements to ticket Kanban views | v2.198 #826176 | 37:08

Ticket Kanban boards improved.

  • Show all stages, even empty ones
  • Choose default view type

Added a permission to determine whether agents can push configuration changes between other environments/instances | v2.198 #815397 | 39:01

Granular permission for pushing config changes.

  • Useful for staging/dev/test environments

Service and service category user access restrictions are now grouped | v2.198 #815195 | 39:18

Improved grouping for user access restrictions.

  • Cleaner criteria logic
  • Matches new grouping system

New storage method for global settings to improve performance | v2.198 #812830 | 40:04

Settings now stored in a new format.

  • Faster performance
  • Friendlier structure for reporting

Added the ability to restrict Mailbox senders to multiple Teams, Departments and Organisations | v2.198 #804411 | 42:59

Mailbox sender restrictions expanded.

  • Route inbound email more flexibly
  • Apply to multiple orgs/departments

A setting has been added to Custom Field creation that allows non-integer values to be used for Single Select ID fields populated by Custom Integrations | v2.198 #803758 | 43:14

Single Select IDs can now use non-integer values.

  • Supports GUIDs and strings
  • Essential for Graph API and external integrations

Added an option to include cloned tickets in the same Milestone as the original ticket | v2.198 #781758 | 48:59

Cloned tickets can now inherit milestones.

  • Keeps related work aligned
  • Reduces cleanup

Added a new setting in the Billing configuration to apply credit using Payments | v2.198 #770215 | 49:27

Credits can now be applied as payments.

  • Better alignment with accounting practices
  • Avoids negative line-item issues

Added the ability to change an action's contract from the Awaiting Review list | v2.198 #767329 | 53:07

Contracts can now be swapped in the review list.

  • Supports correcting mistakes without reopening

Impprovements to the AWS integration | v2.198 #744781 | 54:04

Enhancements for AWS usage billing.

  • More accurate sync
  • Broader coverage of services

Multi-Page Ticket Logging is now available for the Self Service Portal | v2.198 #441082 | 54:22

Split ticket forms into multiple pages.

  • Improves user experience
  • Configure by field groups

A Bulk option has been added to user lists to change users into service users (or Non-Service Users) | v2.198 #383627 | 55:42

Bulk toggle users between service and non-service.

  • Simplifies user management at scale

A Default Sequence/Order has been added to Product/Item Groups that will be used when adding Products/Items to Quotes/Orders/Invoices | v2.198 #357664 | 56:10

Item groups now support a default sequence.

  • Ensures predictable ordering
  • Reduces manual sorting

September 2, 2025
8 min read

By the [run]Book: Episode 6

In Episode 6, the team explores HaloPSA v2.196 stable, covering billing recalculation, recurring invoice options, mailbox filters, project billing efficiency, role-based permissions, and automation upgrades.
Read post

Episode 6 breaks down HaloPSA v2.196 (stable). We cover improvements to billing recalculation and recurring invoice scheduling, on-prem integration security, ticket UI/UX (action groups, field group behavior), role-level controls, chat on existing tickets, and a big boost to project billing performance in Ready for Invoicing. Ideal for MSPs tightening finance, project, and automation workflows in Halo.

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

A setting has been added to the Advanced Settings so that a default font can be chosen for the Editor on Tickets and Actions | v2.196 #957605 | 4:43

Choose a consistent default font for editors in tickets and actions.

  • Set globally in Advanced Settings
  • Keeps agent communications visually consistent

Added a security check for integrations that are configured to allow unauthenticated webhooks | v2.196 #956772 | 5:54

A banner warns when integrations allow unauthenticated webhooks.

  • Nudges admins to tighten webhook security
  • Reduces risky integration configurations

A button has been added to the Customer screen to allow time entries to be recalculated in the background | v2.196 #955934 | 7:12

Recalculate billing for a selected customer over a defined window.

  • Limited to recent months for performance
  • Respects locked or already-invoiced time entries

Billing Plan Combinations can now be given a Start and End date; time logged outside of these values will not match the combination | v2.196 #955162 | 13:37

Control when a billing rule applies.

  • Prevents unintended retroactive changes
  • Smooth transitions as pricing rules evolve

A setting has been added to Configuration > Recurring Invoices > List Settings so that Recurring Invoice lists will hide Inactive Invoices by default | v2.196 #953223 | 17:06

Declutter your recurring invoice view.

  • Hide inactive by default
  • Recommended for most teams

Added "Mailbox" as a Ticket List Criteria | v2.196 #948983 | 19:38

Filter or route tickets by the mailbox they came from.

  • Easier separation of alert mailboxes vs. support
  • Useful for list views, rules, and reporting

Improvements to on-premise integrations that use the Halo Integrator | v2.196 #937027 | 22:53

Security and reliability enhancements for on-prem connections.

  • Support for secure credential storage (e.g., Azure Key Vault)
  • More control for local integration schedules

Default Start Date can now be set at Ticket Type level | v2.196 #920636 | 25:29

Make start dates automatic for certain ticket types.

  • Helpful for templates and scheduled tasks
  • Reduces manual edits by agents

Added a setting to prevent field groups from being collapsed | v2.196 #898449 | 26:37

Keep grouped fields always visible.

  • Ensures critical fields remain expanded
  • Useful for long, important forms

Added Client/Site CRM Note Created/Updated/Deleted as notification and runbook triggers | v2.196 #894541 | 28:32

Automate around CRM note activity.

  • Great for account management follow-ups
  • Notes can log time and trigger workflows

Runbook methods now support response that are only text | v2.196 #881111 | 33:01

Runbooks can process text-only API responses.

  • Supports non-JSON endpoints
  • Use text values in runbook lookups

Improvements to the XLS imports | v2.196 #855596 | 34:24

Safer, clearer Excel imports.

  • New Validate button to test before running
  • Optionally limit rows per batch

Added option on Recurring Invoice schedules to invoice on a specific day of the month | v2.196 #840590 | 37:18

Bill on an exact day each month.

  • Avoid hacky “days ahead” workarounds
  • Keep clean monthly periods (1st–end)

Added the setting 'Disable modification of milestones on Tickets' at Template level | v2.196 #835114 | 42:10

Lock milestone structures from templates.

  • Enforces standard project delivery sequences
  • Prevents ad-hoc milestone changes

Added option to 'chat about a ticket' for users on the self-service portal | v2.196 #828310 | 43:21

Let end users chat directly on an existing ticket.

  • Maintains context vs. starting a new chat
  • Useful where chat is a primary channel

The options for "Add to Project" and "Add budget to Project" will no longer show on the Sales Order line when no Products are created for the Sales Order and the option to only show Projects on the same Sales Order is being used | v2.196 #821081 | 45:46

Reduce confusion on sales order lines.

  • Hide project actions when they don’t apply
  • Keeps UI aligned with “same sales order” constraint

Added the option to restrict log on behalf permissions at user role level | v2.196 #820693 | 47:01

Granular “log on behalf” controls.

  • Scope by client/site/department
  • Tighter control for delegated ticket creation

Added Action Groups | v2.196 #722376 | 51:12

Group actions into dropdown menus on tickets.

  • Declutters the action bar
  • Create intuitive groups (e.g., AI, Notes, Contact)

Improved project loading efficiency in the ready for invoicing section | v2.196 #594973 | 56:31

A big boost to project billing performance.

  • Project number stored on each time entry
  • Faster loads and simpler reporting (even several levels deep)

Added 6 new notification/runbook trigger events | v2.196 #453212 | 58:49

More events to hook automations into.

  • Build richer alerts and operational actions
  • Expand your runbook coverage

For more insights, see our guide on choosing the right ticket status colors in HaloPSA

Also, check out our partner Renada’s video: From Feedback to Forest: Automating Tree Planting in HaloPSA