> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toolshed.philo.ventures/llms.txt
> Use this file to discover all available pages before exploring further.

# Attio Plugin

> Attio CRM — manage objects, records, lists, notes, and tasks.

**Plugin ID:** `attio` | **Auth:** Workspace API key (`ATTIO_API_KEY`)

Attio's OAuth flow is intended for distributing apps to other workspaces via build.attio.com. For a single-workspace integration like Toolshed, use a workspace access token instead: in Attio, go to Settings → Developers → Access tokens, create a token scoped to the permissions you need, and set it as `ATTIO_API_KEY` in the server environment.

## Tools

### attio.objects.list

**Name:** List Objects

List all objects in the Attio workspace (e.g. People, Companies, Deals, and custom objects).

**Input:**

No parameters required.

**Output:**

```json theme={null}
{
  "objects": [
    {
      "id": "obj_abc123",
      "api_slug": "people",
      "singular_noun": "Person",
      "plural_noun": "People"
    }
  ]
}
```

***

### attio.records.list

**Name:** List Records

List records within an Attio object. Supports pagination via offset/limit.

**Input:**

| Parameter | Type      | Required | Default | Description                                        |
| --------- | --------- | -------- | ------- | -------------------------------------------------- |
| `object`  | `string`  | Yes      | --      | Object slug or ID (e.g. `"people"`, `"companies"`) |
| `limit`   | `integer` | No       | `25`    | Max records to return                              |
| `offset`  | `integer` | No       | `0`     | Pagination offset                                  |

**Output:**

```json theme={null}
{
  "records": [
    {
      "id": "rec_abc123",
      "values": { "name": [{ "value": "Jane Doe" }] }
    }
  ]
}
```

***

### attio.records.get

**Name:** Get Record

Get a single Attio record by its ID.

**Input:**

| Parameter  | Type     | Required | Description       |
| ---------- | -------- | -------- | ----------------- |
| `object`   | `string` | Yes      | Object slug or ID |
| `recordId` | `string` | Yes      | Record ID         |

**Output:**

```json theme={null}
{
  "id": "rec_abc123",
  "values": { "name": [{ "value": "Jane Doe" }] }
}
```

***

### attio.lists.list

**Name:** List Lists

List all lists in the Attio workspace.

**Input:**

No parameters required.

**Output:**

```json theme={null}
{
  "lists": [
    { "id": "lst_abc123", "name": "Deal Pipeline", "api_slug": "deal-pipeline" }
  ]
}
```

***

### attio.list\_entries.list

**Name:** List Entries

List entries in an Attio list.

**Input:**

| Parameter | Type      | Required | Default | Description           |
| --------- | --------- | -------- | ------- | --------------------- |
| `list`    | `string`  | Yes      | --      | List slug or ID       |
| `limit`   | `integer` | No       | `25`    | Max entries to return |
| `offset`  | `integer` | No       | `0`     | Pagination offset     |

**Output:**

```json theme={null}
{
  "entries": [
    { "entry_id": "ent_abc", "record_id": "rec_abc123", "values": {} }
  ]
}
```

***

### attio.notes.list

**Name:** List Notes

List notes for a specific record in Attio.

**Input:**

| Parameter        | Type      | Required | Default | Description              |
| ---------------- | --------- | -------- | ------- | ------------------------ |
| `parentObject`   | `string`  | Yes      | --      | Parent object slug or ID |
| `parentRecordId` | `string`  | Yes      | --      | Parent record ID         |
| `limit`          | `integer` | No       | `25`    | Max notes to return      |
| `offset`         | `integer` | No       | `0`     | Pagination offset        |

**Output:**

```json theme={null}
{
  "notes": [
    { "id": "note_abc", "title": "Call notes", "content_plaintext": "...", "created_at": "2026-01-15T12:00:00Z" }
  ]
}
```

***

### attio.tasks.list

**Name:** List Tasks

List tasks in the Attio workspace, optionally filtered by linked record.

**Input:**

| Parameter        | Type      | Required | Default | Description                  |
| ---------------- | --------- | -------- | ------- | ---------------------------- |
| `linkedObject`   | `string`  | No       | --      | Filter by linked object slug |
| `linkedRecordId` | `string`  | No       | --      | Filter by linked record ID   |
| `limit`          | `integer` | No       | `25`    | Max tasks to return          |
| `offset`         | `integer` | No       | `0`     | Pagination offset            |

**Output:**

```json theme={null}
{
  "tasks": [
    { "id": "task_abc", "content_plaintext": "Follow up with Acme", "is_completed": false, "deadline_at": null, "created_at": "2026-01-15T12:00:00Z" }
  ]
}
```

***

### attio.records.create

**Name:** Create Record | **Destructive:** Yes

Create a new record in an Attio object. Requires user approval.

**Input:**

| Parameter | Type     | Required | Description                              |
| --------- | -------- | -------- | ---------------------------------------- |
| `object`  | `string` | Yes      | Object slug or ID                        |
| `values`  | `object` | Yes      | Attribute values keyed by attribute slug |

**Output:**

```json theme={null}
{ "id": "rec_new123", "values": {} }
```

***

### attio.records.update

**Name:** Update Record | **Destructive:** Yes

Update an existing record in Attio. Requires user approval.

**Input:**

| Parameter  | Type     | Required | Description                |
| ---------- | -------- | -------- | -------------------------- |
| `object`   | `string` | Yes      | Object slug or ID          |
| `recordId` | `string` | Yes      | Record ID to update        |
| `values`   | `object` | Yes      | Attribute values to update |

**Output:**

```json theme={null}
{ "id": "rec_abc123", "values": {} }
```

***

### attio.notes.create

**Name:** Create Note | **Destructive:** Yes

Create a note attached to a record in Attio. Requires user approval.

**Input:**

| Parameter        | Type     | Required | Description               |
| ---------------- | -------- | -------- | ------------------------- |
| `parentObject`   | `string` | Yes      | Parent object slug or ID  |
| `parentRecordId` | `string` | Yes      | Parent record ID          |
| `title`          | `string` | Yes      | Note title                |
| `content`        | `string` | Yes      | Note content in plaintext |

**Output:**

```json theme={null}
{ "id": "note_new", "title": "Call notes", "created_at": "2026-01-15T12:00:00Z" }
```

***

### attio.tasks.create

**Name:** Create Task | **Destructive:** Yes

Create a task in Attio, optionally linked to a record. Requires user approval.

**Input:**

| Parameter        | Type       | Required | Description                     |
| ---------------- | ---------- | -------- | ------------------------------- |
| `content`        | `string`   | Yes      | Task content in plaintext       |
| `deadline_at`    | `string`   | No       | Deadline as ISO-8601 datetime   |
| `linkedObject`   | `string`   | No       | Object slug to link the task to |
| `linkedRecordId` | `string`   | No       | Record ID to link the task to   |
| `assignees`      | `string[]` | No       | Workspace member IDs to assign  |

**Output:**

```json theme={null}
{ "id": "task_new", "content_plaintext": "Follow up", "is_completed": false, "created_at": "2026-01-15T12:00:00Z" }
```
