Attach Files to Halo Ticket
The Attach Files to Halo Ticket action attaches email attachments to an existing Halo ticket. Supply the ticket ID and the action uploads the incoming email's attachments to that ticket.
This is a building block workflow action. It iterates over the incoming email's attachments and uploads each one to the Halo API, optionally checking for duplicates first. Use this as a step in a larger workflow after creating or updating a ticket. Learn more about the difference between workflow actions and single API call actions.
This action is only available for Hosted Mailbox and Remote Mailbox containers. It requires an incoming email with attachments to process.
When to Use This Action
Use this action when:
- You need to copy an incoming email's attachments onto a Halo ticket
- You want to preserve the original email as an
.emlfile on the ticket for future reference - You are building a workflow that creates or updates a ticket and then persists the related attachments
Don't use this action for:
- Non-email sources: This action only works for Hosted Mailbox and Remote Mailbox containers. For other data sources, use the standard Halo ticket update actions.
- Adding text or HTML notes: Use Create Halo Ticket Note to add a note.
Configuration
Connection
| Field | Description |
|---|---|
| Halo Connection | Select the Halo connection to use for this action. |
Ticket
| Field | Description |
|---|---|
| Ticket ID | The ID of the Halo ticket to attach files to. Supports text expressions with {{variable}} syntax, such as {{custom.created.id}}. |
Attachment Options
| Field | Description | Default |
|---|---|---|
| Attach Email Attachments | When enabled, uploads all attachments from the incoming email to the ticket. | Enabled |
| Attach Original Email .eml | When enabled, uploads the original email as a single .eml file to the ticket. | Disabled |
| Prevent Duplicate Attachments | When enabled, skips any file whose name already exists on the ticket. | Enabled |
Error Handling
| Field | Description |
|---|---|
| Error Handling | Action to take if the upload 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 a summary of the upload. Access properties using dot syntax.
Example usage: {{custom.myVariable.attached_count}}
| Variable | Type | Description |
|---|---|---|
.attached_count | number | The number of files uploaded to the ticket |
.filenames | array of strings | The names of the files uploaded to the ticket |
Example Use Cases
Attach Email Attachments After Creating a Ticket
After creating a ticket with Create Halo Ticket:
| Setting | Value |
|---|---|
| Ticket ID | {{custom.created.id}} |
| Attach Email Attachments | Enabled |
| Attach Original Email .eml | Enabled |
| Prevent Duplicate Attachments | Enabled |
FAQs
What fields are required?
You must provide a Halo Connection and a Ticket ID. At least one of Attach Email Attachments or Attach Original Email .eml must be enabled for the action to upload anything.
What happens if the email has no attachments?
If Attach Email Attachments is enabled and the email has no attachments, the action sets .attached_count to 0 and .filenames to an empty array. If Attach Original Email .eml is also enabled, the original .eml file is still uploaded.
How does duplicate prevention work?
When Prevent Duplicate Attachments is enabled, the action queries the ticket's existing attachments and skips any upload whose filename matches a file already on the ticket. The skipped files do not appear in .filenames.
Can I use this action with non-email data sources?
No. This action is only available for Hosted Mailbox and Remote Mailbox containers because it reads attachments from the incoming email.
Reply-All Storm Catcher
Because this action always runs in an email container, it always has an inbound email to work with. When the provided ticket ID is valid and the email has a Message-ID, MSPintegrations records the Message-ID against the Halo ticket ID on the selected Halo connection after the attachments finish uploading.
A later reply in the same email thread that lacks the Halo ticket tag can then be matched to this ticket by Update Halo Ticket from Email through its In-Reply-To and References headers.
The association is recorded even when no files are uploaded (for example, when all attachments are skipped by duplicate prevention), because the email itself still references the ticket. The association is scoped to the Halo connection you selected on this action.
Related Actions
- Create Halo Ticket: Create a ticket to attach files to
- Create Halo Ticket Note: Add a note to the same ticket
- Create Halo Ticket from Email: Create a ticket and attach files in one complete workflow action