Query Halo Users
The Query Halo Users action searches and filters users (contacts) in Halo PSA. Use this to find users matching specific criteria for automation, contact lookup, or workflow decisions.
This is a single API call action. You define the search and filter conditions and the action makes one API call to retrieve the results. Learn more about the difference between workflow actions and single API call actions.
When to Use This Action
Use this action when:
- You need to look up a user by email address or name
- You want to retrieve a list of users for a specific client or site
- You need to verify whether a user exists before creating one
- You are building custom workflows that need user information
Configuration
Connection
| Field | Description |
|---|---|
| Halo Connection | Select the Halo connection to use for this action. |
Search & Pagination
| Field | Description | Default |
|---|---|---|
| Search | Search term to filter users by name or email address. Supports text expressions. | None |
| Page Size | Number of results per page (1-1000). | 25 |
| Page Number | Page number to retrieve. | 1 |
Filters
| Field | Description |
|---|---|
| Client | Filter users by client/company. Requires Halo Connection to be selected first. |
| Site | Filter users by site. Requires both Halo Connection and Client to be selected first. |
Status Filters
| Field | Description | Default |
|---|---|---|
| Include Active | Include active users in results. | Enabled |
| Include Inactive | Include inactive users in results. | Disabled |
Ordering
| Field | Description |
|---|---|
| Order By | Field name to order results by (e.g., name, emailaddress). Supports text expressions. |
| Order Descending | Sort results in descending order. |
Error Handling
| Field | Description | Default |
|---|---|---|
| Error Handling | Action to take if the query fails. | Exception |
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 users |
users | array | Array of user objects |
User Properties
Each user in the users array contains:
| Property | Type | Description |
|---|---|---|
id | number | The user ID |
name | string | The user's display name |
emailaddress | string | The user's email address |
client_id | number | The client ID |
client_name | string | The client name |
site_id | number | The site ID |
site_name | string | The site name |
inactive | bool | Whether the user is inactive |
phonenumber | string | The user's phone number |
mobilenumber | string | The user's mobile number |
jobtitle | string | The user's job title |
notes | string | Notes about the user |
Example usage: {{custom.myVariable.users.[0].emailaddress}}
Example Use Cases
Find a User by Email Address
Set the Search field to the sender's email address:
| Setting | Value |
|---|---|
| Search | {{email.from.address}} |
The search matches partial values, so searching for [email protected] returns users with that email address.
List All Users for a Client
| Setting | Value |
|---|---|
| Client | (Select from dropdown) |
| Search | (Leave empty) |
| Page Size | 100 |
Check If a User Exists
Query for the user and check if record_count is greater than 0 in a subsequent conditional action.
Find Inactive Users
| Setting | Value |
|---|---|
| Include Active | Disabled |
| Include Inactive | Enabled |
| Client | (Optional: filter by client) |
FAQs
How do I use the user ID in a subsequent action?
Store this action's result in a variable (e.g., foundUser), then reference {{custom.foundUser.users.[0].id}} in the next action.
How do I iterate over all users?
Use the Iterate action over {{custom.myVariable.users}} to process each user individually.
Related Actions
- Query Halo Clients: Find the client for a user
- Query Halo Tickets: Find tickets associated with a user
- Create Halo Ticket: Create a ticket for the found user