Choosing the Right Ticket Status Colors in HaloPSA

By  
El Copeland
August 21, 2024
20 min read
Share this post

Have you implemented unique colors for your Ticket Statuses in HaloPSA?  

Coloring these Statuses adds a great Quality of Life to your Agents working tickets. Often, it is treated as a nice-to-have or “let’s just make it look pretty,” which are fine if it works for you. However, we invite you to imagine instead with us: what if you could leverage symbolic colors that guide an Agent through your defined ticket process. What if you could implement that in a reasonable way?

So, to help lessen that decision fatigue for you since we know you’re busy customizing every other setting in HaloPSA as well, here is the framework that Rising Tide uses to approach customizing these settings to help you quickly and sensibly label your Ticket Statuses. In a future article, we’ll tackle Ticket Action color codes; however, the concepts will generally remain the same.  

Laying out the Ticket Status Colors Framework

Before we jump into coloring statuses, let’s start by defining a ticket’s lifecycle according to how your Agents need to allocate their attention to those tickets, whether that is dictated by standard professionalism or ensuring SLAs are kept. For the sake of this conversation, we are going to address these ticket attention phases with the segments: Normal Attention, Elevated Attention, or Inert Attention.

Normal Attention

Ideally, your Agents receive a ticket and all things are “Go,” they have everything they need to start working, and then Close the ticket when they've successfully completed the task and can rest on their laurels (or move on to the next ticket!).

We recommend all Normal Attention tickets to be assigned “cool colors” like greens, blues, and purples. (And not cool because we think they’re rad, cool as opposed to warm colors, more information here on color theory) Statuses like New and In Progress generally belong here. We have the ticket, everything is going as planned. What a perfect, serene world. Peaceful, isn’t it?  

Unfortunately, that’s not the reality in most of our businesses! What happens when tickets require extra attention or action to ensure their timely completion?

Elevated Attention

Here in Elevated Attention is where we see statuses like Escalated, Pending Approval, or Reopened: tickets that we need to be actively thinking about and revisiting, especially ones that are keeping our SLA clock running. To inspire action and increase visibility, we’re using warm, fiery colors like Orange, Red, and Yellow.

What if there is a ticket where we cannot take immediate action, or it doesn’t warrant it? That’s our last category: Inert Attention.  

Inert Attention

There will be times when our tickets are active but there is literally nothing we can do but wait. The SLA clock isn’t running, so we don’t need to worry about taking action on these just yet: statuses like Waiting on Client or Waiting on Vendor. We recommend using greys to signify these statuses’ inactive character.  

In general, we recommend you set up HaloPSA to do most of the status setting and remembering to move tasks in and out of statuses, especially Inert-type statuses. Specifically, when setting up these Inert Attention statuses in HaloPSA, be sure to build those Ticket Statuses, Ticket Type Settings, and your related Workflows so when a ticket enters or exits an Inert status, it automatically puts the ticket on or removes it from SLA hold. You can see examples of these settings in the screen captures below.

Some examples of this recommendation in action could be:

  • Setting a Waiting on Client ticket to Attention Required when a customer replies to an email
  • Setting a Waiting on Vendor ticket to Attention Required when a Supplier updates
  • Setting a ticket to Scheduled upon creating an Appointment (Ticket Type Settings: Status after user appointment booking (resource booking), or Status after Agent creates appointment)
  • Automatically setting Waiting on Client tickets to Closed after a certain number of hours with no reply according to SLA rules you set.
SLA Settings on the Ticket Status
Status Settings on the Ticket Type

Ticket Status Colors Framework in Action

With all of these ideas in mind, we suggest as you approach customizing each ticket status, you ask:  

What type of Attention do I expect of my team at this status: Normal, Elevated, or Inert?

When you have that answer, choose a color from the suggested family. Remember that color for other statuses you may have for other Ticket Types so it stays consistent regardless of what Area your Agent is operating from!

Here are some examples for what we specifically recommend to Rising Tide Customers. You will likely not need all of them, depending on your MSP’s needs:  

