Skip to main content

Update Halo Ticket from Email

The Update Halo Ticket from Email action locates an existing Halo ticket from an incoming email and adds a note to it. It can also optionally change the ticket's status or priority.

Workflow Action

This is a workflow action. It scans the email for a Halo ticket number and uses MSPintegrations business logic to locate the matching ticket and associated user before adding a note. If you already know the ticket ID, use Update Halo Ticket for direct control. Learn more about the difference between workflow actions and single API call actions.

When to Use This Action

Use this action when:

  • You want to add notes to existing tickets based on incoming human-generated emails
  • You need to detect ticket numbers from email subject lines or body content
  • You want automatic user matching to associate the note with the email sender

Don't use this action for:

  • Creating new tickets: Use Create Halo Ticket instead.
  • Automated alert emails: System-generated emails from monitoring tools or automated systems are better handled with different actions.
  • Known ticket IDs: If you already know the ticket ID, use Update Halo Ticket instead.

Common Pattern: Pairing with Create Halo Ticket

This action is typically used together with Create Halo Ticket in a two-step pattern:

  1. Update Halo Ticket from Email runs first and attempts to find an existing ticket
  2. If no ticket is found, Create Halo Ticket runs next to create a new one

This pattern handles both replies to existing tickets and new support requests with a single rule:

Rule: "Process Support Email"
1. Update Halo Ticket from Email
- If ticket found: adds note, workflow stops (or continues based on your setting)
- If no ticket found: sets flag and continues to next action
2. Create Halo Ticket
- Creates new ticket only if step 1 didn't find one

How It Works

This action operates in two phases: first it finds the ticket, then it updates it.

Phase 1: Find the Ticket

  1. Search for a ticket number: Scan configured fields (subject, body, etc.) for a Halo ticket number using the configured pattern
  2. Query Halo: Verify the ticket exists in Halo
  3. Look up sender: Search for a Halo user matching the email sender's address

If no ticket is found, the action sets UnableToLocateExistingTicket to true and continues to the next action (typically Create Halo Ticket).

Phase 2: Update the Ticket

Once a ticket is found:

  1. Add a note: Update the ticket details with the configured note content
  2. Associate user (if found): Link the note to the matched Halo user
  3. Update status (optional): Change the ticket status if configured
  4. Update priority (optional): Change the ticket priority if configured

Ticket Number Detection

The action searches the fields you specify for text matching the ticket number pattern. By default, it searches the email subject line using the pattern #(\d+)|(\d+), which matches:

  • #12345: Ticket number with hash prefix
  • 12345: Plain ticket number

You can configure it to search:

  • Email subject
  • Email body
  • Custom parsed values from previous actions
  • Any other available variable

You can also customize the regex pattern if your Halo instance uses a different ticket number format.

User Matching

The action automatically searches for a Halo user matching the sender's email address. If found:

  • The user is associated with the note
  • The user information is available in the returned variables

Configuration

Connection

FieldDescription
Halo ConnectionSelect the Halo connection to use for this action.

Ticket Matching

FieldDescriptionDefault
Fields to Search for Ticket NumberSelect which fields to search for the ticket number. You can add multiple fields including body, custom variables, or parsed values.{{custom.subject}}
Ticket Number PatternRegex pattern to extract the ticket number. The first capturing group is used.`#(\d+)

Note Content

FieldDescriptionDefault
Note TextThe note content to add to the ticket. Supports text expressions.Email headers and body content

Ticket Updates (Optional)

FieldDescription
Status After UpdateOptionally change the ticket status after adding the note. Leave empty to keep the current status.
Priority After UpdateOptionally change the ticket priority after adding the note. Leave empty to keep the current priority.

Workflow Control

FieldDescriptionDefault
Action If No Ticket MatchedWhat happens if no matching ticket is found. Set to Continue to allow subsequent actions (like Create Halo Ticket) to run.Continue
Action After UpdateWhat happens after successfully updating the ticket.Stop All
Error HandlingWhat happens if the Halo API returns an error.Exception

Returned Variables

When you configure Store the results in Variable, these variables become available for use in subsequent actions:

Status Flags

VariableTypeDescription
IdentifiedTicketNumberbooltrue if text matching the ticket number pattern was found
LocatedExistingTicketbooltrue if the ticket was found in Halo
UnableToLocateExistingTicketbooltrue if no matching ticket was found (signals Create Halo Ticket should run)
LocatedUserbooltrue if a Halo user matching the sender's email was found
UpdatedTicketbooltrue if the ticket was updated successfully
UpdatedTicketCausedErrorbooltrue if the update failed

Retrieved Objects

VariableTypeDescription
TicketobjectThe matched Halo ticket (see properties below)
UserobjectThe matched Halo user from the sender's email (see properties below)

Ticket Properties

PropertyTypeDescription
idnumberThe ticket ID
summarystringThe ticket summary
detailsstringThe ticket details
client_idnumberThe client ID
client_namestringThe client name
user_idnumberThe user ID
user_namestringThe user name
status_idnumberThe status ID
status_namestringThe status name
priority_idnumberThe priority ID
priority_namestringThe priority name

User Properties

PropertyTypeDescription
idnumberThe user ID
namestringThe user name
emailaddressstringThe user's email address
client_idnumberThe client ID
client_namestringThe client name

Example usage: {{custom.myVariable.Ticket.id}}

FAQs

What happens if no ticket number is found in the email?

The action sets UnableToLocateExistingTicket to true and continues to the next action (when Action If No Ticket Matched is set to Continue). This allows Create Halo Ticket to run and create a new ticket.

What ticket number formats are recognized?

By default, the action recognizes numbers with or without a hash prefix (e.g., #12345 or 12345). You can customize the pattern in the Ticket Number Pattern field if your organization uses a different format.

Can I update tickets without adding a note?

No, this action always adds note content to the ticket details. If you only need to update ticket fields without modifying the details, use Update Halo Ticket instead.

What if the sender's email doesn't match any Halo user?

The action still updates the ticket, but without associating a specific user. The LocatedUser flag is set to false, and the User object is null.