Skip to main content
It searches existing tickets when a workflow processes an incoming ticket.
This action is available only as a triggered action in workflows.
This action detects duplicates. It does not merge them. Nothing is merged in your PSA unless you add the Merge Ticket action after it. Detect and report on its own is a supported setup — many MSPs use it to flag duplicates for a technician — so Neo does not stop you saving a workflow without the merge action. When a duplicate is found and no Merge Ticket action follows, the run message in Executions says so.Merge Ticket is not available on every PSA. It works on ConnectWise, Autotask, Halo and ServiceNow. On Syncro this action detects the duplicate and a technician merges the two tickets in the PSA, so the run message says that instead of naming an action you cannot add.

Quick start

1

Create triggered workflow

Set this to trigger when new tickets are created, so it can catch duplicates right away.
2

Choose search scope

Decide whether to look for duplicates from the same contact (individual duplicates) or same company (company-wide issues). Start with same contact only, then expand to same company when you trust the matches.
3

Set time window

Start with looking back 30-60 days for potential matches. Going too far back might find irrelevant old tickets. Match the window to the goal: about 7 days for same-contact duplicates, and 1 day for company-wide outage consolidation.
4

Add merge action

Follow this with the “Merge Ticket” action to actually combine the tickets when matches are found. Skip this step on Syncro, where Merge Ticket is not available, and on a detect-only workflow where you want a technician to decide.

How it works

  1. Analyzes new ticket - Reviews content, contact, and company information
  2. Searches for candidates - Looks through recent tickets based on your scope settings
  3. Evaluates matches - Uses AI to determine if tickets should actually be merged. By default, it flags a duplicate only when both tickets report the same underlying issue or request and share the same expected outcome, so finishing the destination ticket finishes both
  4. Generates customer messages - Writes a message for the end user about the consolidation, used only when a Merge Ticket action follows. On a detect-only workflow no such message is produced, because no merge happens.
  5. Provides merge recommendations - Offers detailed reasoning for why tickets should be combined

What counts as a duplicate

By default, Neo recommends a merge only when both of these hold:
  • Same underlying issue or request — they report the same problem, ask for the same work, or one is a reply to or a second report of the other.
  • Same expected outcome — completing the destination ticket also completes the source ticket. If any work the source ticket asks for would still be undone, Neo does not recommend a merge.
A shared company, contact, end user, device or asset is a reason for Neo to compare two tickets. On its own it is not a reason to treat them as duplicates. One laptop can carry a patching alert, a hardware fault and a leaver request at the same time, and each is separate work. In the same way, when an alert names a user as device metadata — the last logged-in or assigned user of a machine — that name identifies the machine, and it does not make the alert part of that person’s request. When the user is the subject of the alert, such as a Microsoft 365 sign-in or mailbox alert, the two rules above still decide. You do not need custom instructions to get this behaviour — it is how the action works by default. Use custom instructions for what is specific to your environment, such as which of your alert types are duplicates of each other. Custom instructions take precedence over these defaults, so an instruction that permits a broader merge widens what Neo recommends for merging.

Setup

Search scope: Choose whether to look for duplicates from the same contact (individual customer duplicates) or the same company (company-wide issues). Both scopes consider only open tickets as merge candidates, where “open” is what your PSA itself reports: Statuses to exclude from the candidate search: Pick the statuses that mean the work is finished in your service desk. Neo drops a candidate in one of these statuses before it compares anything, so the search never returns a ticket in that status. The check runs when Neo builds the candidate list. A ticket moved into one of these statuses after that still merges, because the later Merge Ticket action does not re-read the destination’s status. Set this whenever a status of your own means “finished” but your PSA still reports the ticket as open. On Autotask that is the normal case: only New, Complete and Waiting Customer are built-in statuses, so a status you created — Resolved, Awaiting Sign-off, Closed Pending Review — carries no Complete Date and passes the open-ticket test. Leave the setting empty and nothing changes. The statuses come from your own PSA, and matching ignores capitals. Whenever the list is set, the run message in Executions names the statuses it left out, so a technician reading “no candidates” can see which filter was in force. Time window: Set how many days back to search for potential duplicates. Start with 30-60 days. The time window filters candidates by their creation date, not by whether they are open. Search limits: Control how many tickets to consider as potential duplicates (20 by default, 40 at most) to ensure good performance. Neo compares the candidates in one call and splits a fixed token budget across them, so a long conversation or a long configuration list on any one ticket is trimmed to fit. That budget holds at most 49 tickets, so when the search finds more than 49 candidates, Neo compares the most recently updated 49 and says so in the run message in Executions, naming the number it compared. When your PSA reports a candidate as deleted while the run is in flight, Neo leaves that candidate out of the comparison, counts it out of the number in the run message, and continues with the rest. If every candidate it read has gone by then, the run reports that no merge is needed. Not every PSA reports a mid-run deletion, so a candidate deleted moments earlier can still be in the comparison. Rarely, the AI names a ticket that was not one of the candidates it compared. Neo cannot tell which ticket was meant, and a wrong merge would close work nobody has done, so it reports no merge and says so in the run message in Executions. The rest of the workflow then runs as normal. Custom instructions (optional): Provide specific guidance about your environment and merge preferences. Sequential processing: When several similar tickets arrive within minutes, enable “Process Entities Sequentially” to prevent conflicting merge attempts. Alert handling (optional): For RMM alerts, enable automatic closure of resolved tickets when merging with resolution tickets. Use custom instructions to describe how your resolution tickets look.