Normal Attention

  • Brand New/Assigned (Waiting on You): Green — Ticket is newly created and waiting for initial action. Green indicates readiness to start and clear action needed.
  • Claimed/Work in Progress: Blue — Ticket is actively being addressed towards resolution. Blue symbolizes confidence in ongoing work and progress.  
    • We’d be remiss if we didn’t specifically call out that at Rising Tide we recommend that your Agents should not be "Claiming" tickets until they're ready to work on them.  
  • Closed: Black — The ticket has been fully resolved and all necessary actions are completed. Black signifies completion and closure of the ticket.

Elevated Attention

  • Pending Approval: Yellow — Awaiting authorization or approval to proceed. Yellow is high-visibility and unique to call attention to follow up that may be necessary.  
  • Escalated: Orange — Moved to a higher level of support due to complexity or urgency. Orange highlights urgency and attention required.
  • Customer Updated/Vendor Updated/Approver Updated: Orange— Orange is used to indicate recent release from a paused status like Waiting on Customer or Waiting on Vendor and subsequent re-instating of the current SLA timer, if applicable.  
  • Attention Required: Orange — Elevated attention needed following removal from an SLA hold.  
  • Reopened: Red — Previously closed/resolved ticket is active again due to additional issues or dissatisfaction. Red indicates a critical reactivation that needs immediate reassessment.

Inert Attention

  • Waiting on Client: Grey — Progress on the ticket is paused because it requires input or action from the client. Grey suggests inactivity from the MSP’s side, waiting on external action.  
  • Waiting on Vendor/Waiting on Parts: Grey — Progress on the ticket is halted while waiting for action or information from an external vendor. Similar to waiting on client but specific to external vendors.
  • Scheduled: PurpleScheduled could also technically be included in the Normal category, hence the cool purple. Denotes a paused status where work is planned, but no active work is required.  
  • Resolved: Teal — Similar to Scheduled, Resolved straddles the Normal category as well. The issue within the ticket has been addressed, awaiting final closure or verification from the requester. Teal is a calm yet upbeat color indicating resolution but awaiting final closure.

As with most rules, there are going to be times when items cross between phases, or you may operate differently and not define a ticket status the same way we did here.

Maybe you have some color-blind technicians on staff and decide to use completely different colors completely or none at all. (If you do want to create a color-blind friendly palette, here’s a great resource.)  

Maybe you want to choose different values (light or dark) within a certain family than what Halo provides.

Good! Break our rules. They're just here to help you decide what you do or don't actually want.

Our main recommendation is that you use your best judgement on what is right for your team and just be consistent which sometimes means keeping it simple. And let us know what you ended up doing, you may help someone else. Happy customizing!

Share this post
El Copeland

Throughout my career, I've had the joy of leading many diverse and multifaceted teams.

Community building, especially within the technical community, is truly at the heart of what I do. I’m dedicated to fostering inclusive spaces where professionals can connect, share insights, and grow a culture of innovation and ongoing learning together, both in-person and when the team is 100% remote. I take pride in my ability to lead with both clarity and empathy, deftly handling the complexities of technology-driven projects while always keeping the human connection at the forefront of every decision.

For companies seeking consulting and project work, I bring a deep understanding of operational efficiency and project management. I am skilled at not only identifying areas for improvement but also implementing strategic solutions that enhance productivity and outcomes. My strong background in technology, education, and people management allows me to seamlessly integrate innovative tools and processes to address specific challenges, ensuring that projects not only meet but exceed expectations, and that teams are motivated, well-coordinated, and focused on delivering and maintaining organizational goals.

Outside the office, I enjoy blueberry muffins, Doctor Who, weight-training, gardening, and spending time with my cats.

See some more of our most recent posts...
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

August 19, 2025
8 min read

By the [run]Book: Episode 5

Episode 5 covers HaloPSA v2.192–v2.195 with updates on secure links, billable time, asset relationships, invoicing, and AI improvements for MSPs
Read post

In Episode 5 of By the [run]Book, the crew digs into four HaloPSA releases in one session—covering versions 2.192 through 2.195. From new ways to share secure links and manage billable time to asset relationship mapping and invoice automation, this episode is packed with practical updates. If you’re an MSP looking to tighten processes, improve reporting, or explore Halo’s evolving automation and AI features, this one is worth the watch.

Watch Now: By the [run]Book: Episode 5

