---
ref: tool:attio/upsert-record
name: Upsert a record
company: company:attio
workflows: [workflow:product-qualified-expansion, workflow:champion-job-change-loop]
access: [mcp, api]
tags: [capability:manage-crm, category:crm, has:api, has:mcp]
docs: https://docs.attio.com/rest-api/endpoint-reference/records/upsert-a-record
updated: 2026-09-27
---

# Upsert a record

Updates the record whose matching attribute, such as a company's domain or a person's email, has the given value, or creates the record if none does.

Name the attribute to match on in the `matching_attribute` query parameter;
it must be a unique attribute. Deals have no unique attribute by default, so
add one before upserting deals.

## Set up

Use the first option your agent supports.

### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "attio": { "url": "https://mcp.attio.com/mcp" } } }
```

Call the MCP tool `upsert-record`.

Server URL: https://mcp.attio.com/mcp

### API (official)

- Base URL: https://api.attio.com
- Endpoint: `PUT /v2/objects/{object}/records`
- Auth: send the header `Authorization: Bearer $ATTIO_API_KEY`
- Get a key: https://attio.com/help/reference/apps/generating-an-api-key
- Docs: https://docs.attio.com/rest-api/overview

Before doing anything else, make one read-only call to confirm access.

## Rules

- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
