Create Autotask Ticket
The Create Autotask Ticket action automatically creates a new Autotask ticket from an incoming email and associates it with the correct Account and Contact based on the sender's email address.
This is a workflow action. It accepts an email sender address and uses MSPintegrations business logic to look up the correct account and contact before creating the ticket. If you already know all the required IDs, use API: Create an Object with the Ticket entity instead. 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 convert incoming human-generated emails into Autotask tickets automatically
- You need tickets associated with the correct Account and Contact based on the sender's email address
- You want the system to handle the logic of finding or creating Contacts and Accounts
Don't use this action for:
- Automated alert emails: System-generated emails from monitoring tools, backup software, or other automated systems are better handled with different actions that don't rely on sender-based Contact/Account matching.
- Known Account/Contact: If you already know the exact Account and Contact IDs, use the lower-level API: Create an Object action with the Ticket entity for more direct control.
Getting Started
For a walkthrough of setting up your first mailbox with ticket creation, see Create Your First Mailbox.
How It Works
When this action runs, it performs the following steps:
- Search for a matching Contact: Find an existing Autotask Contact whose email address matches the sender
- Search for a matching Account: If no Contact is found, search for an Account whose web domain matches the sender's domain
- Handle unmatched senders: If no match is found, either assign to a default Account or create a new Account
- Optionally create a Contact: If enabled, create a new Contact for the sender
- Create the ticket: Create the Autotask ticket with the determined Account and Contact
Step 1: Search for a Matching Contact
The action searches for an existing, active Contact with an email address matching the sender.
The following Contact fields are searched:
Email Address(primary)Email Address 2Email Address 3Email2AT AddressesUDFEmail2Ticket AddressesUDF (legacy)
If an Account Filter is configured, only Contacts belonging to matching Accounts are considered.
When a matching Contact is found, the ticket is created for that Contact and their associated Account.
Step 2: Search for a Matching Account
If no Contact is found, the action searches for an Account whose web domain matches the sender's email domain.
The search checks:
- Account Web field: Matches the sender's domain with partial matching. For example, if the sender's domain is
example.com, these Account Web values would match:http://www.example.com/,www.example.com,example.com - Email2AT Domains UDF: Matches domains listed in this field. Domains must include the
@sign and be separated by commas and/or spaces:@domain1.com, @domain2.com, @domain3.com
If an Account Filter is configured, only matching Accounts are considered.
Step 3: Handle Unmatched Senders
If no Contact or Account is found, you have two options:
| Option | Behavior |
|---|---|
| Assign Ticket to Default Account | Uses the Account you specify in Default Account if no match. If that Account is inactive or deleted, falls back to your Autotask "zero" Account. |
| Create a New Account | Creates a new Account using the fields you configure in the Account template. |
A common practice is to create an Account called "Unknown Account" as a catch-all for tickets from unrecognized senders. This makes it easy to review and reassign them later.
Step 4: Optionally Create a Contact
If Create new Contact if not found is enabled, a new Contact is created for the sender on whichever Account the ticket is assigned to:
- The Account matched by domain (Step 2)
- The newly created Account (if Step 3 used "Create a New Account")
- The default Account (if Step 3 used "Assign Ticket to Default Account")
- The Autotask "zero" Account (fallback)
You can also control whether Contacts are created on the default Account using the Create Contact on Default Account option.
Step 5: Create the Ticket
Finally, the action creates the Autotask ticket using your configured ticket properties (Title, Description, Status, Priority, Queue, etc.) and associates it with the determined Account and Contact.
Configuration
Contact & Account Association
| Field | Description |
|---|---|
| Sender Address | The email address used to search for matching Contacts and Accounts. Default: {{email.from.address}}. Change this only if parsing the sender from somewhere other than the email's from address (e.g., a contact form submission). |
| Action if no existing Account exists... | Choose whether to assign unmatched tickets to a default Account or create a new Account. |
| Default Account if no match | The fallback Account for unmatched senders. Only shown when "Assign Ticket to Default Account" is selected. |
| New Account Fields | Template for creating new Accounts. Only shown when "Create a New Account" is selected. |
Account Filter
By default, the action searches all Contacts and Accounts. Use the Account Filter to restrict the search to specific Accounts.
Enable Filter accounts to configure filter criteria.
Example use cases:
- Filter by Account Type: If you have duplicate Accounts (e.g., one as "Lead" and one as "Customer"), filter by type to ensure tickets go to the correct one.
- Filter by Account ID: For a priority inbox serving specific customers, filter to only those Account IDs.
The filter returns a maximum of 100 Accounts (oldest first). Ensure your filter criteria are specific enough to stay within this limit.
Contact Matching
| Field | Description |
|---|---|
| Sender Address | The email address to match against Autotask Contacts. Default: {{email.from.address}} |
New Contact Creation
| Field | Description |
|---|---|
| Create new Contact if not found | Enable to automatically create a Contact when no match is found. |
| Create Contact on Default Account | When enabled, allows Contact creation even when the ticket is assigned to the default Account. Disable to prevent Contact creation on your catch-all Account. |
| Contact Name | The name for new Contacts. Default: {{email.from.display}}. The system parses this into First Name and Last Name. |
Ticket Properties
Configure the fields for the new ticket. Click Additional Fields to add more fields, including User-Defined Fields.
Common fields:
| Field | Description | Default |
|---|---|---|
| Title | Ticket subject line | {{email.subject}} (or "New email from [address]" if empty) |
| Description | Ticket body content | Email headers and body |
| Status | Initial ticket status | New |
| Priority | Ticket priority level | |
| Queue | Service queue assignment | |
| Due Date | When the ticket is due |
Field length limits: Title is truncated to 255 characters. Description is truncated to 8,000 characters.
Attachments
| Field | Description |
|---|---|
| Attach email attachments to ticket | Creates an Autotask attachment for each file attached to the email. |
| Prevent duplicate attachments | Ensures each file is attached only once per ticket. |
| Attach original email as .eml file | Attaches the complete original email as an .eml file. Recipients can download and open this in any email client to see the message exactly as sent. |
| Attach HTML email as image | Converts the HTML email content to an image attachment. |
Additional Contacts
| Field | Description |
|---|---|
| Add email recipients as Additional Contacts | Searches for existing Autotask Contacts matching other recipients (To, CC) and adds them to the ticket. Only matches existing Contacts; does not create new ones. |
Advanced
| Field | Description |
|---|---|
| Suppress Autotask API exceptions | If enabled, the workflow continues even if the Autotask API returns an error. Use sparingly. |
| Override Autotask Connection | Use a specific Autotask connection instead of the default. Only shown if you have multiple Autotask connections configured. |
Action When Complete
Controls what happens after the ticket is created successfully:
| Option | Behavior |
|---|---|
| Continue processing remaining actions | Continue with remaining actions on this rule and other matching rules. |
| Stop processing the actions on this rule | Stop this rule but allow other matching rules to process. |
| Stop processing the actions on this rule and all other rules | Stop all processing for this message. |
Returned Variables
When you configure Store the results in Variable, these variables become available for use in subsequent actions:
Status Flags
| Variable | Type | Description |
|---|---|---|
LocatedExistedAutotaskContact | bool | true if an existing Contact matched the sender's email |
CreatedNewAutotaskContact | bool | true if a new Contact was created |
CreatedNewAutotaskContactCausedError | bool | true if Contact creation failed |
LocatedExistingAutotaskAccount | bool | true if an existing Account was matched (via Contact or domain) |
AssignedTicketToDefaultAccount | bool | true if the ticket was assigned to the default Account |
CreatedNewAutotaskTicket | bool | true if the ticket was created successfully |
CreatedNewAutotaskTicketCausedError | bool | true if ticket creation failed |
AttachedEmlToTicket | bool | true if the .eml file was attached |
AttachedEmlToTicketCausedError | bool | true if .eml attachment failed |
Created Objects
| Variable | Type | Description |
|---|---|---|
Ticket | object | The created ticket, including id and TicketNumber properties |
TicketAccount | object | The Account associated with the ticket |
TicketContact | object | The Contact associated with the ticket (or null if none) |
TicketAdditionalContactsCreated | array | Additional Contacts added to the ticket |
Example usage: {{custom.myVariable.Ticket.TicketNumber}}
FAQs
What happens if multiple Contacts match the sender's email?
The action selects the Contact using this priority:
- The oldest Contact that is not on the "zero" Account or default Account
- If no match, the oldest Contact on the "zero" Account
- If still no match, the oldest Contact on the default Account
What if my Account Filter returns more than 100 results?
The filter uses the 100 oldest Accounts. To avoid unexpected behavior, ensure your filter criteria are specific enough to return fewer than 100 results. Check the logs to see which Accounts were included.
How do I route all tickets to a specific Account?
- Enable Account Filter and filter by the Account's
Id - Set Action if no existing Account exists... to "Assign Ticket to Default Account"
- Select the same Account in Default Account if no match
What is the Autotask "zero" Account?
The "zero" Account is a special built-in Account that represents your own organization (the MSP). It cannot be billed and serves as a system fallback. Most organizations create a dedicated "Unknown Account" instead of relying on the zero Account for unmatched tickets.
What are the Email2AT and Email2Ticket UDFs?
These are User-Defined Fields in Autotask that provide additional matching capabilities beyond the standard email fields.
Email2AT UDFs
These UDFs are created automatically in your Autotask instance the first time the system performs a search that uses them. Separate multiple values with commas and/or spaces.
Email2AT Addresses(on Contacts): Additional email addresses for matchingEmail2AT Domains(on Accounts): Additional domains for matching, formatted as@domain1.com, @domain2.com
Email2Ticket UDFs (legacy)
These UDFs are not created by MSPintegrations. They are checked for compatibility with customers migrating from Email2Ticket by RapidFire Tools. If you previously used Email2Ticket, MSPintegrations will check these UDFs for data, making your transition easier without needing to migrate data to the new Email2AT fields.
Email2Ticket Addresses(on Contacts): Checked for existing data during Contact matching