Create Halo Ticket
The Create Halo Ticket action creates a new service ticket in Halo PSA. Configure the ticket properties, assignment, and classification to match your workflow requirements.
This is a single API call action. You must supply the client, user, and all other parameters directly. 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 create a Halo ticket with known client and user IDs from a previous query action
- You want precise control over all ticket fields at creation time
- You are building a multi-step workflow where lookup actions run before ticket creation
Don't use this action for:
- Updating existing tickets: Use Update Halo Ticket to modify an existing ticket by ID, or Update Halo Ticket from Email to detect and update a ticket from an email.
Configuration
Connection
| Field | Description |
|---|---|
| Halo Connection | Select the Halo connection to use for this action. |
Basic Information
| Field | Description |
|---|---|
| Summary | The ticket summary/title. Supports text expressions with {{variable}} syntax. |
| Details | The ticket description/details. Supports text expressions for dynamic content. |
Client & Contact
| Field | Description |
|---|---|
| Client | Select the Halo Client/Company for the ticket. Lock to choose from a dropdown, or unlock to enter a dynamic value using text expressions. |
| User | Select the Halo User/Contact for the ticket. |
| Site | Select the Halo Site associated with the ticket. |
Classification
| Field | Description |
|---|---|
| Ticket Type | The type of ticket (e.g., Incident, Service Request). |
| Status | The ticket status. If not provided, uses the default status for the ticket type. |
| Priority | The ticket priority level. |
| Category | The ticket category for classification and reporting. |
| SLA | The Service Level Agreement to apply to this ticket. |
Assignment
| Field | Description |
|---|---|
| Agent | The agent/technician to assign the ticket to. |
| Team | The team to assign the ticket to. |
Error Handling
| Field | Description |
|---|---|
| Error Handling | Action to take if ticket 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 | 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 an array containing the created ticket. Access properties using index syntax.
Example usage: {{custom.myVariable[0].id}}
| Variable | Type | Description |
|---|---|---|
[0].id | number | The created ticket ID |
[0].summary | string | The ticket summary |
[0].details | string | The ticket details |
[0].client_id | number | The client ID |
[0].client_name | string | The client name |
[0].user_id | number | The user/contact ID |
[0].user_name | string | The user/contact name |
[0].site_id | number | The site ID |
[0].site_name | string | The site name |
[0].tickettype_id | number | The ticket type ID |
[0].status_id | number | The status ID |
[0].status_name | string | The status name |
[0].priority_id | number | The priority ID |
[0].priority_name | string | The priority name |
[0].category_1 | number | The category ID |
[0].sla_id | number | The SLA ID |
[0].agent_id | number | The assigned agent ID |
[0].agent_name | string | The assigned agent name |
[0].team_id | number | The assigned team ID |
[0].team_name | string | The assigned team name |
[0].datecreated | string | The creation timestamp |
[0].datelastupdated | string | The last update timestamp |
Example Use Cases
Create Ticket After User Lookup
After finding a user with Query Halo Users:
| Setting | Value |
|---|---|
| Client | {{custom.user.users.[0].client_id}} (unlocked) |
| User | {{custom.user.users.[0].id}} (unlocked) |
| Summary | {{email.subject}} |
| Details | {{email.body}} |
Create Ticket After Client Lookup
After finding a client with Query Halo Clients:
| Setting | Value |
|---|---|
| Client | {{custom.client.clients.[0].id}} (unlocked) |
| Summary | {{email.subject}} |
| Details | {{email.body}} |
| Ticket Type | Incident |
FAQs
What fields are required?
At minimum, you must provide a Halo Connection and a Summary. Client, User, and other classification fields are optional but recommended for accurate ticket routing.
How do I use dynamic values for Client or User?
Unlock the field selector and enter a text expression referencing a previously queried ID, such as {{custom.client.clients.[0].id}}.
Why does the result use array index syntax?
The Halo API returns ticket data as an array. Even when creating a single ticket, the result is wrapped in an array, so you access the ticket at index [0].
Related Actions
- Update Halo Ticket: Modify an existing ticket by ID
- Update Halo Ticket from Email: Detect and update a ticket from an email
- Query Halo Clients: Find clients to use as input
- Query Halo Users: Find users to use as input