By
Mendy Green
July 15, 2025
•
20 min read
Tutorials
Fundamental Skills
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.
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.
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
.
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
.
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.
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.
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.
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.
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.
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
Raynet One integration is now available
Added Mobile App release versions and release information
When using Save As on Configuration Areas the Access Control List is now copied
Actions that send Webhooks can now be triggered on Create, Edit, Delete
Added Mark Billed/Not Billed to the CSP Invoice List
Added ability to override price per currency
ITIL Ticket Type and Ticket Type Group added as criteria for Ticket Rules
Added option for Workflow Step to show a message rather than being added to the Ticket History
Added ability to self approve Invoice Approvals
Added Opportunity Value and Opportunity Profit as criteria for Opportunity Approval Rules
JWT PS256 Assertion is now supported for Custom Integrations
Improved logging has been added to Freshdesk Migrations
Added mandatory fields when manually creating a Customer
Fixed issue where $_userid variable would not use Ticket User when using a non logged in session
Added ability to link CSP Licenses to Customers by Tenant ID
Added new rule criteria "Is draft amendment"
Removed Change Sequence field from Device and Site endpoints
Added Item Supplier SKU to Quotes, Sales Orders, Purchase Orders and Invoices
Added $_CONFIRMFEEDBACK variable to allow inclusion of feedback links in emails without risk of submission by web scanners
Added ability to paste images into plain text notes
Added "None" option to Opportunity Pipeline Stage
Added paragraph formatter to Knowledge Base Articles
Added Recurring Invoice IDs to Project Deliverables
Added new Virtual Agent function 'Web Search'
Added a setting to disable anonymous access to Reports
Added a setting to mark Actions created from forwarded emails as Private
Reduced the refresh interval on Ticket Details
Added ability to push Purchase Orders to Xero using converted currency
Fixed issue where Subscriptions imported without End Dates would default to 1st Jan 1970, they now default to the Contract End Date
Added ability to map Employee Type field from Entra ID
Added ability to hide Ticket Type selection at Action level on new Ticket screen
Added Collision Detection for Billing Entities
Added Ticket Tags as criteria for Ticket Rules
Added ability for Ticket Rule Outcomes to set User Custom Fields
Added Configuration Tracking for Lookup Profiles
Updated interactive login flows for Custom Integrations
Added ability for Feedback endpoint to filter by Start and End Dates
Added ability to auto create Items and Invoices from Pax8 Subscriptions
Added Client, Mailbox and End User fields to Qualification Matching
Added Customer Type field to Ticket Details screen
Added option to clear Supplier on Recall Actions
Improvements to Forecasting Module
Added Holiday Rules to Schedules
Added ability to auto group Quotation Lines by Item Group
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.
Lets you define how many columns appear in end-user ticket forms.
Filter CSP mappings to assign values by Azure group membership.
Schedule tickets dynamically based on SQL queries for assets.
Prevent certain appointment types from including client attendees.
Ticket areas can now display custom images in the header.
Improved reporting with stacked bar splits.
Projects tasks can now follow sequence numbers.
Quote settings and approvals are now managed separately.
Show product list prices in the target quote currency.
Billing configuration split into clearer sections.
HaloPSA integration now supports remote session invites.
Introduces improved line total calculations.
Control the order of CRM note custom fields.
New grouping logic for dynamic field conditions.
Exclude sensitive customers from Halo’s built-in AI.
Control which asset columns users see when logging tickets.
Pull products straight from Ingram Micro.
More control over “Favourite Services” in the portal.
Ticket Kanban boards improved.
Granular permission for pushing config changes.
Improved grouping for user access restrictions.
Settings now stored in a new format.
Mailbox sender restrictions expanded.
Single Select IDs can now use non-integer values.
Cloned tickets can now inherit milestones.
Credits can now be applied as payments.
Contracts can now be swapped in the review list.
Enhancements for AWS usage billing.
Split ticket forms into multiple pages.
Bulk toggle users between service and non-service.
Item groups now support a default sequence.
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.
Choose a consistent default font for editors in tickets and actions.
A banner warns when integrations allow unauthenticated webhooks.
Recalculate billing for a selected customer over a defined window.
Control when a billing rule applies.
Declutter your recurring invoice view.
Filter or route tickets by the mailbox they came from.
Security and reliability enhancements for on-prem connections.
Make start dates automatic for certain ticket types.
Keep grouped fields always visible.
Automate around CRM note activity.
Runbooks can process text-only API responses.
Safer, clearer Excel imports.
Bill on an exact day each month.
Lock milestone structures from templates.
Let end users chat directly on an existing ticket.
Reduce confusion on sales order lines.
Granular “log on behalf” controls.
Group actions into dropdown menus on tickets.
A big boost to project billing performance.
More events to hook automations into.
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