Update ConnectWise Ticket
The Update ConnectWise Ticket action locates an existing ConnectWise ticket from an incoming email and adds a note to it. It can also optionally change the ticket's status.
This is a workflow action. It scans the email for a ConnectWise ticket number and uses MSPintegrations business logic to locate the matching ticket before adding a note. If you already know the ticket ID, use Create ConnectWise Ticket Note 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 to automatically update ticket status when customers reply
Don't use this action for:
- Creating new tickets: Use Create ConnectWise Ticket instead.
- Automated alert emails: System-generated emails from monitoring tools or automated systems often do not carry a ticket number. Use Query ConnectWise Tickets to find the ticket, then Create ConnectWise Ticket Note to add the note.
- Known ticket IDs: If you already know the ticket ID, use Create ConnectWise Ticket Note to add a note to it.
- Scheduled tasks: This action requires an email to search for ticket numbers and is only available for Hosted Mailboxes and Remote Mailboxes.
Common Pattern: Pairing with Create ConnectWise Ticket
This action is typically used together with Create ConnectWise Ticket in a two-step pattern:
- Update ConnectWise Ticket runs first and attempts to find an existing ticket
- If no ticket is found, Create ConnectWise 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 ConnectWise Ticket
- If ticket found: adds note, automation stops (or continues based on your setting)
- If no ticket found: sets flag and continues to next action
2. Create ConnectWise Ticket
- Creates new ticket only if step 1 didn't find one
How It Works
Think of this action as filing a customer's reply on the ticket it belongs to: it finds the ticket number in the email, adds the reply to that ticket as a note, and can move the ticket to a new status. If it cannot find a ticket, it hands off to your next action so you can create one.
The action finds the ticket from the email
The action looks for ticket numbers such as #12345 in the fields you list in Fields to Search for Ticket Number (see Ticket Number Detection below). If it finds more than one, it checks each in order and uses the first one that exists in ConnectWise and passes your ticket filter, if you enabled one.
If no ticket matches, the action sets UnableToLocateExistingTicket to true and follows Action If No Ticket Matched. With the default, Continue, your next action (typically Create ConnectWise Ticket) runs.
The reply becomes a note on the ticket
Once the action finds the ticket, it adds a note with your Note Text and the visibility options you chose. If the sender's email address matches a ConnectWise Contact, the action returns that contact in Contact.
The status can change after the note is added
Under Status After Update, choose how each service board should handle the status change:
- Optionally enable Use the service board's ConnectWise email-reopen status when available. The action checks the matched ticket's service board for its email-reopen status.
- If that setting is disabled, has no usable status, or cannot be read, the action looks for a fallback mapping you added for that board.
- If neither provides a status, the action keeps the ticket's current status.
The selected status applies to both open and closed tickets. The action uses only ConnectWise's selected status, not its reopening age limits, resource reassignment, or new-ticket rules. It never moves a ticket to another service board.
If the ticket already has the selected status, or the note could not be added, the status stays as it is. If ConnectWise rejects a status update, the action follows Error Handling.
Ticket Number Detection
The action searches the fields you specify for text matching the ConnectWise ticket number pattern: # followed by 1-15 digits (e.g., #12345, #987654).
By default, it searches the email subject line. You can configure it to search:
- Email subject
- Email body
- Custom parsed values from previous actions
- Any other available variable
Configuration
Connection
| Field | Description |
|---|---|
| ConnectWise Connection | Optionally select a connection override. Leave blank to use your default ConnectWise connection, or your oldest available connection if you have not designated a default. |
Create a ConnectWise connection before running this action. If you select a connection that is no longer available, the action fails instead of switching to another connection.
Ticket Matching
| Field | Description |
|---|---|
| Fields to Search for Ticket Number | Select which fields to search for the ticket number. Default: email subject. Looks for # followed by 1-15 digits. |
| Enable Ticket Filter | Enable to add additional conditions that limit which tickets can be matched. |
| Additional Ticket Query Filter | Query conditions to filter ticket matches. Only shown when Enable Ticket Filter is enabled. |
Use the ticket filter to restrict matches to specific boards, statuses, or other criteria. For example, filter to only match open tickets on a specific service board.
Ticket Note
| Field | Description |
|---|---|
| Note Text | The content of the note. Supports template variables like {{email.body}}. Default includes email headers and body. |
| Show in Detail Description | When enabled, the note appears in the ticket's detail description section. Default: enabled. |
| Internal Analysis | When enabled, the note appears in the internal analysis section (not visible to customers). Default: disabled. |
| Visible to Customer | When enabled, the note is visible to the customer via the portal. Default: enabled. |
Status Update
| Field | Description |
|---|---|
| Use the service board's ConnectWise email-reopen status when available | Try the matched ticket's service board setting first. ConnectWise must have Allow Email Connector to Reopen Closed Tickets enabled and a usable set them to status selection. If the setting is unavailable or the lookup fails, try the fallback mapping for that board. Default: disabled. |
| Service Board | In each fallback mapping, select the board whose tickets should use the chosen status. This does not change the ticket's board or restrict ticket matching. |
| Status | Select a status available on that row's service board. You can choose a valid closed status. |
The mapping list starts empty. Click Add mapping, select a Service Board, then select its Status. Repeat for each board you want to configure. Add each board only once. If you change a row's board, choose a status for the new board.
For example, leave the checkbox disabled, then map Service Desk to Customer Responded and Monitoring to Closed. An updated ticket on Service Desk uses Customer Responded; one on Monitoring uses Closed. A ticket on another board keeps its current status. If you enable the checkbox, an available ConnectWise board setting takes priority over these mappings.
Leave the checkbox disabled and the mapping list empty to add notes without changing status.
Action Controls
| Field | Description |
|---|---|
| Action If No Ticket Matched | What to do if no matching ticket is found. "Continue" allows the next action (e.g., Create ConnectWise Ticket) to run. |
| Action After Adding Note | What to do after successfully adding the note. Default: Stop All. |
| Error Handling | What to do if an API error occurs. Options: Exception, Bounce, Continue, Stop, Stop All. |
Returned Variables
When you configure Store the results in Variable, these variables become available for use in subsequent actions:
Status Flags
| Variable | Type | Description |
|---|---|---|
IdentifiedTicketNumber | bool | true if text matching a ConnectWise ticket number pattern was found |
LocatedExistingTicket | bool | true if the ticket was found in ConnectWise |
UnableToLocateExistingTicket | bool | true if no matching ticket was found (signals Create ConnectWise Ticket should run) |
CreatedNewTicketNote | bool | true if the note was created successfully |
CreatedNewTicketNoteCausedError | bool | true if note creation failed |
UpdatedTicketStatus | bool | true if the ticket status was updated |
UpdatedTicketStatusCausedError | bool | true if status update failed |
Created Objects
| Variable | Type | Description |
|---|---|---|
Ticket | object | The matched ConnectWise ticket |
TicketNote | object | The created ticket note |
Contact | object | The contact matched from the sender's email address (if found) |
Example usage: {{custom.myVariable.Ticket.id}}
FAQs
What ticket number formats are recognized?
The action looks for # followed by 1-15 digits. Examples:
#12345#987654321Ticket #12345Re: Issue with printer #12345
The # symbol must immediately precede the digits with no spaces.
What happens if no ticket number is found in the email?
If no ticket number is found, the action sets UnableToLocateExistingTicket to true and takes the action specified in "Action If No Ticket Matched". By default, this is "Continue", which allows the next action (typically Create ConnectWise Ticket) to run.
Can I update tickets without adding a note?
No, this action always creates a note. To change ticket fields without adding a note, use Perform an HTTP Request with the ConnectWise PSA personality and its Update Ticket method.
What's the difference between the note visibility options?
| Option | Effect |
|---|---|
| Show in Detail Description | Note appears in the main ticket description area |
| Internal Analysis | Note appears in the internal analysis section, hidden from customers |
| Visible to Customer | Note is visible to customers via the ConnectWise customer portal |
You can enable multiple options. For example, enable both "Show in Detail Description" and "Visible to Customer" for customer-facing notes, or enable only "Internal Analysis" for internal-only notes.
How do I filter to only match tickets on a specific board?
- Enable Enable Ticket Filter
- In the Additional Ticket Query Filter, add a condition:
- Field:
board/id - Operator:
= - Value: The board ID
- Field:
You can add multiple conditions to create more specific filters.