Create Halo User
The Create Halo User action creates a new user/contact in Halo PSA. Supply the user's name, client, and site to create the record. Email Address is optional.
This is a building-block API call action. You must supply the client and site directly. After creating the user, MSPintegrations retrieves its complete saved details and Custom Field values. Learn more about workflow actions and API call actions.
When to Use This Action
Use this action when:
- You need to create a Halo user/contact for a sender who is not yet in Halo
- You are building an automation that creates missing users before creating a ticket
- You want precise control over the user's name, client, and site at creation time
Don't use this action for:
- Looking up an existing user by email: Use Find Halo User and Client by Email first to avoid creating duplicates.
- Searching users by arbitrary criteria: Use Query Halo Users to find existing users.
The Create Halo Ticket from Email workflow action uses this action as a building block when When No User Is Found is set to Create a new user. Use Create Halo Ticket from Email when you want user creation handled automatically as part of an email-to-ticket flow.
Configuration
Connection
| Field | Description |
|---|---|
| Halo Connection | Select the Halo connection to use for this action. |
User Information
| Field | Description | Default |
|---|---|---|
| Full Name | The user's full display name. Supports text expressions. | {{email.from.display}} |
| First Name | The user's first name. Supports text expressions. | |
| Surname | The user's surname/last name. Supports text expressions. | |
| Email Address | The user's optional email address. Supports text expressions. | {{email.from.address}} |
Client & Site
| Field | Description |
|---|---|
| Client | Select the Halo client/company the user belongs to. Lock to choose from a dropdown, or unlock to enter a dynamic value using text expressions. |
| Site | Select the Halo site the user belongs to. The site list is filtered by the selected client. |
Custom Fields
| Field | Description |
|---|---|
| Custom Fields | Select user custom fields and set their values. Text values support text expressions, including text nested inside array values. The action checks current Halo metadata, requires fields Halo explicitly marks as mandatory, and rejects known read-only or unsupported fields. Unknown positive field IDs entered dynamically are preserved. Boolean false, zero, arrays, empty strings, and null values retain their exact value. |
Error Handling
| Field | Description |
|---|---|
| Error Handling | Action to take if user creation fails. |
| Option | Behavior |
|---|---|
| Exception | Halt processing and report the error |
| Bounce | Return the email/item to the sender |
| Continue | Continue to the next action |
| Stop | In Email Processing, stop this rule but allow other rules to process |
| Stop All | Stop all processing for this message |
Returned Variables
When you configure Store the results in Variable, the result is the complete saved user object. MSPintegrations combines the full user detail response with saved Custom Field values for that exact user. Access properties using dot syntax. If creation or refresh fails, the stored result is null; an HTTP error body is never stored as the user.
Example usage: {{custom.myVariable.id}}
| Variable | Type | Description |
|---|---|---|
.id | number | The created user ID |
.name | string | The user's full name |
.emailaddress | string | The user's email address |
.client_id | number | The client ID |
.site_id | number | The site ID |
.customfields | array | Custom fields returned on the created user |
.customfields[].id | number | The Halo custom field ID |
.customfields[].value | mixed | The custom field value |
Example Use Cases
Create User After Sender Lookup
After determining a sender with Find Halo User and Client by Email and finding no user match:
| Setting | Value |
|---|---|
| Full Name | {{email.from.display}} |
| Email Address | {{email.from.address}} |
| Client | {{custom.resolved.client.id}} (unlocked) |
FAQs
What fields are required?
You must provide a Halo Connection, Full Name or both First Name and Surname, Client, and Site. Email Address is optional.
How do I use dynamic values for Client or Site?
Unlock the field selector and enter a text expression referencing an ID from a previous action, such as {{custom.resolved.client.id}}.
Can the site list change when I pick a different client?
Yes. The Site dropdown is filtered to show only sites that belong to the selected Client.
Related Actions
- Find Halo User and Client by Email: Determine a user and client before creating a new user
- Create Halo Ticket from Email: Automated email-to-ticket flow that uses this action when no user is matched
- Create Halo Client: Create a new client before creating its users
- Query Halo Users: Search existing users before creating a duplicate