New Ticket → Search History → Match → Link Or Merge → Flag Repeats

Duplicate Ticket and Repeat Failure Linker

Catches duplicate tickets and links related ones so a recurring problem reads as one thread instead of five disconnected work orders, and flags the repeat failures that need a root-cause fix rather than another patch.

The Problem

The same problem lives in five disconnected tickets.

Same issue, multiple tickets, nobody connecting them. Root causes stay hidden.

What Changes

One linked thread. Repeats flagged for a real fix.

Detects duplicate tickets, links related ones, and flags when the same problem keeps recurring at the same unit. Your team sees patterns, not just individual tickets.

Humans stay in control: Your coordinator decides what to merge and when to escalate a repeat. The agent finds the connections and surfaces the pattern. It removes the fragmented history, not the judgment.

HOW THE AGENT WORKS

TRIGGERLLMAPIDECISIONACTIONWAIT
TRIGGERNew TicketA work order is created
APISearch HistoryPull recent tickets for this unit/asset
LLMMatch TicketsFind duplicates and related issues
DECISIONMatch Found?
ACTIONLink Or MergeConnect duplicates and related tickets
LLMDetect RepeatCheck for a recurring failure pattern
ACTIONFlag Root CauseEscalate repeats for a real fix
The agent doesn't decide what to merge or escalate. Your coordinator does. The agent finds the connections and the pattern.

HOW TO BUILD IT

Three levels of depth. Pick the one that matches where you are.

For the ops person who needs to understand what's involved and brief their team.

Your TicketsNew + historical
The AgentWorkflow engine + LLM
Your HistoryLinked threads, repeats

WHAT YOUR TEAM PROVIDES ONCE

  • Ticket history access - so the agent can search past work orders
  • Match rules - what makes two tickets duplicate vs related
  • Repeat-failure definition - how many times in what window counts
  • Merge policy - what to do with a confirmed duplicate
  • Escalation path - who owns a flagged recurring failure
What happens day-to-day: A new ticket comes in. The agent checks whether it’s the same issue someone already reported, links it to the related history, and if the same thing keeps breaking, flags it for a root-cause fix instead of a fifth patch. Your team stops solving the same problem over and over.

For the IT person or technical lead who needs to scope the integration.

INQUIRY SOURCES

PMS work orders
CMMS
Intake agent feed

WORKFLOW ENGINE (N8N)

Trigger
PMS API - Search history
LLM - Match tickets
Branch - match?
PMS API - Link/merge
LLM - Detect repeat
Flag root cause

CONNECTS TO

PMS / CMMS (Yardi / Property Meld)Read: ticket history. Write: links, flags
Intake agentsRead: incoming tickets
Notifications (Slack / email)Flag repeat failures
BI / dashboardSurface recurring-issue hotspots
WITHOUT PMS API

Agent matches against an exported ticket export and outputs proposed links for manual application. The matching logic still runs.

WITH PMS API

Agent searches live ticket history and writes links and repeat flags directly. Best experience.

For the person who wants to build this agent step by step. Each node below maps to an n8n workflow node.

TRIGGERNode 1
Trigger - New Ticket
Webhook on new work order, or chain from an intake agent.
Output: { ticket_id, unit_id, asset, description, created_at }
APINode 2
HTTP Request - Search History
Pull recent tickets for the same unit and asset within your lookback window.
Output: [{ ticket_id, description, date, status, resolution }]
LLMNode 3
LLM - Match Tickets
Compare the new ticket to history and classify each as duplicate, related, or unrelated.
Output: { duplicates[], related[], reason }
You find duplicate and related maintenance tickets.

Compare the NEW TICKET to the HISTORY. Using MATCH RULES, return:
- duplicates: ticket_ids that are the same active issue
- related: ticket_ids about the same asset/problem area but not duplicates
- reason: one line explaining the strongest match

Respond ONLY with valid JSON.

MATCH RULES: {match_rules}
NEW TICKET: {new_ticket}
HISTORY: {history}
INPUT
new: 'AC not cooling, unit B-214'; history has 'B-214 AC weak cooling' 8 days ago, still open
OUTPUT
{
  "duplicates": ["WO-2199"],
  "related": ["WO-2040"],
  "reason": "Same unit AC cooling complaint, prior ticket still open = duplicate."
}
DECISIONNode 4
Condition - Match Found?
IF duplicates → merge per policy. IF related only → link. IF none → leave standalone and continue to repeat check.
Output: Branch: DUPLICATE (merge) / RELATED (link) / NONE
APINode 5
HTTP Request - Link or Merge
Apply the merge policy for duplicates or attach links for related tickets in the PMS.
Output: Tickets linked or merged; history now reads as one thread.
LLMNode 6
LLM - Detect Repeat Failure
Check whether this asset has failed repeatedly within the window, signalling a root-cause issue.
Output: { repeat: true|false, count, window, summary }
You detect repeat failures for an asset.

Given the linked ticket history and the REPEAT DEFINITION, return:
- repeat: true if the same failure recurs beyond the threshold
- count: how many times in the window
- window: the time span
- summary: one line for a manager

Respond ONLY with valid JSON.

REPEAT DEFINITION: {repeat_definition}
ASSET HISTORY: {asset_history}
OUTPUT
{
  "repeat": true,
  "count": 3,
  "window": "90 days",
  "summary": "B-214 AC has failed 3 times in 90 days - recommend compressor/root-cause review, not another recharge."
}
ACTIONNode 7
Flag Root Cause
For repeat failures, escalate to the maintenance supervisor with the pattern so the fix targets the cause.
Output: Recurring failure surfaced for a root-cause decision.
MVP vs Advanced — Where To Start
MVP — START HERE
  • New-ticket trigger
  • History search vs sheet
  • Match rules (unit + keyword)
  • Manual merge
  • Repeat count check
  • Flag by email
ADVANCED — ADD LATER

    Full Video Walkthrough Coming Soon

    From scattered tickets to one linked thread - step by step.

    Register to be notified

    Everything on this page is free to learn.

    When you're ready to build — do it yourself or bring us in.

    OTHER AGENTS IN LEASING & MARKETING

    Converts QA failures into structured follow-up tasks
    Applies consistent category and severity rules across all tickets
    Classifies trade, sets priority from history, triggers correct dispatch
    Guides residents through safe checks before sending a tech

    Frequently asked questions

    Duplicate Ticket and Repeat Failure Linker is an AI agent that catches duplicate tickets and flags recurring failures.
    The same problem lives in five disconnected tickets. The Duplicate Ticket and Repeat Failure Linker addresses this — it catches duplicate tickets and flags recurring failures.
    No — your team stays in control. Your coordinator decides what to merge and when to escalate a repeat. The agent finds the connections and surfaces the pattern. It removes the fragmented history, not the judgment.