[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 service records

> Merge duplicate records into one primary record. Inputs, cURL, Python and Node.js examples and an example response.

Source: https://cotlet.dev/docs/api/sysaid/merge_service_records

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

Merge duplicate records into one primary record.

SysAid API: https://cotlet.dev/docs/api/sysaid.md

`POST https://cotlet.dev/api/v1/sysaid/primaries/{primary_id}/service-records/merge`

Access: write. Confirm: waits for the user's OK before it runs.

Returns the primary record and the merged IDs. The merged records are closed and archived with the status "Merged-Archived", and the merge is written in the Journey of all of them. Your SysAid account needs the Merge service records permission. A merge cannot be undone. By default you confirm each call; you can switch that off for this tool.

## Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `primary_id` | integer | yes | ID of the record that stays in the queue. |
| `secondary_ids` | integer[] | yes | IDs of the records merged into it. At most 49, so the whole merge is up to 50 records. |
| `include` | string[] | no | What to copy into the primary record: attachments, messages, notes, activities. Nothing when left out. |
| `status` | string | no | Status of the primary record after the merge, from list_field_values. |
| `reason` | string | yes | Why the records are merged. Logged in the Journey. |

## Request

**cURL**

```bash
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"}'
```

**Python**

```python
result = client.call("sysaid", "merge_service_records", {"primary_id":48230,"secondary_ids":[48236,48241],"include":["notes","attachments"],"status":"Open","reason":"Same VPN gateway timeout reported by three users"})
```

**Node.js**

```js
const result = await cotlet.call('sysaid', 'merge_service_records', {"primary_id":48230,"secondary_ids":[48236,48241],"include":["notes","attachments"],"status":"Open","reason":"Same VPN gateway timeout reported by three users"});
```

**CLI**

```bash
cotlet call sysaid merge_service_records --data '{"primary_id":48230,"secondary_ids":[48236,48241],"include":["notes","attachments"],"status":"Open","reason":"Same VPN gateway timeout reported by three users"}'
```

## Example response

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

Previous: [Resolve a service record](https://cotlet.dev/docs/api/sysaid/resolve_service_record.md)

---

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.
