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 a ConnectWise API action 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 are better handled with different actions.
- Known ticket IDs: If you already know the ticket ID, use a lower-level API action.
- Scheduled tasks: This action requires an email to search for ticket numbers and is only available for Hosted Mailboxes and Pollers.
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, workflow 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
This action operates in two phases: first it finds the ticket, then it updates it.
Phase 1: Find the Ticket
- Search for a ticket number: Scan configured fields (subject, body, etc.) for a ConnectWise ticket number pattern (# followed by 1-15 digits, e.g.,
#12345) - Apply ticket filter (optional): If configured, apply additional conditions to filter which tickets can be matched
- Locate the ticket: Query ConnectWise to verify the ticket exists
If no ticket is found after these steps, the action sets UnableToLocateExistingTicket to true and takes the action specified in "Action If No Ticket Matched" (typically Continue to the next action).
Phase 2: Update the Ticket
Once a ticket is found:
- Add a note: Create a new ticket note with the configured content and visibility settings
- Update status (optional): Change the ticket status if configured
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 | Select the ConnectWise connection to use. Required. |
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 |
|---|---|
| Status After Update | Optionally change the ticket status after adding the note. Leave empty to keep the current 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. If you need to update ticket fields without adding a note, use a ConnectWise API action to update the ticket directly.
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.