[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Merge duplicate SysAid tickets with AI

> Find SysAid tickets that report the same problem and merge each group into one primary ticket, with notes kept. Weekly, you confirm every merge.

Source: https://cotlet.dev/integrations/sysaid-api-mcp-server/merge-duplicate-tickets

After an outage, ten people open ten tickets about the same thing, and an agent has to find them in the queue before any of them can be worked as one.

Cotlet does it in your own SysAid account with search\_service\_records, get\_service\_record, list\_service\_record\_notes and merge\_service\_records, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=sysaid) [All SysAid tools](https://cotlet.dev/integrations/sysaid-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can SysAid do this on its own?

SysAid merges records through the Merge bulk action in the queue (checked 23 Oct 2026). The API reference lists no merge endpoint, and the documentation describes no feature that finds the duplicates. The grouping stays a human job.

## How you do it in SysAid today

1. The agent searches the queue for a word from the problem and checks each hit for the same cause.
2. The agent selects at least two records with the checkboxes on the left of the queue, which opens the action bar at the bottom.
3. In the action bar the agent clicks Merge, selects the primary record, and chooses which assets of the others to keep: attachments, messages, notes or activities.
4. The agent picks the status of the primary record, writes the reason for the merge and clicks Merge.
5. The merge cannot be reversed, so a wrong match means reopening and re-linking the records by hand.

## How to merge duplicate SysAid tickets with AI

Prompt

```
Find open SysAid tickets about the same problem, for example five people reporting the same outage. Merge each group into the oldest ticket and keep the notes.
```

1. 01  
### Search around the problem  
search\_service\_records runs with your keyword over ID, title, description and notes, limited to open records and the days since the outage began, and follows next\_cursor to the end.
2. 02  
### Compare the records  
get\_service\_record and list\_service\_record\_notes bring the description and notes of each hit. Two records go in one group only if they describe the same cause, not the same word.
3. 03  
### Choose the primary  
The oldest record becomes the primary, unless another one already has an assignee, in which case that one stays so the agent working on it keeps it.
4. 04  
### Stay under the limit  
A group larger than 50 records is split into two merges, because SysAid merges at most 50 at a time.
5. 05  
### Merge  
merge\_service\_records runs once per group with notes and attachments included, the status you named for the primary and a reason that lists the secondary IDs. Every call waits for your OK, and the agent never merges a group it is unsure about.

### What you get back

Example data

```
Open tickets matching "VPN": 17
Merged 2 groups:
- #48230 now holds #48236, #48241 and 3 more (same gateway timeout)
- #48260 now holds #48262
Left alone 6: different causes or different requesters' devices
```

### Other ways to ask

- After this morning's outage, merge every ticket about the mail server into one and set it to Open.
- List possible duplicates from the last 7 days as groups and merge nothing.
- Merge tickets with the same title from the same requester.
- Merge duplicates but keep only the primary's notes.

## What SysAid allows, and what to know first

- SysAid merges up to 50 service records at once.
- An agent needs the Merge service records permission to merge.
- The merge is irreversible: SysAid cannot restore merged records.
- The secondary records are closed and archived with the status "Merged-Archived" and can be found in the Archive view.
- Merging notes is only available in SysAid Spaces, and Spaces asks for the status of the primary record, where Classic asks for the status of the secondary ones.

merge\_service\_records asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [SysAid Documentation: Merging Service Records in Spaces](https://documentation.sysaid.com/docs/merging-service-records-in-spaces) · [SysAid Documentation: Working with the Service Record Queue](https://documentation.sysaid.com/docs/working-with-the-queue) · [SysAid Developers: API reference index](https://developers.sysaid.com/llms.txt)

## Call merge\_service\_records from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/sysaid/primaries/48230/service-records/merge \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"secondary_ids":[48236,48241],"include":["notes","attachments"],"status":"Open","reason":"Same VPN gateway timeout reported by three users"}'
```

Example response

```
{
"primary_id": 48230,
"merged_ids": [
    48236,
    48241
],
"included": [
"notes",
"attachments"
],
"status": "Open",
"merged_at": "2026-10-23T09:20:00Z"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is sysaid\_write → merge\_service\_records. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/sysaid-api-mcp-server.md#automations)

## SysAid tools this automation uses

__Cotlet SysAid tools used to merge duplicate SysAid tickets with AI__
| Tool | Parameters |
| ---------------------------- | ------------------------------------------------------------------------------------ |
| search\_service\_records | query, type, status, priority, assignee, created\_since, sort\_by, sort\_dir, cursor |
| get\_service\_record | record\_id |
| list\_service\_record\_notes | record\_id, cursor |
| merge\_service\_records | primary\_id, secondary\_ids, include, status, reason |

[All 12 SysAid tools with descriptions](https://cotlet.dev/integrations/sysaid-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect SysAid to Cotlet?

Yes. You sign in to SysAid yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get SysAid once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More SysAid automations

- [Triage new SysAid tickets with AI](https://cotlet.dev/integrations/sysaid-api-mcp-server/triage-new-service-records.md)
- [Resolve solved SysAid tickets with AI](https://cotlet.dev/integrations/sysaid-api-mcp-server/resolve-solved-tickets.md)
- [SysAid API and MCP server: every tool](https://cotlet.dev/integrations/sysaid-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to SysAid.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with SysAid.

[Sign up free](https://cotlet.dev/app/signup?app=sysaid)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