Report Guide Field | v2.192 #783026 | 3:19

Halo added a Report Guide field in the report designer for better context.

  • Supports descriptions, instructions, or context at the top of reports
  • Rich text formatting available
  • Great for AI-driven reporting and analyst clarity

One-Time Secure Message Links | v2.192 #768829 | 4:55

Send secrets safely with one-time secure links.

  • Links expire after a set period or views
  • Currently requires portal login, but more flexibility is coming
  • Helps replace tools like PW Push for sensitive info

Billable Time Recorded Field | v2.192 #763812 | 9:12

A new Billable Time Recorded column is available in ticket profiles.

  • Distinguish billable vs. total time logged
  • More accurate budget tracking against contracts
  • Avoid confusion around no-charge vs. billable work

Runbook <<halo_url>> Variable | v2.192 #762123 | 9:59

A new runbook variable for halo_url has been added.

  • Makes it easier to reference environment URLs
  • Useful for runbooks with API calls and integrations

Hide Quotations by Status | v2.192 #757332 | 11:03

Control which quotes appear on tickets/opportunities.

  • Hide expired or superseded quotes automatically
  • Prevents clients seeing outdated pricing
  • Review your quoting statuses for correct configuration

Disable SLAs | v2.192 #753297 | 14:22

A safer way to deactivate SLAs.

  • Checkbox allows disabling without deleting
  • Avoids breaking ticket configurations
  • Recommended over deletion for historical consistency

Invoice Reference in Bills | v2.192 #718191 | 15:37

Specify invoice references when creating bills from POs.

  • Adds clarity when reconciling bills against purchase orders

Closure Settings – SLA vs Normal Hours | v2.192 #699717 | 16:13

Set whether closure timers run on SLA working hours or calendar hours.

  • Prevents old tickets reopening after long periods
  • Best paired with portal-only reopen for true recurrences

Risk Scoring | v2.192 #514694 | 18:56

New risk scoring tool for change management.

  • Calculates risk based on multiple impact factors
  • Standardizes approvals and CAB discussions

Recurring Invoice Prorata Default | v2.192 #443946 | 21:13

A default configuration for prorata handling in recurring invoices.

  • Options for “all” or “all except monthly”
  • Saves manual work in billing setups

Asset Relationships | v2.193 #7793410 | 25:00

Expanded asset management capabilities.

  • Define dependencies and relationships (installed on, upstream, etc.)
  • Better for ITSM-focused MSPs and topology maps

“The Big One” Patch Button | v2.194 | 32:34

A mysterious patch button—covered lightheartedly in the episode.

Asset Custom Buttons per Type | v2.195 #829270 | 33:48

Custom buttons can now be restricted to asset type level.

  • Provides more control and avoids clutter in the UI

Invoice PDFs in Unpaid Tickets | v2.195 #823241 | 33:59

Unpaid invoice tickets now include the invoice PDF automatically.

  • Allows direct sending of the invoice as attachment
  • Simplifies automation for collections

Pending Closure Email Recipient | v2.195 #819257 | 41:50

Choose recipients for automatic emails on pending-closure tickets.

  • Flexibility in who receives closure notifications

User Permissions – Create vs Edit | v2.195 #882480 | 42:14

New permission level for user management.

  • Agents can create users but not edit existing ones
  • Reduces risk of social engineering attacks

Sales Orders Manual Completion | v2.195 #834419 | 44:15

Sales order lines must now be marked complete manually (optional).

  • Avoids premature auto-closure when steps remain

Runbook SQL Test | v2.195 #839089 | 46:26

Runbook steps with SQL can now be tested directly.

  • Major speed boost for building and debugging runbooks

AI Improvements – Context Hints | v2.195 #812354 | 48:44

AI field suggestions now appear inline as context hints.

  • Reduces clutter vs. separate panels
  • Can be toggled at ticket type or action level

Microsoft Entra ID Access Control | v2.195 #714899 | 53:20

Added access controls to the Entra ID integration.

  • Controls who can configure/edit the integration

Custom Table SQL Import Improvements | v2.195 #739256 | 55:25

Enhanced SQL imports for custom tables.

  • Larger row imports supported
  • Pagination and filtering options added