SysAid automation · runs weekly
Merge duplicate SysAid tickets with AI
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.
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
- The agent searches the queue for a word from the problem and checks each hit for the same cause.
- The agent selects at least two records with the checkboxes on the left of the queue, which opens the action bar at the bottom.
- 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.
- The agent picks the status of the primary record, writes the reason for the merge and clicks Merge.
- 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
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. - 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.
- 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.
- 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.
- 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.
- 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
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 · SysAid Documentation: Working with the Service Record Queue · SysAid Developers: API reference index
Call merge_service_records from a script
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"}' {
"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 cronSysAid tools this automation uses
| 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 |
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.
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.