The Query Halo Tickets action searches and filters tickets in Halo PSA. Use this to find tickets matching specific criteria for reporting, automation, or follow-up actions.
When to Use This Action
Use this action when:
- You need to find tickets matching specific criteria (client, status, priority, etc.)
- You want to check if a ticket exists before taking other actions
- You need ticket data for decision-making or follow-up steps in your workflow
- You are building reporting or batch-processing automations
For updating existing tickets from emails, use the Update Halo Ticket from Email workflow action instead, which handles ticket detection and note creation together.
Configuration
Connection
| Field | Description |
|---|
| Halo Connection | Select the Halo connection to use for this action. |
| Field | Description | Default |
|---|
| Search | Partial text search: returns tickets where summary or details contain this term. Supports text expressions. | None |
| Search Actions | When enabled, includes action/note text in the search. | Disabled |
| Page Size | Number of results per page (1-1000). | 25 |
| Page Number | Page number to retrieve. | 1 |
Entity Filters
| Field | Description |
|---|
| Client | Filter tickets by client/company. |
| Status | Filter tickets by status. |
| Ticket Type | Filter tickets by ticket type. |
| Priority | Filter tickets by priority. |
| Agent | Filter tickets by assigned agent. |
| Team | Filter tickets by assigned team. |
| Site | Filter tickets by site. |
| User | Filter tickets by user/contact. |
| SLA | Filter tickets by SLA. |
| Category | Filter tickets by category. |
Status Filters
| Field | Description |
|---|
| Open Only | Return only open tickets. |
| Closed Only | Return only closed tickets. |
| My Tickets Only | Return only tickets assigned to the API user. |
Date Filters
| Field | Description |
|---|
| Date Field | Select which date field to filter by: Date Opened, Date Closed, Last Updated, Date Created, Deadline, Fix By Date, or Respond By Date. |
| Start Date | Return tickets where the selected date field is after this value. Use ISO format (YYYY-MM-DD). |
| End Date | Return tickets where the selected date field is before this value. Use ISO format (YYYY-MM-DD). |
Advanced Filters
| Field | Description |
|---|
| Asset ID | Filter by asset ID. |
| Contract ID | Filter by contract ID. |
| Parent Ticket ID | Filter by parent ticket ID (for child tickets). |
| Ticket IDs | Comma-separated list of specific ticket IDs to return. |
| Domain | Filter by ticket area type: All, Requests/Tickets, Opportunities, or Projects. |
Ordering
| Field | Description |
|---|
| Order By | Field name to order results by (e.g., dateoccurred, id, priority_id). |
| Order Descending | Sort results in descending order. |
Response Options
| Field | Description |
|---|
| Include Details | Include extra objects in the response. |
| Include Last Action | Include the last action/note in the response. |
| Include Custom Fields | Select custom fields to include in each returned ticket. The action sends their IDs as a comma-separated value. |
Custom Field Filters
| Field | Description |
|---|
| Custom Field Query | Build a schema-aware filter from Halo ticket custom fields. Available fields and operators depend on Halo metadata and the selected ticket type. Unlocked text values support text expressions. |
The action sends a flat AND query as Halo advanced_search. It sends supported OR groups as advanced_search_group. Halo does not support every possible nested group shape, so the action rejects structures that Halo cannot represent instead of flattening them.
Error Handling
| Field | Description |
|---|
| Error Handling | Action to take if the query fails (Exception, Continue, Stop, Stop All). |
Returned Variables
When you configure Store the results in Variable, these variables become available for use in subsequent actions:
| Variable | Type | Description |
|---|
record_count | number | Total number of matching tickets |
tickets | array | Array of ticket objects |
When you select Include Custom Fields, each returned ticket can include a customfields array. Each item contains id (the Halo custom field ID) and value (the returned value).
Ticket Properties
Each ticket in the tickets array contains:
| Property | Type | Description |
|---|
id | number | The ticket ID |
summary | string | The ticket summary |
details | string | The ticket details |
client_id | number | The client ID |
client_name | string | The client name |
status_id | number | The status ID |
status_name | string | The status name |
priority_id | number | The priority ID |
priority_name | string | The priority name |
dateoccurred | string | When the ticket was opened |
datecreated | string | When the ticket was created |
datelastupdated | string | When the ticket was last updated |
Example usage: {{custom.myVariable.tickets.[0].id}}
Example Use Cases
Find Open Tickets for a Client
| Setting | Value |
|---|
| Client | (Select or use dynamic value) |
| Open Only | Enabled |
Find Recent High-Priority Tickets
| Setting | Value |
|---|
| Priority | High |
| Date Field | Date Created |
| Start Date | {{date add="-7 days"}} |
Check If a Ticket Exists
Query with a text search matching the email subject, then check if record_count is greater than 0 in a conditional action.
Process Multiple Tickets
Use with the Iterate action to loop over the tickets array:
{{custom.myVariable.tickets}}
FAQs
How do I access ticket properties in subsequent actions?
Reference items using array notation: {{custom.myVariable.tickets.[0].id}} for the first result, or use the Iterate action to loop through all results.
What is the maximum number of results?
Up to 1000 results per page. Use the Page Number field to paginate through larger datasets.