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. |
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 |
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.